如何使用 Python 调用 add-iam-policy-binding?

How can I call add-iam-policy-binding with Python?

我正在努力遵循 GCP Python IAM 客户端的文档 (https://googleapis.dev/python/iam/latest/index.html)。

如何使用此库调用 gcloud iam service-accounts add-iam-policy-binding(即 没有 shell 退出)?

APIs Explorer 对于此类问题非常有用,因为它不仅允许您查找任何 Google 服务方法以确定请求和响应类型,而且它通常包含示例代码.

在这种情况下,gcloudadd-iam-policy-binding 映射到 2 个底层调用。 GET修改政策,修改它,然后 POST 使用相同的 eTag 修改它。

您的代码应更改来自 getIamPolicy 的响应中的政策,以在 setIamPolicy 的请求中创建政策。

eTag 是现有政策的散列,它在 POST 中用于向平台确认,您 POSTting 的值旨在替换您收到的值。如果值在您的 POST 之前更改,则服务将拒绝您的 POST.

这里是setIamPolicy

https://cloud.google.com/iam/docs/reference/rest/v1/projects.serviceAccounts/setIamPolicy

以及示例(点击Python):

https://cloud.google.com/iam/docs/reference/rest/v1/projects.serviceAccounts/setIamPolicy#examples

另一个技巧是使用附加 --log-httpgcloud 命令来查看进行了哪些底层 REST 调用。