如何从IAM api设置服务帐户权限

时间:2018-04-27 10:28:21

标签: google-cloud-platform

我正在尝试为Google云平台生成的帐户设置管理员权限。现在,我从以下地址获得服务帐户:

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

但我不知道如何在获取此信息后继续进行。

非常感谢

1 个答案:

答案 0 :(得分:1)

您可以通过从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