【问题标题】:Google Cloud create dns peering without VPC peering in different GCP projectsGoogle Cloud 在不同的 GCP 项目中创建没有 VPC 对等互连的 dns 对等互连
【发布时间】: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


【解决方案1】:

从错误来看,我认为该消息具有误导性和混淆性。基于此,我发现以下 PIT1PIT2 作为 Google 问题跟踪器上的错误。目前没有预计到达时间。但是,您将获得相应线程的进一步更新。

【讨论】:

  • 感谢@Mahboob 添加错误详细信息,我在错误中看到问题是关于在使用错误输入参数的情况下增强消息
  • 我验证了服务帐户名称和网络名称,这些都是正确的。我还将 dns 角色更新为 dns.admin 供消费者在提供者项目中列出的已验证服务帐户名称:gcloud projects get-iam-policy provider-proj-299820 |grep "consumer-svcacct@consumer-proj-300018.iam .gserviceaccount.com" 验证网络名称为:gcloud compute networks list --project=provider-proj-299820 | grep "sample-vpc" gcloud 计算网络列表 --project=consumer-proj-300018 | grep "sample-vpc-consumer"
  • @Learner 我刚刚更新了我的答案并包含了另一个公共问题,这也表明错误消息令人困惑,需要改进以获得准确的错误消息。我了解您的权限可能没问题,因为所有者角色也授予所有 DNS 权限。
  • 感谢分享错误。我在消费者项目中也为服务帐户添加了 dns 管理员角色,只是为了排除这种可能性,它仍然不起作用。我会留意这个错误
【解决方案2】:

我正在尝试激活为在生产者项目中创建 dns 角色而创建的服务帐户,该服务帐户无权在其他项目中创建角色 我按照beingasre blog link 中提到的未激活的步骤执行了此步骤,它起作用了

【讨论】:

    猜你喜欢
    • 2020-06-13
    • 1970-01-01
    • 2019-07-14
    • 2021-03-04
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    相关资源
    最近更新 更多