使用 Python API 列出 Google Cloud 项目中的所有用户

List all users in a project in Google Cloud using Python API

我试图在 Google Cloud 中的一个项目中列出所有用户及其访问级别。

我可以使用命令提示符命令这样做, gcloud projects get-iam-policy MY_PROJECT

但是,当我尝试使用 API 执行此操作时,我得到 {} 作为响应正文。

有什么原因吗?或者,还有其他方法吗?

TIA

您正在进行的 API 调用(即 projects.roles.list) lists all custom roles defined in an organization or project, so it does not do the same as the command gcloud projects get-iam-policy,它检索项目的 IAM 策略。

了解 gcloud 命令背后的 API 调用的一个技巧是使用 --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,您可以在 this other link 中找到它的文档页面。在同一个页面中,您可以简单地添加 MY_PROJECT 作为资源,您将看到报告的输出与 gcloud projects get-iam-policy MY_PROJECT.

相同

最后,关于您提到的使用 Python 执行此操作,您可以看看您需要使用的 Resource Manager Client Libraries documentation, where you will find information on how to install and use them. Then, you can check the library reference page, where you will find a detailed explanation (and examples) of each of the available methods. For example, here there is the reference for the getIamPolicy() method