compute.networks.get 从共享 VPC 服务项目创建 GCP 实例组?
Posted
技术标签:
【中文标题】compute.networks.get 从共享 VPC 服务项目创建 GCP 实例组?【英文标题】:compute.networks.get to create GCP Instance group from a Shared VPC service project? 【发布时间】:2020-04-04 22:34:09 【问题描述】:具有共享 VPC 以及宿主项目和服务项目的 GCP:
我配置了一个共享 VPC 宿主项目并将一个 VPC 和子网共享给一个服务项目和一个用户(计算网络用户角色)。
如果我使用宿主项目的子网创建虚拟机,我可以毫无问题地做到这一点,但是当我尝试从服务项目创建实例组时,我收到以下错误:
“projects/[HOST PROJECT ID]/global/networks/vpc-host-network”需要“compute.networks.get”权限
我能找到的唯一解决方案是将 Compute network viewer 角色分配给整个 HOST 项目的服务项目用户。
尝试将计算网络用户角色分配给服务项目中的计算引擎服务帐户没有帮助,并且在我看来 GCP 文档没有提到这一点。
您知道这是否符合预期吗?是否记录在任何地方?
谢谢
编辑: 请注意,这仅适用于 非托管 实例组,而 托管实例组 则可以正常工作。
值得一提的是,对于服务项目中的托管实例组,必须拥有 Google APIs 服务代理([PROJECT NUMBER] @cloudservices.gserviceaccount.com) 服务项目中的帐户作为必要子网的 HOST 项目中的计算网络用户帐户
【问题讨论】:
【参考方案1】:好像和这个有关系:
使用共享 VPC,您需要允许服务项目中的用户/serviceAccounts 使用角色/compute.networkUser 角色使用具有 google_compute_subnetwork_iam_binding 资源的子网。
见:https://github.com/terraform-providers/terraform-provider-google/issues/1711
【讨论】:
不幸的是,我已将服务项目中的所有服务帐户添加为子网的计算网络用户,但它不起作用。 那篇帖子github.com/terraform-providers/terraform-provider-google/issues/…后面提到的服务项目中的权限怎么样? 是的,我为所有服务项目的服务帐户提供了共享子网的“计算网络用户”,但没有运气。正如我在问题的主体中所写,这似乎只影响“非托管”实例组,而不是“托管”实例组按预期工作以上是关于compute.networks.get 从共享 VPC 服务项目创建 GCP 实例组?的主要内容,如果未能解决你的问题,请参考以下文章