首页 > 解决方案 > 如果基本身份验证已被弃用并且已在 GKE 1.19 及更高版本中删除,我如何向 k8s 提供程序 gke 进行身份验证?

问题描述

基本身份验证已弃用:https ://cloud.google.com/kubernetes-engine/docs/how-to/hardening-your-cluster

我是这样的(与文档相同:https ://www.terraform.io/docs/providers/google/d/client_config.html ):

data "google_client_config" "default" {
}

data "google_container_cluster" "my_cluster" {
  name = "my-cluster"
  zone = "us-east1-a"
}

provider "kubernetes" {
  load_config_file = false

  host  = "https://${data.google_container_cluster.my_cluster.endpoint}"
  token = data.google_client_config.default.access_token
  cluster_ca_certificate = base64decode(
    data.google_container_cluster.my_cluster.master_auth[0].cluster_ca_certificate,
  )
}

医生说:

CIS GKE 基准建议:6.8.1。确保使用静态密码的基本身份验证已禁用和 6.8.2。确保禁用使用客户端证书的身份验证

cluster_ca_certificate使用“客户端证书”还是不同?我想确保我正在做的事情(上面的 tf 片段)将继续得到 GKE 的支持,但我不清楚它现在实际上是如何工作的。

也许我已经在做正确的,不被弃用的方式?

标签: google-cloud-platformterraformterraform-provider-gcp

解决方案


如果不是 K8S 方面的专家,我会说

  token = data.google_client_config.default.access_token

是您访问 GKE API 的身份验证令牌

您加载的证书是用于强制与主服务器进行 TLS 通信的服务器证书。不是身份验证,只有 TLS over HTTP 加密。


推荐阅读