Как установить разрешение учетной записи службы из IAM API - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь установить права администратора для учетной записи, созданной облачной платформой Google. Прямо сейчас я получаю учетную запись от:

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

Но я не уверен, как действовать после получения этой информации.

Большое спасибо

1 Ответ

0 голосов
/ 27 апреля 2018

Вы сможете добавить разрешения для учетной записи службы, получив текущую политику разрешений для вашего проекта из 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"
                 ]
             },
             ]
         }
    }

Этот вызов подтвердит вновь примененную политику в ответе. Это документально подтверждено здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...