Использование условий в назначении ролей GCP, чтобы пользователи не могли приглашать других пользователей и управлять только учетными записями служб.
Недавно я прочитал об условиях в GCP и о том, как их можно использовать для добавления логики в роль. Я хотел бы предоставить пользователю роль для назначения ролей учетным записям служб. Но если я это сделаю, пользователь также сможет приглашать в проект других пользователей, а этого я не хочу.
Я экспериментировал с такими вещами, как:
gcloud projects add-iam-policy-binding <project> --member="user:useremail@gmail.com" --role="roles/accesscontextmanager.policyEditor" --condition='title="allow_admin_service_user_only",expression=resource.name.startsWith("iam.googleapis.com/projects/project/serviceAccounts")
gcloud projects add-iam-policy-binding <project> --member="user:useremail@gmail.com" --role="roles/iam.roleAdmin" --condition='title="allow_admin_service_user_only",expression=resource.name.startsWith("iam.googleapis.com/projects/project/serviceAccounts")
Пробовал также несколько других ролей, но все они терпят неудачу с одной и той же ошибкой:
ERROR: (gcloud.projects.add-iam-policy-binding) User [user@gmail.com] does not have permission to access projects instance [project:setIamPolicy] (or it may not exist): Policy update access denied.
Вопрос: можно ли разрешить редактирование/добавление/отзыв ролей только на сервисных учетных записях? и если да, то как?
1 ответ
Ошибка, с которой вы сталкиваетесь, в большинстве случаев вызвана тем, что необходимый 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 для понимания учетных записей и служб .ролей