Google cloud platform 错误:(gcloud.composer.environments.update)在terraform作为第二个帐户运行模拟时模拟失败
当我运行terraform应用程序时,出现以下错误(请参见下文) 我正在运行Terraform 12.x GCP Cloud Build在不同的项目中运行,而非项目abcd(这些帐户所在的位置) 我的terraform代码尝试在GCP云构建容器中执行gcloud命令。它通过模仿作曲家bq来实现-sa@prj-abcd.iam.gserviceaccount.com terraform运行的服务帐户为: terraform_服务_账户=“组织-terraform@abcd.iam.gserviceaccount.com” (模仿前) 此IAM帐户(org)-terraform@abcd.iam.gserviceaccount.com)(非服务帐户)具有以下角色绑定(共9个): (该电子邮件中没有服务帐户) 服务帐户(composer bq)-sa@prj-abcd.iam.gserviceaccount.com)的成员之一是:org-terraform@abcd.iam.gserviceaccount.com 当我看到标题为“有权访问此服务帐户的成员”的屏幕并看到org时-terraform@abcd.iam.gserviceaccount.com,我发现它具有以下角色绑定(仅4个): 为什么即使IAM帐户显然具有正确的角色,并且它是其冒充的服务帐户的成员之一,我仍会出现以下错误 错误 重述:Google cloud platform 错误:(gcloud.composer.environments.update)在terraform作为第二个帐户运行模拟时模拟失败,google-cloud-platform,terraform,impersonation,service-accounts,google-cloud-iam,Google Cloud Platform,Terraform,Impersonation,Service Accounts,Google Cloud Iam,当我运行terraform应用程序时,出现以下错误(请参见下文) 我正在运行Terraform 12.x GCP Cloud Build在不同的项目中运行,而非项目abcd(这些帐户所在的位置) 我的terraform代码尝试在GCP云构建容器中执行gcloud命令。它通过模仿作曲家bq来实现-sa@prj-abcd.iam.gserviceaccount.com terraform运行的服务帐户为: terraform_服务_账户=“组织-terraform@abcd.iam.gservice
要授予用户模拟服务帐户的权限,请遵循文档中列出的说明。
根据用例,您可以授予用户以下角色:
角色/iam.serviceAccountUser
角色/iam.serviceAccountTokenCreator
角色/iam.workloadIdentityUser
Composer Administrator
Compute Network Admin
Service Account Token Creator
Owner
Access Context Manager Admin
Security Admin
Service Account Admin
Logs Configuration Writer
Security Center Notification Configurations Editor
Service Account Token Creator
Owner
Security Admin
Service Account Admin
module.gcloud_composer_bucket_env_var.null_resource.run_command[0] (local-exec): WARNING: This command
is using service account impersonation. All API calls will be executed as [**composer-bq-sa@prj-abcd.iam.gserviceaccount.com**].
module.gcloud_composer_bucket_env_var.null_resource.run_command[0] (local-exec): ERROR:
(gcloud.composer.environments.update) Failed to impersonate [**composer-bq-sa@prj-abcd.iam.gserviceaccount.com**]. Make sure the account that's trying to impersonate it has access to the service account itself and the "roles/iam.serviceAccountTokenCreator" role.