我尝试在 GCP 项目的 Terraform 文件中将角色分配给用户,但收到以下错误:
错误:请求“创建 IAM 成员角色/compute.networkAdmin 用户:[电子邮件受保护]”项目 \"vibrant-mantis-296207\""" 返回错误:批量请求并重试单个请求“创建 IAM 成员角色/ “project \”vibrant-mantis-296207\“””的compute.networkAdmin 用户:[电子邮件受保护] 均失败。最终错误:为项目“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:[email protected]",
]
"roles/compute.networkAdmin" = [
"user:[email protected]",
]
Terraform 用于授权的用户/服务帐户没有权限
resourcemanager.projects.setIamPolicy
。
解决方案是编辑用户/服务帐户的 IAM 权限以包含作为该权限的角色。
具有权限的角色示例
resourcemanager.projects.setIamPolicy
:
通过谷歌找到这个,因为我得到了
Error:
Request `Create IAM Members roles/artifactregistry.reader
serviceAccount:mvp-service-account@[[project]].iam.gserviceaccount.com for project "[[project]]"` returned error:
Error retrieving IAM policy for project "[[project]]":
googleapi: Error 403: The caller does not have permission, forbidden
事实证明,我的项目名称有一个拼写错误,因此出现了错误。希望这对任何人都有帮助。
特权访问管理器项目服务代理 Roles/privilegedaccessmanager.projectServiceAgent 可以提供帮助并拥有最低权限:
在 Google Cloud Platform 上,转到 IAM,在 IAM 和管理中选择您的 terraform 服务
yourproject.iam.gserviceaccount.com
并将角色添加/更改为 所有者。
在控制台中,再次运行 terraform 命令,它应该已修复。
命令:
terraform init
terraform plan
terraform apply