使用Terraform无法创建Google项目

5
我正在遵循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的情况下执行该任务...请参阅https://cloud.google.com/sdk/gcloud/reference/projects/create - Kolban
2个回答

1
为了创建文件夹和项目,您的账户需要拥有相应的权限,并且您需要确保使用正确的账户。
首先,请确保用户拥有正确的权限:
gcloud organizations add-iam-policy-binding YOUR_ORGANIZATION_ID --member=user:your@email.com --role=roles/billing.admin
gcloud organizations add-iam-policy-binding YOUR_ORGANIZATION_ID --member=user:your@email.com --role=roles/resourcemanager.organizationAdmin
gcloud organizations add-iam-policy-binding YOUR_ORGANIZATION_ID --member=user:your@email.com --role=roles/resourcemanager.folderCreator
gcloud organizations add-iam-policy-binding YOUR_ORGANIZATION_ID --member=user:your@email.com --role=roles/resourcemanager.projectCreator

接下来,请确保设置应用程序默认值,并且登录到此帐户:

gcloud auth application-default login

默认情况下,API调用将被计费到一个项目中。有关详细信息,请参见此处。如果您没有设置这个项目,当您运行terraform apply时,可能会出现配额错误。

gcloud auth application-default set-quota-project SOME_BILLING_PROJECT

0

我曾经遇到过完全相同的问题!

以下是解决此问题的步骤:

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

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

  3. 应用terraform

希望这对你有用。

在此处找到了Seth Fargo的解决方案: https://github.com/sethvargo/vault-on-gke/issues/16


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接