如何通过服务帐户使用 Terraform `google_app_engine_domain_mapping`?

Ago*_*iro 4 google-app-engine google-cloud-platform terraform terraform-provider-gcp

我正在尝试使用以下配置通过 Terraform 创建 GCP App Engine 域映射:

provider "google" {
  version = "3.36.0"
  region  = var.region
}

resource "google_app_engine_domain_mapping" "domain_mapping" {
  project = local.project_id
  domain_name = var.domain_name

  ssl_settings {
    ssl_management_type = "AUTOMATIC"
  }

  depends_on = [
    google_app_engine_application.backend_app
  ]
}
Run Code Online (Sandbox Code Playgroud)

Terraform 配置为使用具有以下 IAM 权限(无条件)的 GCP 提供程序的组织级服务帐户:

  • 结算帐号用户
  • 项目创建者
  • 服务配置编辑器(我添加了这个,认为它可以解决基于这个这个文档页面的问题。)

作为组织所有者的 Google 帐户已验证相关域,但我收到以下错误:

错误:创建域映射时出错:googleapi:错误 403:调用者无权管理域“testing.redacted.com”。如果您拥有“testing.redacted.com”,则可以通过网站站长中心门户验证域或其任何父域的所有权来获得授权:https : //www.google.com/webmasters/verification/verification ?domain=testing.redacted.com。我们建议验证您希望与子域一起使用的最大范围的所有权(例如,如果您希望映射“subdomain.example.com”,请验证“example.com”)。

我还尝试将服务帐户的电子邮件作为 Google Search Console 中的用户添加到域中,但无济于事。

cre*_*emy 5

解决方案相当简单,但有点隐藏在文档中。您需要将您的服务帐户电子邮件添加为域的所有者。

  1. 这里
  2. 选择您想要的房源
  3. 点击页面底部的“添加所有者”按钮并添加电子邮件地址(例如 terraform@<PROJECT_ID>.iam.gserviceaccount.com)

  • 谢谢!!!!应该是公认的答案。立即生效 (2认同)