【问题标题】:List roles in specific project in Google Cloud Platform using python使用 python 列出 Google Cloud Platform 中特定项目中的角色
【发布时间】:2020-01-15 16:07:18
【问题描述】:

我正在尝试学习 python SDK 来帮助我管理我的 Google Cloud Platform 资源。有人可以帮我理解。我从 Google API 获得了以下代码 sn-p。
此代码单独工作。假设我想列出我组织中的所有角色,或者列出特定项目的角色,我应该在哪里做以及如何做?

非常感谢您。

from pprint import pprint

from googleapiclient import discovery
from oauth2client.client import GoogleCredentials

credentials = GoogleCredentials.get_application_default()

service = discovery.build('iam', 'v1', credentials=credentials)

request = service.roles().list()
while True:
    response = request.execute()

    for role in response.get('roles', []):
        # TODO: Change code below to process each `role` resource:
        pprint(role)

    request = service.roles().list_next(previous_request=request, previous_response=response)
    if request is None:
        break

【问题讨论】:

    标签: python google-cloud-platform google-cloud-iam google-cloud-resource-manager


    【解决方案1】:

    您可以通过使用项目 [1] 的“resourcemanager.projects.getIamPolicy”来获取 IAM 角色。如果这是您要查找的内容,那么您可以使用以下 python 库 [2]。

    这是一个您可以使用的示例片段,它将返回 IAM 角色和分配给他们的用户:

        from apiclient.discovery import build
        service = build('cloudresourcemanager', 'v1')
    
        project_id = '[project_ID]'
        policy_request = service.projects().getIamPolicy(resource=project_id, body={})
        policy_response = policy_request.execute()
    
    members = set()
    for binding in policy_response['bindings']:
    members |= set(binding['members'])
    
    print('\n'.join(sorted(members)))
    

    [1]https://developers.google.com/apis-explorer/#search/project/cloudresourcemanager/v1/cloudresourcemanager.projects.getIamPolicy

    [2]https://developers.google.com/api-client-library/python/apis/cloudresourcemanager/v1

    【讨论】:

      猜你喜欢
      • 2020-02-10
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多