【发布时间】:2020-06-14 16:10:30
【问题描述】:
我在为 Terraform 提供必要的 GCP 角色时遇到问题,其中有很多 Error 403: The caller does not have permission。
我这样做的方式是逐步添加权限,但这更像是一种反复试验的方法,我最终会添加授权。
有没有办法像我们在 AWS 上那样在 GCP 上为 Terraform 提供完整的管理员角色?或者也许我遗漏了一些东西,但我在网上找不到关于该主题的文档。
谢谢。
--
更新:
我要创建的资源是 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
}
}
P.S.:该域已通过 Google 网站管理员页面进行了验证。
但terraform apply 上返回的问题是:
Error creating DomainMapping: googleapi: Error 403: The caller does not have permission
为了解决这个特定问题,我需要找到需要为我的 Terraform 角色添加的授权,但在需要新的 GCP 服务时再次遇到相同的问题只是时间问题。
此外,我完全能够使用 GCP 控制台添加映射,这表明我能够通过所有必需的验证步骤。
让 Terraform 管理所有 GCP 资源并让它创建所有必要的资源不是更好吗?
【问题讨论】:
-
你想用 terraform 做什么?
-
嗨@guillaumeblaquiere,我添加了有关该问题的更新,并提供了更多详细信息
-
我认为最好限制 api 访问,直到你完全确定你会需要它。显然,另一种选择是授予 Terraform GodMode 权限以创建所有内容
-
嗨@cricket_007 我同意,我们应该始终将授权限制在必要的范围内。不幸的是,很难找到有关使用新 Terraform 资源时要添加哪些授权的文档。在使用资源时,Terraform 的文档非常棒,但是缺少所需的授权部分。你怎么知道要添加哪些?例如,在
google_cloud_run_domain_mapping上,我选择随机授权进行反复试验!这不聪明:( -
我不太熟悉 GCP 资源的细粒度细节,但我想 Cloud Run 有自己的项目子集......域映射听起来像 VPC 配置
标签: google-cloud-platform terraform terraform-provider-gcp