我在为 Terraform 提供必要的 GCP 角色时遇到问题,其中有许多错误 403:调用者没有权限
。
我这样做的方式是逐渐添加权限,但这更多的是一种尝试和错误的方法,最终我过度添加了授权。
是否有办法在 GCP 上为 Terraform 提供完整的管理员角色,就像我们在 AWS 上所做的那样?或者也许我遗漏了一些东西,但我无法在线找到有关该主题的文档。
谢谢。
--
更新:
我要创建的资源是 Cloud Run 的域映射。这是通过以下方式完成的:
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
}
}
附注:域名已通过 Google 网站管理员页面进行验证。
但是 terraform apply
返回的问题是:
创建 DomainMapping 时出错:googleapi:错误 403:调用者没有权限
为了解决这个特定问题,我需要找到需要向我的 Terraform 角色添加哪些授权,但在需要新的 GCP 服务时再次遇到同一问题只是时间问题。
此外,我完全能够使用 GCP 控制台添加映射,这表明我能够通过所有必需的验证步骤。
让 Terraform 管理所有 GCP 资源并让它创建所有必要的资源不是更好吗?
最佳答案
有关使用预定义的超特权角色,请参阅understanding roles文档。
在 link within Daniel's answer ,文档建议您可以Add verified domain owners to other users or service accounts .
一旦服务帐户受到域映射的信任,请提供 roles/run.admin
角色来验证它是否解决了问题,然后通过 switching to a custom role 对其进行限制。遵守最低权限。
关于google-cloud-platform - 我可以为 Terraform for GCP 授予管理员角色吗? (Cloud Run 域映射示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60487573/