Как ограничить пользователя IAM для доступа (перечисления) определенных ролей и стеков CF? - PullRequest
0 голосов
/ 02 июля 2018

Я создал несколько сервисных ролей и CF-стеков, используя корневую учетную запись, и я собираюсь создать одного пользователя IAM, и я не хочу перечислять все эти роли и CF-стеки. Я хочу показать только некоторые конкретные роли и стеки CF. Можете ли вы дать мне знать, как я могу это сделать? Будет здорово, если вы поделитесь примером политики.

1 Ответ

0 голосов
/ 02 июля 2018

Отображение только части всех ваших ролей IAM в консоли невозможно. Единственный способ ограничить вызов iam:ListRoles - использовать аргумент PathPrefix (см. https://docs.aws.amazon.com/IAM/latest/UserGuide/list_identityandaccessmanagement.html).. Однако консоль IAM выдает запрос iam:ListRoles без указания аргумента PathPrefix. Вы по-прежнему можете использовать AWS CLI для запроса только подмножества ролей IAM, таких как:

aws iam list-roles --path-prefix "/somepath"

И вы можете разрешить пользователю перечислять роли IAM, путь которых начинается с /somepath, например:

---
AWSTemplateFormatVersion: '2010-09-09'

Resources:
  User:
    Type: AWS::IAM::User
    Properties:
      Path: "/"
      Policies:
      - PolicyName: IamAccess
        PolicyDocument:
          Version: '2012-10-17'
          Statement:
          - Effect: Allow
            Action:
            - 'iam:ListRoles'
            Resource: !Sub "arn:aws:iam::${AWS::AccountId}:role/somepath*"

Что касается перечисления только подмножества всех ваших стеков CloudFormation, то это невозможно. Вызов ListStacks не позволяет вам отфильтровать, какие стеки выводить в списке. См. https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscloudformation.html. Просто добавьте следующий фрагмент кода выше, чтобы позволить вашему пользователю перечислить все стеки CloudFormation:

      - PolicyName: CloudFormationAccess
        PolicyDocument:
          Version: '2012-10-17'
          Statement:
          - Effect: Allow
            Action:
            - 'cloudformation:ListStacks'
            Resource: '*'

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

...