在 Terraform for GCP 中允许帐户和角色时出错
Posted
技术标签:
【中文标题】在 Terraform for GCP 中允许帐户和角色时出错【英文标题】:Getting error while allowing accounts and roles in Terraform for GCP 【发布时间】:2021-04-16 01:24:02 【问题描述】:我正在尝试在 GCP 项目的 Terraform 文件中将角色分配给用户,但出现以下错误:
错误:请求“创建 IAM 成员角色/compute.networkAdmin 用户:someone@google.com 为“项目 \"vibrant-mantis-296207\""”返回错误:批量请求和重试单个请求“创建 IAM 成员角色” /compute.networkAdmin user:someone@google.com for "project \"vibrant-mantis-296207\""" 都失败了。最终错误:为项目“vibrant-mantis-296207”应用 IAM 策略时出错:为项目“vibrant-mantis-296207”设置 IAM 策略时出错:googleapi:错误 403:策略更新访问被拒绝。,禁止
我使用了以下代码:
module "projects_iam_bindings"
source = "terraform-google-modules/iam/google//modules/projects_iam"
version = "~> 6.4"
projects = ["vibrant-mantis-296207"]
bindings =
"roles/storage.admin" = [
"user:someone@google.com",
]
"roles/compute.networkAdmin" = [
"user:someone@google.com",
]
【问题讨论】:
【参考方案1】:Terraform 用于授权的用户/服务帐户没有权限resourcemanager.projects.setIamPolicy
。
解决方案是编辑用户/服务帐户的 IAM 权限,以包含一个作为该权限的角色。
具有resourcemanager.projects.setIamPolicy
权限的示例角色:
Granting, changing, and revoking access to resources
【讨论】:
【参考方案2】:在 Google Cloud Platform 上转到 IAM,在 IAM & Admin 中选择您的 terraform 服务 yourproject.iam.gserviceaccount.com
并将 role 添加/更改为 Owner。
在控制台中,再次运行您的 terraform 命令,它应该会被修复。
命令:
terraform init
terraform plan
terraform apply
【讨论】:
以上是关于在 Terraform for GCP 中允许帐户和角色时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何在 terraform 中正确创建具有角色的 gcp 服务帐户
为 Terraform 服务帐户定义 ClusterRoleBinding