我正在 GKE 中开发 Kubernetes CronJob 以从 GCP Cloud SQL 导出 SQL 数据库。我有一个 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 服务帐号?