AWS IAM - сервисы в определенном регионе получают доступ только к ресурсам в том же регионе - PullRequest
0 голосов
/ 13 марта 2019

Я настраиваю свое приложение с помощью AWS, и я решил использовать us-east-1 в качестве среды песочницы и us-east-2 в качестве рабочей среды. Я хотел бы создать ограничения, при которых службы из региона могут получать доступ только к ресурсам в том же регионе.

Моя первая реализация была:

NotProductionServicesIAMRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Action:
              - sts:AssumeRole
            Principal:
              Service:
                - lambda.amazonaws.com
            Condition:
              StringEquals:
                'aws:RequestedRegion': 'us-east-1'
      Path: '/'
      Policies:
        - PolicyName: AllowNotProductionServicesAccessNotProductionResources
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Effect: Allow
                Action: '*'
                Resource: '*'
                Condition:
                  StringEquals:
                    'aws:RequestedRegion': 'us-east-1'

  ProductionServicesIAMRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Action:
              - sts:AssumeRole
            Principal:
              Service:
                - lambda.amazonaws.com
            Condition:
              StringEquals:
                'aws:RequestedRegion': 'us-east-2'
      Path: '/flow/'
      Policies:
        - PolicyName: AllowProductionServicesAccessProductionResources
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Effect: Allow
                Action: '*'
                Resource: '*'
                Condition:
                  StringEquals:
                    'aws:RequestedRegion': 'us-east-2'

И я передаю эти роли следующим образом:

      Role:
        !If [
          IsProduction,
          ProductionServicesIAMRole,
          NotProductionServicesIAMRole,
        ]

Мой вопрос : есть ли способ создать одну роль для выполнения той же функции, что и две мои созданные роли?

Спасибо!

...