Google cloud platform 想通过terraform为一个服务帐户分配多个Google cloud IAM角色吗
希望通过terraform将多个IAM角色分配给单个服务帐户。准备了一个tf文件来执行此操作,但是发现了一些错误,如果我使用单个角色,那么它可以成功分配,但是当我尝试使用多个IAM角色时,会出现一些错误Google cloud platform 想通过terraform为一个服务帐户分配多个Google cloud IAM角色吗,google-cloud-platform,terraform,google-iam,terraform-provider-gcp,Google Cloud Platform,Terraform,Google Iam,Terraform Provider Gcp,希望通过terraform将多个IAM角色分配给单个服务帐户。准备了一个tf文件来执行此操作,但是发现了一些错误,如果我使用单个角色,那么它可以成功分配,但是当我尝试使用多个IAM角色时,会出现一些错误 data "google_iam_policy" "auth1" { binding { role = "roles/cloudsql.admin" members = [ "serviceAccount:${google_service_account.serv
data "google_iam_policy" "auth1" {
binding {
role = "roles/cloudsql.admin"
members = [
"serviceAccount:${google_service_account.service_account_1.email}",
]
role = "roles/secretmanager.secretAccessor"
members = [
"serviceAccount:${google_service_account.service_account_1.email}",
]
role = "roles/datastore.owner"
members = [
"serviceAccount:${google_service_account.service_account_1.email}",
]
role = "roles/storage.admin"
members = [
"serviceAccount:${google_service_account.service_account_1.email}",
]
}
}
您能否帮助我,如何针对单个服务帐户分配多个角色。根据
每个文档配置必须有一个或多个绑定块,每个绑定块都接受以下参数:
你必须像这样重复绑定
data "google_iam_policy" "auth1" {
binding {
role = "roles/cloudsql.admin"
members = [
"serviceAccount:${google_service_account.service_account_1.email}",
]
}
binding {
role = "roles/secretmanager.secretAccessor"
members = [
"serviceAccount:${google_service_account.service_account_1.email}",
]
}
binding {
role = "roles/datastore.owner"
members = [
"serviceAccount:${google_service_account.service_account_1.email}",
]
}
binding {
role = "roles/storage.admin"
members = [
"serviceAccount:${google_service_account.service_account_1.email}",
]
}
}
使用gcloud命令也是一样,您一次只能在电子邮件列表中添加一个角色。嘿,您的问题不太清楚。。。。如果您告诉我们您收到的错误消息是什么呢?谢谢您的回答。它正在工作。但在通过terraform将此服务帐户分配给cloudrun服务时,我面临另一个错误。它表示不支持资源--
googleapi:Error 400:Role roles/datastore.owner不支持此资源。在helloworld-cloudrun.tf第60行,在资源“google_cloud_run_服务iam_策略”“auth1”:60:resource“google_cloud_运行服务iam_策略”“auth1”{
。我的云运行代码--资源“google_cloud_run_service_iam_policy”“auth1”{location=google_cloud_run_service.helloworld.location project=google_cloud_run_service.helloworld.project service=google_cloud_run_service.helloworld.name policy_data=data.google_iam_policy.auth1.policy_data}
IAM角色一开始很奇怪。请这样想:我想授予服务/项目/组织成员的角色
。您尝试执行的是我想授予角色datastore.owner on member….on Cloud Run service
。Cloud Run和datastore之间没有关系。您想授予角色吗成员上的datastore.owner…在项目上…
。在cloud run上,您只能授予有限数量的角色,我想授予成员上的role run.invoker…用于cloud run服务
。这是有意义的。我不知道我是否清楚…所以请使用此资源资源“google\u project\u iam\u binding”…