Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 使用GCP令牌、地形和vault创建项目时出错_Google Cloud Platform_Terraform_Vault - Fatal编程技术网

Google cloud platform 使用GCP令牌、地形和vault创建项目时出错

Google cloud platform 使用GCP令牌、地形和vault创建项目时出错,google-cloud-platform,terraform,vault,Google Cloud Platform,Terraform,Vault,我想用terraform创建一个GCP项目,使用vault获取令牌。我已经配置了GCP机密引擎,我要求terraform内的vault获取令牌;但当我运行terraform来创建项目时,我得到一个错误,上面说: Error 403: Service accounts cannot create projects without a parent., forbidden. If you received a 403 error, make sure you have the `roles/reso

我想用terraform创建一个GCP项目,使用vault获取令牌。我已经配置了GCP机密引擎,我要求terraform内的vault获取令牌;但当我运行terraform来创建项目时,我得到一个错误,上面说:

Error 403: Service accounts cannot create projects without a parent., forbidden. If you received a 403 error, make sure you have the `roles/resourcemanager.projectCreator` permission
│ 
│   with module.gcp-project.google_project.project,
│   on .terraform/modules/gcp-project/main.tf line 6, in resource "google_project" "project":
│    6: resource "google_project" "project" {
我支持vault令牌的roleset绑定中存在问题,但我不知道必须在roleset中放置哪些资源

我尝试了
resourcemanager.projectCreator
角色;但它总是问我项目名称

我应该允许所有的组织吗?因为如果我想创建新项目,如果我把一个已经存在的项目作为资源,我将无法创建另一个项目

谢谢

您必须确保您的Vault GCP角色集是在组织内部的项目(例如“管理”项目)中创建的

当您使用terraform创建项目创建者角色集时,您需要授予它一个具有
resourcemanager.projects.create
权限的角色。您可以针对整个组织或组织内的单个文件夹创建绑定。例如:

resource "vault_gcp_secret_roleset" "default" {
  backend      = var.gcp_secret_backend
  roleset      = var.roleset_name
  project      = var.project
  secret_type  = var.secret_type
  token_scopes = ["https://www.googleapis.com/auth/cloud-platform"]

  binding {
    resource = "//cloudresourcemanager.googleapis.com/folders/${var.folder_id}"

    roles = [
      "roles/resourcemanager.projectCreator",
      "roles/resourcemanager.projectMover",
      "roles/resourcemanager.projectDeleter",
    ]
  }
}

我遇到了与您完全相同的错误消息,我正在使用terraform google模块/project factory/google v10.3.2,到目前为止还没有解决。希望有人能帮助我们。这个问题很难发现,因为:1)服务帐户无法创建没有父级(文件夹或组织)的项目,但2)用户可以创建项目,如果您根据用户凭据测试使用,则所有操作都将起作用,然后突然停止,而不知道原因。