【发布时间】:2020-06-30 11:06:54
【问题描述】:
下面我正在创建一个服务帐户并将 1 个角色绑定到它。有谁知道我如何一次绑定多个角色?
def GenerateConfig(context):
project_id = context.env['project']
service_account = context.properties['service-account']
resources = [
{
'name': service_account,
'type': 'iam.v1.serviceAccount',
'properties': {
'accountId': service_account,
'displayName': service_account,
'projectId': project_id
}
},
{
'name': 'bind-iam-policy',
'type': 'gcp-types/cloudresourcemanager-v1:virtual.projects.iamMemberBinding',
'properties': {
'resource': project_id,
'role': 'roles/bigquery.admin',
'member': 'serviceAccount:$(ref.' + service_account + '.email)'
},
'metadata': {
'dependsOn': [service_account]
}
}
]
return {'resources': resources}
【问题讨论】:
-
您是否检查过this document,其中显示了如何使用“projects.setIamPolicy()”构建请求?这可能对你有用。
-
嘿@rsalinas 感谢您的回复。是的,我已经看过这个文档,这是最后的手段,因为我希望自动化这个创建服务帐户和分配多个角色的过程。通过您发送的链接,我可以在创建服务帐户后添加其他角色,但这意味着运行 1 个命令来创建服务帐户,然后运行另一个命令来分配角色。理想情况下,我喜欢只运行 1 个命令来创建服务帐户 + 我需要的任何角色(希望一次分配 7 个)
-
没有任何方法或任何东西可以在同一个句子中创建帐户并分配角色。我认为您最好创建帐户,然后使用
projects.setIamPolicy()分配角色,因为这只有 2 次调用,并且更容易编程
标签: python google-cloud-platform yaml google-deployment-manager