如何通过API获取服务帐户对GCP中的项目和组织的所有角色/权限

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

我有一个属于项目的服务帐户。它在项目级别设置了一些角色/权限,在组织级别设置了一些角色/权限。

我需要获取授予该服务帐户的所有权限/角色的列表。

在搜索中,我找到了“ Identity and Access Management (IAM) API”文档,这些文档具有API,该API将列出有权访问服务帐户的所有资源以及为这些资源设置的角色。我需要的是相反的。我想获得服务帐户在其他资源(在我的情况下是项目和组织)上具有的所有角色。

在该文档中提到“ projects.serviceAccounts.getIamPolicy()方法不会返回该服务帐户可以访问的资源。要查看服务帐户是否可以访问资源,请在目标资源上调用getIamPolicy方法。例如,要查看项目的拨款,请调用projects.getIamPolicy方法。”但是要获得组织级别的权限,服务帐户无权执行API调用。

还有其他方法可以使服务帐户在项目和组织中拥有所有角色。

google-cloud-platform google-cloud-iam
2个回答
1
投票

是否还有其他方法可以使服务帐户在项目和组织。

这时,您将需要手动检查所有资源。

服务帐户是一个身份。可以在您的项目/组织中,但在其他项目/组织中,向一个身份授予资源权限。这包括诸如Cloud Storage对象,KMS密钥之类的资源以及诸如Cloud Run之类的服务等。这些许可权是在资源级别而不是身份级别进行跟踪的。

通常,管理员在项目级别授予IAM成员权限(角色)。但是,也可以在资源级别(即单个云存储对象或KMS密钥)授予权限。检查项目/组织权限不会显示资源级别的权限(项目只是另一个资源)。


1
投票

您可以使用search-all-iam-policies搜索跨服务,资源类型,项目,文件夹或组织内的项目的所有IAM策略。

要了解服务帐户在组织中具有哪些角色:

gcloud beta asset search-all-iam-policies --scope=organizations/123 --query="policy:[email protected]"

要了解更多信息,请参阅另一篇文章:How to list, find, or search iam policies across services (APIs), resource types, and projects in google cloud platform?

© www.soinside.com 2019 - 2024. All rights reserved.