我可以为 GCP 赋予 Terraform 管理员角色吗? (云 运行 域映射示例)

Can I give admin role to Terraform for GCP? (example on Cloud Run domain mapping)

我在为 Terraform 提供必要的 GCP 角色时遇到问题,许多 Error 403: The caller does not have permission

我这样做的方式是逐渐添加权限,但它更像是一种反复试验的方法,最终我添加了过多的授权。

有没有办法像我们在 AWS 上那样,在 GCP 上为 Terraform 赋予完整的管理员角色?或者我可能遗漏了一些东西,但我找不到关于该主题的在线文档。

谢谢。

--

更新:

我要创建的资源是 Cloud 运行 的域映射。这是通过以下方式完成的:

resource "google_cloud_run_domain_mapping" "default" {
  location = "europe-west1"
  name     = "mydomain.com"

  metadata {
    namespace = "default"
  }

  spec {
    route_name = google_cloud_run_service.default.name
  }
}

P.S.: 域已通过 Google 网站管理员页面进行了验证。

但是 terraform apply 上返回的问题是:

Error creating DomainMapping: googleapi: Error 403: The caller does not have permission

为了解决这个特殊问题,我需要找到我需要添加到我的 Terraform 角色的授权,但是在需要新的 GCP 服务时再次遇到同样的问题只是时间问题。

此外,我完全能够使用 GCP 控制台添加映射,这表明我能够通过所有必需的验证步骤。

让 Terraform 管理所有 GCP 资源并让它创建所有必要的资源不是更好吗?

在添加自定义域的特定情况下,您需要参考 documentation 的以下部分。

请注意,您需要将服务帐户添加为经过验证的所有者才能获得正确的权限。

要使用预定义的过度特权角色,请参阅 understanding roles 文档。

link within Daniel's answer, the document suggests that you can Add verified domain owners to other users or service accounts.

一旦服务帐户被信任用于域映射,提供 roles/run.admin 角色来验证它是否解决了问题,然后通过 switching to a custom role 限制它以遵守最小权限。