新项目中不存在google storage transfer服务帐户

时间:2018-06-21 10:32:54

标签: google-cloud-platform google-cloud-storage 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"
}

为了阐明这一点,我想这样做,以便在使用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

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

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

1 个答案:

答案 0 :(得分:2)

运行此命令后,似乎可以创建/查找服务帐户了:

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

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

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