如何使用Google Cloud Resource Manager软件包为项目设置IAM策略

2024-05-18 12:04:37 发布

您现在位置:Python中文网/ 问答频道 /正文

问题

我正在使用谷歌云资源管理器创建项目。我想更新项目的IAM策略,向所有者roole添加新用户

我是这样做的:

async def set_iam_policy(project_id, user_id):
    client = ProjectsAsyncClient()
    project_ressource = 'projects/{}'.format(project_id)
    iam_policy : Policy = await client.get_iam_policy(resource=project_ressource)
    owner : Binding = iam_policy.bindings[0]
    owner.members.append('user:{}'.format(user_id))
    updated_policy =await client.set_iam_policy(resource=project_ressource)

解释

  1. 我明白你的计划iam政策
  2. 我编辑给定的策略以将指定用户添加为所有者
  3. 我尝试更新给定项目的IAM池,它在这里中断

set_iam_policy将ressource字符串作为参数(例如projects/myprojectid 但我无法将策略传递给此对象,因为没有用于该对象的字段。 我错过什么了吗

文件

您可以找到与set_iam_policy函数关联的documentationsource code


Tags: 项目用户projectclientidformatpolicyawait
1条回答
网友
1楼 · 发布于 2024-05-18 12:04:37

我想你想要的是:

request = SetIamPolicyRequest(
    resource=project_ressource,
    policy=iam_policy,
)

updated_policy = await client.set_iam_policy(
   resource=project_ressource,
   request=request,
)

NOTE retained typo in project_ressource

NOTE You should not assume that bindings[0] corresponds to roles/owners.

相关问题 更多 >