我有一个项目 A,它托管一个共享 VPC 和一个服务项目 B。项目 A 有一个保留的全局外部 IP 地址,然后由项目 B 引用:
resource "google_compute_global_forwarding_rule" "foo" {
name = "${var.name}"
ip_address = "<ip address here>"
target = google_compute_target_https_proxy.foo.self_link
port_range = local.external_port
}
这会引发错误
Error: Error creating GlobalForwardingRule: googleapi: Error 403: Required 'compute.globalAddresses.use' permission for 'projects/<host-project>/global/addresses/<address-name>', forbidden
服务项目的服务帐号是否可以访问宿主项目的全局 IP 地址,而无需在服务项目中为该服务帐号定义任何角色?根据文档“宿主项目中定义的外部 IP 地址对象可由该宿主项目或任何附加服务项目中的资源使用”但显然使用此类外部 IP 地址的服务项目帐户应该有一些明确的角色,对吗?
答案1
是的,您需要一个授予“拥有”全局 IP 地址的项目访问权限的角色。示例角色是roles/compute.publicIpAdmin
或roles/compute.NetworkViewer
。