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

How can i set right iam policy in gcp with an service account

我在 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,而不仅仅是第一个... 现在可以使用了!!