Я сталкиваюсь с той же проблемой. Я уже опубликовал вопрос об этом здесь (аналогичная проблема).
После долгих исследований я пришел к выводу: не позволяют разработчикам создавать роли и политики.
Почему?
Я не нашел способа ответитьмой вопрос, позволяющий пользователю создавать роли только для ресурсов, а не для принципалов.
Даже если я нашел решение для 1., есть недостаток: предположим, разработчики могут создавать роли для ресурсовно не для директоров, и он (она) может создать любую политику, которую он (она) хочет.В этом сценарии он (она) может создать политику для Lambdas, а внутри Lambdas можно написать сценарий для выполнения действий, разрешенных прилагаемыми политиками.
Мое окончательное решение:
Создайте две группы с именами Разработчики и IAM , в которых пользователи IAM могут создавать любые роли и политики, таким образом, доверенные разработчики,и Разработчики могут прикреплять, например, только политики, путь которых services-roles
.
Пример роли, прикрепленной к группе Разработчики - позволяет пользователям создавать все, кроме всех iam
действия, за исключением PassRole
с путем service-roles
:
DevelopersIAMManagedPolicy:
Type: AWS::IAM::ManagedPolicy
Properties:
Description: 'Developers.'
# Groups:
# - String
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action: iam:PassRole
Resource: 'arn:aws:iam::*:role/projects-roles/*'
- Effect: Allow
NotAction: iam:*
Resource: '*'
Я открыт для новых идей, но это решение является наиболее безопасным из всех, что я когда-либо достиг.