# #google-cloud-platform #google-cloud-iam
Вопрос:
У нас есть две службы, работающие на движке приложений Google.
Мы хотели бы ограничить развертывание только определенными пользователями для целевого объекта по умолчанию (prod), но разрешить любому разработчику развертываться в целевом объекте разработки.
Не могу понять условия IAM для этого.
App engine, похоже, не является официальным типом ресурсов здесь https://cloud.google.com/iam/docs/conditions-resource-attributes#resource-name
и это согласуется с раскрывающимся списком фильтр обслуживания
Я пробовал использовать имя, которое получил от gcloud app services describe dev
:
resource.name == 'apps/my-project/services/dev'
Bt, который, похоже, тоже не работает, он просто дает отказ в доступе, поэтому я предполагаю, что это неправильный фильтр имен ресурсов.
Есть ли способ ограничить это, как указано выше?
Ответ №1:
Разрешения App Engine предоставляются на уровне проекта и не могут быть отфильтрованы для каждой отдельной службы приложения.
Существует открытый запрос на функцию https://issuetracker.google.com/115904598 чтобы разрешить конкретные развертывания версий, которые я рекомендую вам отмечать звездочкой и следить за ними.
Разделение вашей среды разработки и разработки (я понимаю, что иногда это может быть неудобно) в разных проектах GCP может быть единственной жизнеспособной альтернативой на данный момент.
Комментарии:
1. ЛОЛ! К несчастью. Запросы функций не имеют ни ETA, ни гарантии реализации. Теоретически команды разработчиков действуют в соответствии с запросами на функции, учитывая количество звезд и взаимодействий, заданных в конкретной теме, как описано здесь . Я надеюсь, что этот конкретный запрос на функцию получит поддержку.
Ответ №2:
AFAIK, вы не можете ограничить разрешения на развертывание для определенной службы, поскольку пользователи могут создавать пользовательские службы для каждой учетной записи GCP.
Два варианта, которые я могу предложить:
- Создайте другой проект GCP для prod. Если вы используете интерфейс командной строки, разработчики prod могут просто изменить проект GCP и развернуть его.
- Используйте CICD с облачной сборкой и предоставляйте доступ к слиянию в ветку prod только разработчикам prod. Ни одному разработчику в этом случае не потребуется доступ к вашим проектам GCP.
Комментарии:
1. Не могли бы вы пояснить, что вы подразумеваете под
users can create custom services per GCP account
этим ?2. Если вы можете развернуть, вы можете создать службу под названием «тест», а другой может создать службу под названием «тест2». Имеет меньше смысла контролировать доступ для каждой службы и больше ограничивать возможность развертывания в целом.
3. Хотя в этом-то и весь вопрос
4. И мой ответ был таков: это невозможно.