google 新项目中不存在存储传输服务帐户
google storage transfer service account does not exist in new project
我正在尝试在新的 GCP 项目中使用 Terraform 创建资源。作为其中的一部分,我想将 roles/storage.legacyBucketWriter
设置为 Google 托管服务帐户,其中 运行s 存储传输服务作业(模式为 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 应用时,我得到以下信息:
Error applying IAM policy for Storage Bucket "bucket":
Error setting IAM policy for Storage Bucket "bucket": googleapi:
Error 400: Invalid argument, invalid
我认为这是因为相关服务帐户尚不存在,因为我也无法通过控制台执行此操作。
是否需要启用任何其他服务才能创建服务帐户?
看来我可以 create/find 服务帐户一旦我 运行 这个:
https://cloud.google.com/storage/transfer/reference/rest/v1/googleServiceAccounts/get
为我的项目获取电子邮件地址。
不确定这是否是最好的方法,但它确实有效..
我正在尝试在新的 GCP 项目中使用 Terraform 创建资源。作为其中的一部分,我想将 roles/storage.legacyBucketWriter
设置为 Google 托管服务帐户,其中 运行s 存储传输服务作业(模式为 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 应用时,我得到以下信息:
Error applying IAM policy for Storage Bucket "bucket":
Error setting IAM policy for Storage Bucket "bucket": googleapi:
Error 400: Invalid argument, invalid
我认为这是因为相关服务帐户尚不存在,因为我也无法通过控制台执行此操作。
是否需要启用任何其他服务才能创建服务帐户?
看来我可以 create/find 服务帐户一旦我 运行 这个:
https://cloud.google.com/storage/transfer/reference/rest/v1/googleServiceAccounts/get
为我的项目获取电子邮件地址。
不确定这是否是最好的方法,但它确实有效..