AWS IAM-仅允许用户为服务创建角色

时间:2019-03-17 06:48:32

标签: amazon-web-services amazon-iam

我正在开发一个应用程序,并且正在为一个问题而苦苦挣扎。我的应用程序具有Lambdas和DynamoDBs服务,其中前者需要权限才能调用后者。我解决了创建Principal等于Service: lambda.amazonaws.com的角色的问题。

我也希望授予其他开发人员创建角色的权限,但是我找到了一种方法,允许开发人员仅创建主体是服务或联合身份的角色,并拒​​绝创建角色(如果是用户或帐户)。

例如,将允许该角色:

    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Federated: cognito-identity.amazonaws.com
            Action:
              - sts:AssumeRoleWithWebIdentity
      Path: ...
      Policies: ...

这是不允许的:

    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Action: sts:AssumeRole
            Principal:
              AWS: arn:aws:iam::<accountid>:user/<username>
      Path: ...
      Policies: ...

我正在尝试达到此目的,因为用户可以创建具有管理员访问权限的角色并承担该角色。

还有,还有另一种方法可以解决此问题?

1 个答案:

答案 0 :(得分:0)

我没有找到解决问题的方法,一种解决方法是使用特定路径(例如,/custom-iam/service-role/)创建服务角色,并允许开发人员仅通过该路径传递角色:

Effect: Allow
Action: iam:PassRole
Resource: 'arn:aws:iam::*:role/custom-iam/service-role/*'