我有一个托管共享 VPC 的项目 A 和一个服务项目 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 地址的服务项目帐户的明确角色,对吗?
是的,您需要一个角色来授予对“拥有”全局 IP 地址的项目的访问权限。一个示例角色是
roles/compute.publicIpAdmin
或roles/compute.NetworkViewer
。