Предоставить разрешения Cloudformation только для ресурсов, которые являются частью стека - PullRequest
1 голос
/ 28 апреля 2019

В моей компании наша линия CI / CD может только подключаться к AWS через предполагаемую роль IAM. Я пытаюсь заблокировать эту роль, чтобы она могла обновлять только те ресурсы, которые являются частью стека, чтобы избежать ошибочного изменения ресурса, которым управляет другая команда.

Здесь я сталкиваюсь с сценарием с курицей или яйцом. Кажется, что для создания роли, которая ограничивает доступ только к ресурсам, созданным моим стеком, мне нужны идентификаторы этих ресурсов, что означает, что стек должен быть создан. Я мог бы запустить стек с правами администратора один раз, затем извлечь идентификаторы ресурсов, а затем поместить его в CI / CD, но это, похоже, противоречит цели.

Моим идеальным решением было бы создание набора разрешений, позволяющих CloudFormation создавать фиксированный набор типов ресурсов, а затем предоставлять дополнительные разрешения только тем ресурсам, которые были созданы как часть стека. Это возможно? Или существует другая философия управления разрешениями для CI / CD?

1 Ответ

0 голосов
/ 28 мая 2019

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

Имейте роль, обладающую только разрешениями на создание * (возможно, вам также нужно описать *). Эта роль используется для создания новых стеков, поэтому невозможно вмешиваться в уже созданные ресурсы.

В своем шаблоне CloudFormation создайте роль IAM, которая имеет разрешение Update * / Delete * на ваш ресурс. Вызывайте эту роль, когда хотите изменить стек. Возможно, дайте ему имя! Sub $ {AWS :: StackName} -CfnRole.

Вам также нужно будет задать политику удаления и сохранить ее вручную после очистки стека. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html. В противном случае, когда вы вызовете эту роль для удаления стека, вы столкнетесь с ошибкой отказа в разрешении, поскольку роль почти наверняка будет первым ресурсом, который будет удален.

?? Это работает для вас

...