新项目中不存在Google存储传输服务帐户

Sor*_*ani 7 google-cloud-storage google-cloud-platform terraform terraform-provider-gcp

我正在尝试在新的 GCP 项目中使用 Terraform 创建资源。作为其中的一部分,我想设置roles/storage.legacyBucketWriter为 Google 托管服务帐户,该project-[project-number]@storage-transfer-service.iam.gserviceaccount.com帐户为特定存储桶运行存储传输服务作业(模式为 )。我正在使用以下配置:

resource "google_storage_bucket_iam_binding" "publisher_bucket_binding" {
  bucket = "${google_storage_bucket.bucket.name}"
  members     = ["serviceAccount:project-${var.project_number}@storage-transfer-service.iam.gserviceaccount.com"]
  role = "roles/storage.legacyBucketWriter"
}
Run Code Online (Sandbox Code Playgroud)

澄清一下,我想这样做,以便当我使用 JSON API 创建一次性传输作业时,它不会通过先决条件检查。

当我运行 Terraform apply 时,我得到以下信息:

Error applying IAM policy for Storage Bucket "bucket":
Error setting IAM policy for Storage Bucket "bucket": googleapi:
Error 400: Invalid argument, invalid
Run Code Online (Sandbox Code Playgroud)

我认为这是因为有问题的服务帐户尚不存在,因为我也无法通过控制台执行此操作。

是否需要启用任何其他服务才能创建服务帐户?

Sor*_*ani 9

运行此命令后,我似乎能够创建/找到服务帐户:

https://cloud.google.com/storage/transfer/reference/rest/v1/googleServiceAccounts/get

让我的项目获取电子邮件地址。

不确定这是否是最好的方法,但它有效..