Как получить все роли / разрешения, которые есть у учетной записи службы для проекта и организации в GCP, через API - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть служебная учетная запись, которая принадлежит проекту. У него есть некоторые роли / разрешения, установленные на уровне проекта, а также некоторые роли / разрешения, установленные на уровне организации.

Мне нужно получить список всех разрешений / ролей, которые предоставляются учетной записи службы.

При поиске я обнаружил документацию " API Identity and Access Management (IAM) ", в которой есть API, в котором перечислены все ресурсы, имеющие доступ к учетной записи службы, и роли, установленные для ресурсов. Что мне нужно, так это обратное. Я хочу получить все роли, которые служебная учетная запись играет в других ресурсах (в моем случае проект и организация).

В этом документе упоминается, что метод projects.serviceAccounts.getIamPolicy () не возвращает ресурсы, к которым имеет доступ учетная запись службы. Чтобы узнать, имеет ли учетная запись службы доступ к ресурсу, вызовите метод getIamPolicy для целевой ресурс. Например, для просмотра грантов для проекта вызовите метод projects.getIamPolicy. " Но чтобы получить разрешения на уровне организации, учетная запись службы не имеет разрешения на вызов API.

Есть ли другой способ получить все роли, которые учетная запись службы играет в проекте и организации.

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Вы можете использовать search-all-iam-policy для поиска всех политик IAM по службам, типам ресурсов, проектам в проекте, папке или организации.

Чтобы выяснить, какие роли имеет учетная запись службы в организации:

gcloud beta asset search-all-iam-policies --scope=organizations/123 --query="policy:123-compute@developer.gserviceaccount.com"

Чтобы узнать больше, см. другой пост: Как составить список, найти или найти политики iam по службам (API), типам ресурсов и проектам в облачной платформе Google

1 голос
/ 26 февраля 2020

Есть ли другой способ получить все роли, которые учетная запись службы играет в проекте и организации.

В настоящее время вам нужно будет вручную проверять все ресурсы везде.

Сервисная учетная запись является личностью. Идентификационные данные могут быть предоставлены разрешения для ресурсов как в вашем проекте / организации, но и в других проектах / организациях. Сюда входят такие ресурсы, как объекты облачного хранилища, ключи KMS, такие службы, как Cloud Run и т. Д. c. Эти разрешения отслеживаются на уровне ресурсов, но не на уровне идентификации.

Обычно администраторы предоставляют полномочия (роли) члена IAM на уровне проекта. Однако разрешения также могут быть предоставлены на уровне ресурсов, то есть для одного объекта облачного хранилища или ключа KMS. Проверка разрешений проекта / организации не покажет разрешения уровня ресурса (проекты - просто еще один ресурс).

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