【问题标题】:AWS IAM - Allow user create roles only for services assumeAWS IAM - 只允许用户为服务创建角色
【发布时间】:2020-02-07 22:58:37
【问题描述】:

我正在处理一个应用程序,但我正在努力解决一个问题。我的应用程序有 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: ...

我正在尝试实现这一点,因为用户可以创建具有管理员访问权限的角色并承担该角色。

另外,有没有其他方法可以解决这个问题?

【问题讨论】:

  • 您在这方面取得了进展吗?我在管理用户时遇到了同样的问题。我最终给了他们 iam:CreateRole 以及其他开发人员以及 PowerUserAccess
  • @sriharsha186 我没有找到我想要的解决方案,我最终像您一样使用了解决方法。检查我刚刚添加的答案。

标签: amazon-web-services amazon-iam


【解决方案1】:

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

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

【讨论】:

  • 我假设这些服务角色是由管理员用户然后或通过管理员用户创建的管道创建的。是这样吗?
  • 是的,只有管理员可以创建角色
猜你喜欢
  • 1970-01-01
  • 2016-11-26
  • 2019-04-01
  • 2019-05-10
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多