IAM策略允许创建策略,但不允许更改自己的帐户

时间:2019-06-16 15:59:39

标签: amazon-web-services amazon-iam

对于每个项目,我们都会创建两个AWS账户。一种用于开发和登台,另一种用于生产。开发人员在根帐户中有一个IAM用户,而用户在其他帐户中承担了访问这些帐户的角色。

我想创建一个策略,该策略使开发人员几乎可以执行开发帐户中的所有操作,包括创建新策略并附加这些策略(用于新资源等),但是开发人员不能修改自己的策略角色/为自己添加新角色。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我正面临着同样的问题,我已经发布了一个有关该here的问题(类似问题)。

经过大量研究,我得出一个结论:不允许开发人员创建角色和策略。

为什么?

  1. 我没有找到一种方法来回答我的问题,即用户只能为资源而不是委托人创建角色。

  2. 即使我找到了1.的解决方案,也存在一个缺陷:假设开发人员可以为资源创建角色,但不能为委托人创建角色,并且他(她)可以创建他(她)想要的每个策略。在这种情况下,他(她)可以为Lambda创建策略,并可以在Lambda内部创建脚本,以执行附加策略允许的操作。

我的最终解决方案:

创建两个名为 Developers IAM 的组,其中 IAM 用户可以创建任何角色和策略,因此是受信任的开发人员,而例如,>开发人员只能附加路径为services-roles的策略。

示例附加到 Developers 组的角色-允许用户使用路径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: '*'

我愿意接受新想法,但是这种解决方案是我所获得的最安全的解决方案。