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

问题描述 投票:0回答:4

我尝试在 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]",
    ]
google-cloud-platform terraform terraform-provider-gcp google-iam google-cloud-iam
4个回答
24
投票

Terraform 用于授权的用户/服务帐户没有权限

resourcemanager.projects.setIamPolicy

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

具有权限的角色示例

resourcemanager.projects.setIamPolicy
:

  • 角色/iam.securityAdmin
  • 角色/resourcemanager.projectIamAdmin
  • 角色/resourcemanager.folderAdmin
  • 角色/resourcemanager.organizationAdmin

授予、更改和撤销对资源的访问权限


0
投票

通过谷歌找到这个,因为我得到了

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

事实证明,我的项目名称有一个拼写错误,因此出现了错误。希望这对任何人都有帮助。


0
投票

特权访问管理器项目服务代理 Roles/privilegedaccessmanager.projectServiceAgent 可以提供帮助并拥有最低权限:

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

-2
投票

在 Google Cloud Platform 上,转到 IAM,在 IAM 和管理中选择您的 terraform 服务

yourproject.iam.gserviceaccount.com
并将角色添加/更改为 所有者

在控制台中,再次运行 terraform 命令,它应该已修复。

命令:

terraform init
terraform plan
terraform apply
© www.soinside.com 2019 - 2024. All rights reserved.