无法使用 Terraform 创建谷歌项目

Posted

技术标签:

【中文标题】无法使用 Terraform 创建谷歌项目【英文标题】:Unable to create google project with Terraform 【发布时间】:2019-10-12 03:44:55 【问题描述】:

我正在关注Google GKE and SQL with terraform 教程 但我无法创建 google_project.project。 我已经尝试过作为项目的所有者和教程中描述的服务。两次尝试都以这个错误结束:

Error: Error applying plan:

1 error(s) occurred:

* google_project.project: 1 error(s) occurred:

* google_project.project: error creating project terraform-dev-357aa670 
 (terraform-dev): googleapi: Error 403: User is not authorized., forbidden. 
  If you received a 403 error, make sure 
  you have the `roles/resourcemanager.projectCreator` permission

我认为我作为项目所有者拥有正确的权限,但显然没有。

以下是我创建服务帐户的方式:

$ gcloud organizations add-iam-policy-binding $TF_VAR_org_id \                                (gke_my-domain-218910_europe-west1-b_my-domain-vpc-native/default)
> --member serviceAccount:terraform@$TF_ADMIN.iam.gserviceaccount.com \
> --role roles/resourcemanager.projectCreator
Updated IAM policy for organization [00000].
bindings:
- members:
  - domain:my-domain.no
  role: roles/billing.creator
- members:
  - serviceAccount:terraform@my-domain-terraform-admin-3.iam.gserviceaccount.com
  - serviceAccount:terraform@my-domain-terraform-admin.iam.gserviceaccount.com
  role: roles/billing.user
- members:
  - domain:min-familie.no
  - serviceAccount:terraform@my-domain-terraform-admin-3.iam.gserviceaccount.com
  - serviceAccount:terraform@my-domain-terraform-admin.iam.gserviceaccount.com
  role: roles/resourcemanager.projectCreator
etag: BwWJxJTDnQs=
version: 19d

“手动”创建项目是可行的。 $ gcloud projects create $TF_ADMIN.

有什么想法可能是错的吗?

【问题讨论】:

也许可以尝试使用命令行中的 gcloud 命令创建一个项目,看看是否可以在不靠近 terraform 的情况下执行该任务...请参阅 cloud.google.com/sdk/gcloud/reference/projects/create 【参考方案1】:

我遇到了完全相同的问题!

为我解决此问题的步骤:

    将该服务帐户的密钥(使用 GCP 控制台)下载到:/Users/johndoe/sa.json

    导出 GOOGLE_APPLICATION_CREDENTIALS=/Users/johndoe/factory.json

    地形应用

希望这对你有用。

在这里找到了赛斯法戈的解决方案: https://github.com/sethvargo/vault-on-gke/issues/16

【讨论】:

以上是关于无法使用 Terraform 创建谷歌项目的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 terraform 从自动缩放挂钩创建 sns

为啥我使用 terraform 资源 aws_route53_record 创建的 Route53 记录无法公开解析?

Terraform 无法将创建的集成附加到 API 网关的路由中

Terraform无法使用静态S3网站端点创建CloudFront的原点

无法使用 localstack dynamoDB 锁定 terraform 状态:UnrecognizedClientException

使用 Terraform 部署时 GKE Autopilot 无法调度