在 Google Cloud 中,服务项目中的服务帐号可以从宿主项目访问共享 vpc 吗?

问题描述 投票:0回答:1

我已在 Google 云中配置了共享 VPC。 我可以通过 Web 控制台使用我的用户帐户(在组织下)使用共享 VPC 在服务项目中创建虚拟机,没有任何问题。

但是,如果我尝试使用服务项目 (Project:service-project) 下的服务帐户列出网络,则会返回错误。

`$ gcloud 计算网络列表 --uri --project=long-shared-vpc 错误:(gcloud.compute.networks.list)某些请求未成功:

  • “projects/long-shared-vpc”需要“compute.networks.list”权限`

如何授予我的服务帐户(在 service-project 下)对宿主项目中共享 VPC(宿主项目:long-shared-vpc)的访问权限?

我尝试寻找 IAM,但似乎没有选项可以授予“compute.networks.list”对其他项目的访问权限。 我错过了什么?

google-cloud-platform google-iam google-vpc
1个回答
0
投票

该错误表明服务帐户在项目

compute.networks.list
中没有
long-shared-vpc
权限(通过角色授予)。

虽然服务账户是在所属项目中创建的,但可以通过将服务账户绑定到具有一个/多个 IAM 角色的资源来将服务账户(通过其电子邮件地址)添加到其他资源(通常是一个项目)。

第一步是确定授予

compute.networks.list
的 IAM 角色。

执行此操作的一种方法是使用 IAM 权限参考并完成过滤器。

可能的角色之一(!)是

roles/compute.instanceAdmin

下一步是将资源(通常是项目)绑定到身份和角色。

这里可能可以使用网络而不是项目;我对VPC不熟悉。

您需要运行此命令并作为具有适当权限的凭据进行身份验证:

ACCOUNT="..." # Service Account in service-project
SVC_PROJECT="service-project"
EMAIL="${ACCOUNT}@${SVC_PROJECT}.iam.gserviceaccount.com"

VPC_PROJECT="long-shared-vpc"

ROLE="roles/compute.instanceAdmin"

gcloud projects add-iam-policy-binding ${VPC_PROJECT} \
--member=serviceAccount:${EMAIL} \
--role=${ROLE}
© www.soinside.com 2019 - 2024. All rights reserved.