Перечислите роли в указанном c проекте в Google Cloud Platform, используя python - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь изучить SDK python, чтобы помочь мне управлять ресурсами моей облачной платформы Google. Может кто-нибудь помочь мне понять. Я получил следующий фрагмент кода из Google API.
Этот код работает один. Скажем, если я хочу перечислить все роли в моей организации или перечислить роль конкретного проекта, где я это делаю и как?

Большое спасибо заранее.

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

1 Ответ

0 голосов
/ 30 января 2020

Вы можете получить роли IAM, используя "resourcemanager.projects.getIamPolicy для проекта [1]. Если это то, что вы ищете, то вы можете использовать следующую библиотеку 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...