Рейтинг:3

Использование условий в назначении ролей GCP, чтобы запретить пользователям приглашать других пользователей и управлять только сервисными аккаунтами.

флаг ca

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

Я экспериментировал с такими вещами, как:

проекты gcloud add-iam-policy-binding <project> --member="user:[email protected]" --role="roles/accesscontextmanager.policyEditor" --condition='title="allow_admin_service_user_only",expression=resource .name.startsWith("iam.googleapis.com/projects/project/serviceAccounts")
проекты gcloud add-iam-policy-binding <project> --member="user:[email protected]" --role="roles/iam.roleAdmin" --condition='title="allow_admin_service_user_only",expression=resource .name.startsWith("iam.googleapis.com/projects/project/serviceAccounts")

Пробовал также несколько других ролей, но все они терпят неудачу с одной и той же точной ошибкой:

ОШИБКА: (gcloud.projects.add-iam-policy-binding) Пользователь [[email protected]] не имеет разрешения на доступ к экземпляру проекта [project:setIamPolicy] (или он может не существовать): Отказано в доступе к обновлению политики.

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

John Hanley avatar
флаг cn
Я не знаю ответа на создание условия на сервисном аккаунте. Однако, если бы вы могли, ваша стратегия потерпела бы неудачу. Условие позволяет пользователю изменять роли IAM в учетной записи службы, что означает, что они могут затем использовать учетную запись службы, чтобы обойти условие, которое вы пытаетесь применить. В зависимости от того, где находится условие (ORG, папка, проект), учетная запись службы может затем удалить условие.
Рейтинг:1
флаг ad

Ошибка, с которой вы сталкиваетесь, в большинстве случаев вызвана тем, что требуемый API не включен для вашего проекта GCP. Чтобы решить эту проблему, прежде всего вам понадобится API-ключ. Есть 3 варианта его получения:

1.- Попросите администратора безопасности создать для вас ключ API.

2.- Попросите администратора безопасности предоставить вам доступ к проекту чтобы вы могли создать ключ API в том же проекте, с которым связан API.

3.- Попросите администратора безопасности предоставить вам доступ для включения API в своем собственном проекте Google Cloud, чтобы вы могли создать ключ API.

Получив его, выполните следующие шаги:

1.- В облачной консоли перейдите к API и сервисам для вашего проекта.

2.- На странице «Библиотека» нажмите «Частные API». Если вы не видите API в списке, это означает, что вам не предоставлен доступ для включения API.

3.- Щелкните API, который вы хотите включить. Если вам нужна помощь в поиске API, используйте поле поиска.

4.- На странице, отображающей информацию об API, нажмите «Включить».

По следующему URL-адресу находится официальная документация GCP для этого процесса. Включение API в вашем проекте Google Cloud. Кроме того, я рекомендую вам убедиться, что у вас есть роль администратора безопасности для IAM.

Теперь, говоря о ролях для учетных записей служб, похоже, что вы уже протестировали все существующие роли, и ни одна из них не соответствует вашим потребностям. Итак, вы можете попробовать пользовательские роли, то есть роли, разработанные вами в деталях. Чтобы создать пользовательскую роль, вы можете получить доступ прямо к экрану, который появляется после создания учетных записей служб; в поле списка выбора «Выбрать роль» выберите параметр «Управление ролями», и на следующем экране вы увидите кнопку «+ Создать роль» с синим текстом. Там вы сможете создать пользовательскую роль, соответствующую вашим требованиям. В следующих URL-адресах я делюсь с вами официальной информацией GCP, чтобы разбираться в учетных записях служб и Роли.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.