【发布时间】:2021-11-08 04:11:58
【问题描述】:
我正在 GKE 中为 export SQL databases from GCP Cloud SQL 处理 Kubernetes CronJob。我有一个 GCP Cloud SQL 实例,其 Google 服务帐户为 p848827672298-eef1pd@gcp-sa-cloud-sql.iam.gserviceaccount.com。如果我向此服务帐户添加访问和创建存储桶对象的权限,运行gcloud sql export sql ... 命令有效:数据库将导出到我的存储桶。
但是,我想做的是使用 Workload Identity 将 Kubernetes 服务帐户绑定到 p848827... Google 服务帐户,以便 CronJob 可以将 Cloud SQL 数据库导出到我的存储桶。我尝试通过运行以下命令来做到这一点:
gcloud iam service-accounts add-iam-policy-binding \
--role roles/iam.workloadIdentityUser \
--member "serviceAccount:PROJECT_ID.svc.id.goog[K8_NAMESPACE/K8_SERVICE_ACCOUNT]" \
p848827672298-eef1pd@gcp-sa-cloud-sql.iam.gserviceaccount.com
(当然,我用适合我项目的值替换了PROJECT_ID、K8_NAMESPACE 和K8_SERVICE_ACCOUNT。)
这会导致
ERROR: (gcloud.iam.service-accounts.add-iam-policy-binding) NOT_FOUND: Service account projects/PROJECT_ID/serviceAccounts/p848827672298-eef1pd@gcp-sa-cloud-sql.iam.gserviceaccount.com does not exist.
如何将 Cloud SQL 服务帐号绑定到我的 Kubernetes 服务帐号?
【问题讨论】:
标签: kubernetes google-cloud-sql k8s-serviceaccount