【问题标题】:googleapi: Error 403: Required 'compute.organizations.enableXpnHost' permissiongoogleapi:错误 403:需要“compute.organizations.enableXpnHost”权限
【发布时间】:2021-06-16 10:26:52
【问题描述】:

我已在组织级别为我的用户同时授予我的管理员用户和服务帐户用户“计算共享 VPC 管理员”角色,但我似乎无法启用请求的权限。我还授予了拥有 namidalab-dev-networks 项目的文件夹级别的角色。在 IAM 和管理控制台 UI 中选择 namidalab-dev-networks 项目时,我的管理员用户和服务帐户用户无法使用“计算共享 VPC 管理员”选项。

如何将此角色授予项目?

地形输出:

...
Step #1 - "Apply": google_compute_shared_vpc_host_project.host: Creating...
Step #1 - "Apply": 
Step #1 - "Apply": Error: Error enabling Shared VPC Host "namidalab-dev-networks": googleapi: Error 403: Required 'compute.organizations.enableXpnHost' permission for 'projects/namidalab-dev-networks', forbidden
Step #1 - "Apply": 
Step #1 - "Apply":   on main.tf line 87, in resource "google_compute_shared_vpc_host_project" "host":
Step #1 - "Apply":   87: resource "google_compute_shared_vpc_host_project" "host" {

My Organization, folder and project structure

Organization configuration

Folder configuration

Project configuration - Compute Shared VPC Admin role is no longer available.

Unable to add Compute Shared VPC Admin here.

【问题讨论】:

    标签: google-cloud-platform terraform terraform-provider-gcp google-iam google-cloud-iam


    【解决方案1】:

    Google Cloud 建议共享 VPC 管理员是共享 VPC 宿主项目的所有者。

    您需要将角色 roles/compute.xpnAdmin 添加到 Terraform 正在使用的服务帐户中。这是我知道的唯一一个包含compute.organizations.enableXpnHost 权限的角色。我注意到您在问题中提到了这个角色,但我认为您将其置于错误的级别或错误的项目中。这应该在组织级别或 VPC 托管项目级别授予。

    Compute Shared VPC Admin Role

    组织管理员可以在组织级别添加此角色。

    【讨论】:

    • 我在原始问题中添加了一些屏幕截图。我想我已经按照您的描述进行了配置,但仍然出现 Terraform 错误。
    • @SteveMunini - 您是否将 Terraform 作为 Cloud Build 的一部分运行?其他屏幕截图显示了 Terraform 不使用的 IAM 用户帐户,除非您设置 gcloud auth application-default login。如果您从桌面运行 Terraform,您为它的权限设置了哪个帐户?
    • 是的,此错误发生在 Cloud Build 中。我被指示使用来自these instructionsgcloud auth login --update-adc。我尝试了 gcloud auth application-default login 并从 Cloud Build 重试 Terraform 脚本,但我得到了同样的错误。如何从 Cloud Build 中了解正在使用的帐户?
    • 我能够通过在日志资源管理器中找到错误来找到正在使用的服务帐户。它是 1033771270852@cloudbuild.gserviceaccount.com,但我不确定如何授予该用户计算共享 VPC 管理员。 UI 禁止添加该角色。
    • 记下 Cloud Build 服务帐号的电子邮件地址。转到 Google Cloud Console GUI -> IAM & Admin -> IAM。切换到组织或文件夹(在工具栏中)而不是项目。单击“添加”。输入服务帐户电子邮件地址作为“新成员”。对于角色,选择“计算共享 VPC 管理员”。注意:Cloud Build 服务帐号可能已存在于 IAM 部分中。如果是这样,请编辑条目而不是添加新条目。继承会将服务帐户权限授予组织或文件夹的子项(项目)。
    【解决方案2】:

    仅供参考,截至撰写此笔记的那一刻,根据文档https://cloud.google.com/vpc/docs/provisioning-shared-vpc#terraform

    如果您已将角色roles/compute.xpnAdmin 设置为文件夹级别(而非组织级别)的 terraform 服务帐户

    在 terraform 脚本中描述您的共享 VPC 时,您需要明确使用 google-beta 提供程序

    不然你还是会遇到Error 403: Required 'compute.organizations.enableXpnHost' permission for 'projects/YOUR-PROJECT', forbidden

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 2019-07-13
      • 1970-01-01
      • 2019-11-01
      • 2021-08-26
      • 1970-01-01
      • 2022-12-04
      相关资源
      最近更新 更多