【发布时间】:2020-12-28 22:41:52
【问题描述】:
我正在尝试在Google Cloud DNS 中学习DNS Peering。
我遵循了谷歌云指南page,但无法使用 dns peer 的服务帐户创建托管区域。
以下命令已执行
gcloud dns managed-zones create dns-peer-zone \
--description="peering between consumer and provider" \
--dns-name="us-central1-a.c.provider-proj-299820.internal" --networks=sample-vpc-consumer \
--account=consumer-svcacct@consumer-proj-300018.iam.gserviceaccount.com \
--target-network=sample-vpc --target-project=provider-proj-299820 \
--visibility=private
我也尝试过使用它自己的 DNS,如下所示
gcloud dns managed-zones create dns-peer-zone \
--description="peering between consumer and provider" \
--dns-name="us-east1.c.consumer-proj-300018.internal" --networks=sample-vpc-consumer \
--account=consumer-svcacct@consumer-proj-300018.iam.gserviceaccount.com \
--target-network=sample-vpc --target-project=provider-proj-299820 \
--visibility=private
出现以下错误:
ERROR: (gcloud.dns.managed-zones.create)
User [consumer-svcacct@consumer-proj-300018.iam.gserviceaccount.com] does not have permission
to access projects instance [provider-proj-299820] (or it may not exist): Forbidden
:~$
我已经成功更新了来自提供者项目中消费者项目的服务帐户的 DNS 对等角色,如下所示
gcloud projects add-iam-policy-binding provider-proj-299820 \
--member="serviceAccount:consumer-svcacct@consumer-proj-300018.iam.gserviceaccount.com" \
--role=roles/dns.peer
结果:
Updated IAM policy for project [provider-proj-299820].
bindings:
- members:
我是这两个项目的所有者,提供者在central1 中有自定义子网,而消费者在east1 中有自定义子网。提供者网络是GLOBAL,而消费者是REGIONAL
它们的 IP 范围是互斥的
【问题讨论】:
-
唯一具有所需权限的预定义角色是
roles/dns.admin.cloud.google.com/dns/docs/access-control -
谢谢@JohnHanley,您是在谈论任何特殊的许可吗,例如:dns.networks.targetWithPeeringZone?另外,我选择的角色是在google cloud的指导文档中给出的。我将尝试将角色更改为 dns.admin 并查看是否有效。
-
是的,您需要该权限以及对等双方的更多权限。如果您有其他问题,请查看@Mahboob 的答案。
-
我也加了dns.admin角色,还是报错
标签: google-cloud-platform dns gcloud google-cloud-dns google-vpc