Python и GCP getIamPolicy для проекта - PullRequest
       32

Python и GCP getIamPolicy для проекта

0 голосов
/ 24 сентября 2018

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

Http не работает, так как мы за брандмауэром, и я просто получаю ответ not ready error.

У меня есть некоторый код ...

import google.cloud.resource_manager

keyfile="xxxxx.json"
client = google.cloud.resource_manager.client.Client.from_service_account_json(keyfile)

for project in client.list_projects():
    print("%s, %s" % (project.project_id, project.status))    # Works Fine
    print project.getIamPolicy()

Первый оператор печати работает, но я не могу найти правильный синтаксис для getIamPolicy, хотя, по-видимому, это возможно в соответствии с документацией.

Если кто-то еще сделал это, можете ли вы предоставить мне полный синтаксис?

Я хочу сделать это из скрипта Python, не используя командную строку или подпроцессы.

Спасибо, Ян

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете использовать следующее:

Установить клиентскую библиотеку.

pip install --upgrade google-api-python-client google-auth google-auth-httplib2

И использовать следующий код для получения списка всех пользователей и их роли в проекте, просто обновите PROJECT_ID с идентификатором проекта, который вы хотите проверить, и xxxxxx.json с вашими учетными данными.

from google.oauth2 import service_account
import googleapiclient.discovery

credentials = service_account.Credentials.from_service_account_file(
    filename='xxxxxx.json',
    scopes=['https://www.googleapis.com/auth/cloud-platform'])

service = googleapiclient.discovery.build(
    'cloudresourcemanager', 'v1', credentials=credentials)

response = service.projects().getIamPolicy(resource=PROJECT_ID, body={}).execute()
print response

Для получения дополнительной информации вы можете проверить следующую документацию .

...