适用于项目的Python和GCP getIamPolicy

时间:2018-09-24 15:20:48

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

我正在尝试获取项目的用户及其访问权限的列表。

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()

第一个print语句有效,但是我发现getIamPolicy的语法正确,尽管根据文档看来这是可能的。

如果还有其他人这样做,您能为我提供完整的语法吗?

我希望从python脚本中执行此操作,而不是使用命令行或子进程。

谢谢, 伊恩

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

安装客户端库。

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

并使用以下代码列出项目中的所有用户及其角色,只需将PROJECT_ID更新为您要检查的项目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

有关更多参考,您可以检查以下documentation