Как я могу перечислить все ресурсы по всему моему имуществу GCP с определенной ролью c? - PullRequest
1 голос
/ 29 января 2020

Я могу идентифицировать все ресурсы с владельцем роли в проекте с помощью следующей команды:

gcloud projects get-iam-policy <PROJECTID> --flatten="bindings[].members" --format="table(bindings.members)" --filter="bindings.role:roles/owner"

Чтобы выполнить эту команду для всех проектов, я подумал, что это может сработать, но это не ...

for i in $(gcloud projects list | awk '{print $1}' | awk 'NR>1'); do echo PROJECT: $i && echo "--" && gcloud projects get-iam-policy --project=$i --flatten="bindings[].members" --format="table(bindings.members)" --filter="bindings.role:roles/owner"

Есть предложения?

Ответы [ 3 ]

0 голосов
/ 31 января 2020

Я наконец-то понял (я не закрыл l oop - просто нужно; сделано в конце)

Думаю, что поделюсь этим на случай, если кому-то еще понадобится это в будущем:

for i in $(gcloud projects list | awk '{print $1}' | awk 'NR>1'); do echo PROJECT: $i && echo "--" && gcloud projects get-iam-policy $i --flatten="bindings[].members" --format="table(bindings.members)" --filter="bindings.role:roles/owner"; done
0 голосов
/ 02 марта 2020

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

Чтобы узнать, кто имеет роль Владелец:

gcloud beta asset search-all-iam-policies --scope=organizations/123 --query="policy:roles/owner"

Чтобы узнать, есть ли у Эми роль Владелец:

gcloud beta asset search-all-iam-policies --scope=organizations/123 --query="policy:(roles/owner amy@bar.com)"

Чтобы узнать, имеет ли какая-либо учетная запись gmail роль Владелец:

gcloud beta asset search-all-iam-policies --scope=organizations/123 --query="policy:(roles/owner *gmail*)"

Вы можете изменить область действия на папку или проект. У вас должно быть разрешение cloudasset.assets.searchAllIamPolicies для области, включенное в следующие роли:

  • role / cloudasset.viewer
  • role / cloudasset.owner
  • ролей / просмотрщик
  • ролей / редактор
  • ролей / владелец

Документация: https://cloud.google.com/asset-inventory/docs/searching-iam-policies

Поддерживаемые типы ресурсов: https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types

0 голосов
/ 29 января 2020

Вы на правильном пути. Я использовал следующий скрипт от друга, чтобы распечатать все проекты, для которых определенная учетная запись электронной почты или служебная учетная запись имеет определенную роль c.

Для выполнения требуется много времени но это сделано, я только что проверил.

для i in $ (список проектов gcloud | sed 's / | / /' | awk '{if (NR! = 1 ) print $ 1} '); делать, если проекты gcloud get-iam-policy "$ i" --flatten = "bindings []. members" --format = "table (bindings.members)" --filter = "bindings.role: role / owner" | grep -q '[USER_OR_SERVICE_ACCOUNT]'; затем эхо "$ i"; Fi; сделано 2> / dev / null

Надеюсь, это поможет.

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