【问题标题】:How to get all roles/permissions that a service account have for a project and organization in GCP through API如何通过 API 获取服务帐户对 GCP 中项目和组织的所有角色/权限
【发布时间】:2020-02-26 14:35:40
【问题描述】:

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

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

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

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

有没有其他方法可以获取服务帐户在项目和组织中的所有角色。

【问题讨论】:

    标签: google-cloud-platform google-cloud-iam


    【解决方案1】:

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

    要了解服务帐号在组织中的角色:

    gcloud asset search-all-iam-policies --scope=organizations/123 --query="policy:123-compute@developer.gserviceaccount.com"
    

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

    【讨论】:

      【解决方案2】:

      是否有任何其他方法可以获取服务帐户在 项目和组织。

      此时,您将需要手动检查各处的所有资源。

      服务帐户是一种身份。可以授予身份对您的项目/组织和其他项目/组织中的资源的权限。这包括 Cloud Storage 对象、KMS 密钥、Cloud Run 等服务等资源。这些权限在资源级别而不是身份级别进行跟踪。

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

      【讨论】:

      • 谢谢。我仍在考虑一种方法来获取与服务帐户关联的所有角色。我需要获取服务帐户在项目和组织中的角色列表。我可以运行 projects.getIamPolicy() ,它返回所有可以访问项目的身份并可以过滤所需的服务 ID。我无法执行 organization.getIamPolicy(),因为服务帐户无权调用该 API。你能建议我完成这项任务的方法吗?
      • 您需要获得访问组织资源的权限。此链接解释更多并有示例代码:cloud.google.com/resource-manager/docs/access-control-org
      • 那么目前这是完成这项任务的唯一方法吗?
      • 我只想获得给定服务帐户对组织的所有权限。没有其他方法可以从服务帐户端获取它,而不是获取所有有权访问组织的帐户/资源的权限吗? organization.getIamPolicy() 方法列出了所有不需要访问该组织的帐户/用户/资源的列表。
      • 资源包含身份的权限。您需要访问资源的权限才能获取此信息。身份不知道它对其他资源拥有什么权限。权限是在资源(组织、项目、对象等)上分配的,而不是在身份上分配的。例外情况是身份也是向其他身份授予权限的资源。
      猜你喜欢
      • 2019-01-01
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 2020-10-10
      • 2021-12-06
      • 2022-08-12
      • 2021-09-20
      相关资源
      最近更新 更多