如何使用服务帐户在 gcp 中设置正确的 iam 策略

Posted

技术标签:

【中文标题】如何使用服务帐户在 gcp 中设置正确的 iam 策略【英文标题】:How can i set right iam policy in gcp with an service account 【发布时间】:2017-06-29 13:42:37 【问题描述】:

我在 dns API(可能是其他 api 条目)上的 GCP iam 策略跨项目有问题。 对于 gcp 管理,我使用 gcloud 命令和 terraform。

检查我的设置: 第一个 gcp 项目:myproject-cloud。此项目托管一个 dns 托管区域。

具有帐户服务的第二个项目 (akecld-test-demo)。此帐户与 terraform 一起用于创建实例、磁盘等...没问题。我使用 gcloud 来确认 dns api 的错误设置。

当我想在 dns 区域中添加(或列出)一个条目(在第一个项目中设置并保留)时,我遇到 403 错误。

gcloud   --account=provisioner@akecld-test-demo.iam.gserviceaccount.com  dns  managed-zones list --project=myproject-cloud
API [dns.googleapis.com] not enabled on project [xxxxxxxxx]....

dns api 适用于在第一个项目中创建的服务帐户,但不适用于其他项目中托管的服务帐户。

我已添加 iam 政策:

gcloud projects add-iam-policy-binding myproject-cloud --member="serviceAccount:provisioner@akecld-test-demo.iam.gserviceaccount.com" --role="roles/dns.admin"

我找不到要添加的正确角色或策略..

【问题讨论】:

仅供参考:您需要在第二个项目中启用 DNS API,而不仅仅是第一个...现在可以使用了!! 【参考方案1】:

您需要在第二个项目中启用 DNS API,而不仅仅是第一个... 现在可以了!!

【讨论】:

以上是关于如何使用服务帐户在 gcp 中设置正确的 iam 策略的主要内容,如果未能解决你的问题,请参考以下文章

如何列出与 gcp 服务帐户关联的角色?

Terraform GCP 将 IAM 角色分配给服务帐户

GCP IAM REST API 服务帐号密钥问题

您可以在 aws 中设置默认控制台区域吗?

GCP:IAM 和 BigQuery

如何在 terraform 中正确创建具有角色的 gcp 服务帐户