如何使用 Google Cloud Resource Manager 包为项目设置 IAM 策略
How to set IAM policy for a project using Google Cloud Resource Manager package
问题
我正在使用 google-cloud-resource-manager 创建项目。我想更新项目的 IAM 策略以向所有者角色添加新用户。
这是我的做法:
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)
解释
- 我得到了你的项目 IAM 政策
- 我编辑给定的策略以将指定用户添加为所有者
- 我尝试更新给定项目的 IAM 策略,它在这里中断
set_iam_policy
将资源字符串作为参数(例如 projects/myprojectid
但我无法将政策传递给这个对象,没有相应的字段。
我错过了什么吗?
文档
您可以找到与 set_iam_policy
函数关联的 documentation and the source code。
我想你想要这样的东西:
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
.
问题
我正在使用 google-cloud-resource-manager 创建项目。我想更新项目的 IAM 策略以向所有者角色添加新用户。
这是我的做法:
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)
解释
- 我得到了你的项目 IAM 政策
- 我编辑给定的策略以将指定用户添加为所有者
- 我尝试更新给定项目的 IAM 策略,它在这里中断
set_iam_policy
将资源字符串作为参数(例如 projects/myprojectid
但我无法将政策传递给这个对象,没有相应的字段。
我错过了什么吗?
文档
您可以找到与 set_iam_policy
函数关联的 documentation and the source code。
我想你想要这样的东西:
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 toroles/owners
.