Политика IAM разрешает создание политик, но запрещает изменения в своей учетной записи - PullRequest
2 голосов
/ 16 июня 2019

Для каждого проекта мы создаем две учетные записи AWS. Один для разработки и постановки и один для производства. У разработчиков есть пользователь IAM в корневой учетной записи, и пользователи взяли на себя роли в других учетных записях для доступа к ним.

Я хочу создать политику, которая позволяет разработчику делать почти все в учетной записи разработчика, включая создание новых политик и их подключение (для новых ресурсов и т. Д.), Но разработчик не должен иметь возможности изменять свои собственные Роль / назначить себе новые роли.

Есть идеи?

1 Ответ

3 голосов
/ 16 июня 2019

Я сталкиваюсь с той же проблемой. Я уже опубликовал вопрос об этом здесь (аналогичная проблема).

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

Почему?

  1. Я не нашел способа ответитьмой вопрос, позволяющий пользователю создавать роли только для ресурсов, а не для принципалов.

  2. Даже если я нашел решение для 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: '*'

Я открыт для новых идей, но это решение является наиболее безопасным из всех, что я когда-либо достиг.

...