在 Terraform for GCP 中允许帐户和角色时出错

问题描述

我正在尝试在 GCP 项目的 terraform 文件中为用户分配角色,但出现以下错误

错误:请求“为“项目 \”vibrant-mantis-296207\“”创建 IAM 成员角色/compute.networkAdmin 用户:someone@google.com 返回错误:批量请求并重试单个请求“创建 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",    ]

解决方法

Terraform 用于授权的用户/服务帐户没有 resourcemanager.projects.setIamPolicy 权限。

解决方案是编辑用户/服务帐户的 IAM 权限,以包含作为该权限的角色。

具有 resourcemanager.projects.setIamPolicy 权限的示例角色:

  • roles/iam.securityAdmin
  • roles/resourcemanager.projectIamAdmin
  • roles/resourcemanager.folderAdmin
  • roles/resourcemanager.organizationAdmin

Granting,changing,and revoking access to resources

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...