【发布时间】:2018-04-27 10:28:20
【问题描述】:
我正在尝试为谷歌云平台生成的帐户设置管理员权限。现在,我从以下位置获取服务帐户:
https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/list
但我不知道在获得此信息后如何继续。
非常感谢
【问题讨论】:
我正在尝试为谷歌云平台生成的帐户设置管理员权限。现在,我从以下位置获取服务帐户:
https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/list
但我不知道在获得此信息后如何继续。
非常感谢
【问题讨论】:
您可以通过从 API 检索项目的当前权限策略、修改策略并应用新策略来向服务帐号添加权限。
首先,您将通过以下方式获取项目的权限政策:
POST https://cloudresourcemanager.googleapis.com/v1beta1/projects/$your-project-id:getIamPolicy
您将在响应中获得政策,例如:
{
"bindings": [
{
"role": "roles/editor",
"members": [
"serviceAccount:your-project-id@appspot.gserviceaccount.com"
]
},
{
"role": "roles/owner",
"members": [
"user:email1@gmail.com",
"user:email2@gmail.com",
"user:email3@gmail.com"
]
}
]
}
如果您想将此项目的服务帐户授予所有者角色,您只需修改策略并使用setIamPolicy() 编写它,如下所示:
POST https://cloudresourcemanager.googleapis.com/v1/projects/$our-project-123:setIamPolicy
{
"policy": {
"bindings": [
{
"role": "roles/owner",
"members": [
"user:email1@gmail.com",
"user:email2@gmail.com",
"user:email3@gmail.com",
"serviceAccount:your-project-id@appspot.gserviceaccount.com"
]
},
]
}
}
此调用将确认响应中新应用的策略。这记录了here。
【讨论】: