从服务项目引用宿主项目中定义的全局地址

从服务项目引用宿主项目中定义的全局地址

我有一个项目 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.publicIpAdminroles/compute.NetworkViewer

相关内容