Как перечислить всех пользователей IAM для моего Google Cloud Project

Я бы хотел, чтобы список всех пользователей и учетную запись службы, связанную с моими проектами (желательно с помощью инструмента CLI gcloud, но с удовольствием выполняем вызов API, если это необходимо).

Я могу легко перечислить все учетные записи службы, связанные с проектом, используя this, но как можно перечислить всех пользователей тоже? Я ожидал бы что-то вроде следующего, но я ничего не вижу в doco:

gcloud beta iam users list

Ответ 1

Список всех учетных записей службы в проекте

В следующей команде перечислены все учетные записи служб, связанные с проектом:

$ gcloud iam service-accounts list

NAME                                    EMAIL
Compute Engine default service account  [email protected]
dummy-sa-1                              [email protected]_PROJECT.iam.gserviceaccount.com

Список всех пользователей и учетных записей службы в проекте со своими ролями IAM

Если вы хотите указать всех пользователей/учетных записей служб, которым были предоставлены какие-либо роли IAM в указанном проекте, вы можете использовать следующую команду:

$ gcloud projects get-iam-policy MY_PROJECT

bindings:
- members:
  - serviceAccount:[email protected]
  - user:[email protected]
  role: roles/editor
- members:
  - user:[email protected]
  - user:[email protected]
  role: roles/owner
etag: ARBITRARY_ETAG_HERE
version: 1

Форматирование вывода

gcloud поддерживает форматирование вывода как json и множество других настроек по мере необходимости, что может быть проще проанализировать в определенных случаях или распечатать только необходимую информацию.

Примеры:

# Prints the output as json instead of the default yaml format
$ gcloud projects get-iam-policy MY_PROJECT --format=json

# Display just the bindings in json format
$ gcloud projects get-iam-policy MY_PROJECT --format='json(bindings)'

# Display the bindings in a flattened format
$ $ gcloud projects get-iam-policy MY_PROJECT --format='flattened(bindings)'

Ответ 2

список сервисных аккаунтов

$ gcloud iam service-accounts list

список участников ролей для проекта

$ gcloud projects get-iam-policy [project]

добавить/повлиять на пользователя в роли

$ gcloud projects add-iam-policy-binding [project] \
--member="user:[email protected]" \
--role="roles/iam.serviceAccountUser" 

Удалить пользователя:

$ gcloud projects remove-iam-policy-binding [project] \
--member="user:[email protected]" \
--role="roles/iam.serviceAccountUser"

добавить/повлиять на google-группу в роли

$ gcloud projects add-iam-policy-binding [project] \
--member="group:[email protected]" \
--role="roles/storage.admin"

Ответ 3

Следующая команда выведет список всех не обслуживаемых учетных записей всей организации GCP:

gcloud organizations get-iam-policy ORGANIZATION_ID | grep user\: | sort | uniq

Чтобы получить идентификатор организации

gcloud organizations list

Ответ 4

Следующая команда может дать четкое представление о ЧЛЕНАХ вашего проекта в учетной записи GCP: gcloud projects get-iam-policy $PROJECT_ID --flatten="bindings[].members" --format="table(bindings.members)"