Google cloud platform 如何允许GCP标识修改特定服务帐户
我有一个Terraform用来管理我的云资源的服务帐户,我们称之为Google cloud platform 如何允许GCP标识修改特定服务帐户,google-cloud-platform,google-iam,google-cloud-iam,Google Cloud Platform,Google Iam,Google Cloud Iam,我有一个Terraform用来管理我的云资源的服务帐户,我们称之为资源管理器sa。我需要给它足够的权限来创建/删除/编辑其他服务帐户,但不能更改它自己或项目中其他它不应该接触的SA 我尝试在那里添加一个条件,但似乎“服务帐户”不是条件(?)中的资源类型之一。以下是我绑定该角色的HCL片段(我使用Terraform的事实与此无关): 当我删除该条件时,一切正常,但资源管理器sa的权限远远超出其需要。它甚至可以修改自身以升级自己的权限。我添加条件boom后,它无法访问任何服务帐户: 错误:读取或编辑
资源管理器sa
。我需要给它足够的权限来创建/删除/编辑其他服务帐户,但不能更改它自己或项目中其他它不应该接触的SA
我尝试在那里添加一个条件,但似乎“服务帐户”不是条件(?)中的资源类型之一。以下是我绑定该角色的HCL片段(我使用Terraform的事实与此无关):
当我删除该条件时,一切正常,但资源管理器sa
的权限远远超出其需要。它甚至可以修改自身以升级自己的权限。我添加条件boom后,它无法访问任何服务帐户:
错误:读取或编辑服务帐户时出错“projects/***/servicecomports/blah blah***.iam.gserviceaccount.com”
:googleapi:Error 403:Permissioniam.servicecomports.get
需要对服务帐户projects/***/servicecomports/blah blah***.iam.gserviceaccount.com
执行此操作。,禁止的
我觉得我在这里做了一些根本错误的事情,但我找不到一个好的配置示例来实现我在这里试图实现的目标。服务帐户也是一种资源。因此,您可以在服务帐户级别而不是项目级别为标识分配IAM权限。这意味着您可以创建一个没有权限/角色的服务帐户,并将该服务帐户权限授予另一个服务帐户
使用Terraform查看资源。这将为您提供所要求的粒度,并且不允许权限升级。服务帐户也是一种资源。因此,您可以在服务帐户级别而不是项目级别为标识分配IAM权限。这意味着您可以创建一个没有权限/角色的服务帐户,并将该服务帐户权限授予另一个服务帐户
使用Terraform查看资源。这将为您提供您所要求的粒度,并且不允许特权升级。使用服务帐户作为资源正是我在这里试图做的<代码>废话-blah@....是资源,
资源管理器-sa@....
应该可以访问该资源。谢谢使用服务帐户作为资源正是我在这里要做的<代码>废话-blah@....是资源,资源管理器-sa@....
应该可以访问该资源。谢谢
resource "google_project_iam_member" "service-account" {
project = var.project
role = "roles/iam.serviceAccountAdmin"
member = "serviceAccount:${google_service_account.resource-manager-sa.email}"
condition {
title = "Can manage Blah Blah SA"
expression = "resource.name.extract('/serviceAccounts/{name}').startsWith('blah-blah@')"
}
}