AWS IAM — Разрешить пользователю создавать роли только для предполагаемых сервисов

#amazon-web-services #amazon-iam

#amazon-веб-сервисы #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. Вы добились какого-либо прогресса в этом? У меня такая же проблема при управлении моими пользователями. В итоге я предоставил им iam: CreateRole среди прочих в dev вместе с PowerUserAccess

2. @sriharsha186 Я не нашел нужного решения и в итоге использовал обходной путь, как и вы. Проверьте ответ, который я только что добавил.

Ответ №1:

Я не нашел решения для своей проблемы, и обходным путем было создание ролей служб с определенным путем ( /custom-iam/service-role/ например) и разрешение разработчикам передавать только роли с таким путем:

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

Комментарии:

1. Я предполагаю, что эти роли сервиса создаются пользователем Admin затем или через конвейер, который был создан пользователем Admin. Это так?

2. Да, роли могут создавать только администраторы