首页 > 解决方案 > 如何从 IAM api 设置服务帐户权限

问题描述

我正在尝试为谷歌云平台生成的帐户设置管理员权限。现在,我正在从以下位置获取服务帐户:

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

但我不确定在获得此信息后如何进行。

非常感谢

标签: google-cloud-platform

解决方案


您将能够通过从 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"
                 ]
             },
             ]
         }
    }

此调用将在响应中确认新应用的策略。这记录在这里


推荐阅读