无法绑定Google服务帐户到Kubernetes服务帐户



我试图将我的Google服务帐户(GSA)绑定到我的Kubernetes服务帐户(KSA),这样我就可以从Google Kubernetes引擎(GKE)连接到我的Cloud SQL数据库。我目前正在使用谷歌文档(https://cloud.google.com/sql/docs/sqlserver/connect-kubernetes-engine)中提供的遵循指南。

目前,我有一个名为MY_CLUSTER的GKE集群,一个名为MY_GCP_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com的GSA具有正确的云SQL权限,以及一个名为MY_K8S_SERVICE_ACCOUNT的KSA。我正在尝试使用以下命令绑定两个帐户。

gcloud iam service-accounts add-iam-policy-binding 
--member "serviceAccount:PROJECT_ID.svc.id.goog[K8S_NAMESPACE/MY_K8S_SERVICE_ACCOUNT]" 
--role roles/iam.workloadIdentityUser 
MY_GCP_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

但是,当我运行前面的命令时,我得到以下错误消息:

ERROR: Policy modification failed. For a binding with condition, run "gcloud alpha iam policies lint-condition" to identify issues in condition.
ERROR: (gcloud.iam.service-accounts.add-iam-policy-binding) INVALID_ARGUMENT: Identity Pool does not exist (PROJECT_ID.svc.id.goog). Please check that you specified a valid resource name as returned in the `name` attribute in the configuration API.

当我尝试将GSA绑定到KSA时,为什么我得到此错误?

为了将你的Google服务帐户(GSA)绑定到你的Kubernetes服务帐户(KSA),你需要在集群上启用工作负载标识。这在Google的文档(https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity)中有更详细的解释。

要在现有集群上启用工作负载标识,可以运行。

gcloud container clusters update MY_CLUSTER 
--workload-pool=PROJECT_ID.svc.id.goog

相关内容

  • 没有找到相关文章

最新更新