背景:
- 我有一个名为
SharedVPC
的共享VPC[主机]项目,该项目具有网络network01
和子网serverless-subnet01: 10.200.12.0/28
- 共享专有网络项目与另一个项目
project1
共享其网络和子网 - 没有其他内容在使用
serverless-subnet01
- 两个项目中的所有资源都在
us-central1
中 - 我在这两个项目中都担任
owner
的角色 project1
中启用vpcaccess.googleapis.com
问题:
我想使用network01
和serverless-subnet01
在project1
中创建一个无服务器VPC访问连接器,但在尝试按照文档创建连接器时,单击";创建";以us-central1
为区域,network01
为网络,serverless-subnet01
为子网:
Operation failed: VPC Access did not have permission to resolve the subnet or the provided subnet does not exist.
我尝试应用文档中的故障排除步骤,结果如下:
在编辑:在project1
或SharedVPC
中都没有类似service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
或roles/vpcaccess.serviceAgent
角色的帐户SharedVPC
中有一个名为service-SharedVPC_PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
的帐户,但它只能通过gcloud命令看到,向其中添加适当的角色并不能解决问题- 没有网络与CCD_ 22重叠
- 没有优先级超过1000的防火墙规则拒绝进入
解决方案是project1
有一个vpc访问服务帐户,但它只能通过gcloud命令而不是控制台看到。此帐户需要共享vpc项目中的roles/vpcaccess.serviceAgent
角色才能访问子网。
在服务项目的控制台IAM页面上,在您可以看到此服务帐户之前,您需要勾选"包括谷歌提供的角色授权";。
"谷歌管理的服务帐户用于访问谷歌的API云平台服务">
如果您仍然看不到service-SharedVPC_PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
,请在服务项目中启用无服务器VPC访问APIvpcaccess.googleapis.com
,因为这就是创建此服务帐户的原因。