Перечислите всех пользователей в проекте в Google Cloud, используя Python API - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь перечислить всех пользователей с их уровнями доступа в проекте в Google Cloud.

Я могу сделать это с помощью команды командной строки, gcloud projects get-iam-policy MY_PROJECT

Однако, хотя я пытаюсь сделать это, используя API , я получаю {} в качестве тела ответа.

Есть причина почему? Или есть другой способ?

ТИА

1 Ответ

0 голосов
/ 18 мая 2018

Вызов API, который вы выполняете (projects.roles.list), перечисляет все пользовательские роли, определенные в организации или проекте, поэтому он не выполняет те же действия, что и команда gcloud projects get-iam-policy, который извлекает политику IAM для проекта.

Уловка, которую вы можете использовать, чтобы узнать вызов API, стоящий за командой gcloud, заключается в использовании глобального флага --log-http, который регистрирует все HTTP-запросы иответы, так что вы можете проверить запрашиваемый ресурс.Если вы выполните команду gcloud, которой вы поделились, добавив этот флаг, вы увидите следующее:

$ gcloud projects get-iam-policy MY_PROJECT --log-http
==== request start ====
uri: https://cloudresourcemanager.googleapis.com/v1/projects/MY_PROJECT:getIamPolicy?alt=json
method: POST
== headers start ==

Метод этого вызова API - resourcemanager.projects.getIamPolicy, и его страница документации находится в * 1016.* эта другая ссылка .На этой же странице вы можете просто добавить MY_PROJECT в качестве ресурса, и вы увидите, что сообщаемый результат такой же, как и для gcloud projects get-iam-policy MY_PROJECT.

Наконец, что касается упоминания о том, как это сделать с помощью Python, выВозможно, вам стоит взглянуть на документацию клиентских библиотек Resource Manager , где вы найдете информацию об их установке и использовании.Затем вы можете проверить справочную страницу библиотеки , где вы найдете подробное объяснение (и примеры) каждого из доступных методов.Например, здесь есть ссылка на метод getIamPolicy() , который вам нужно использовать.

...