Я настраиваю свое приложение с помощью 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,
]
Мой вопрос : есть ли способ создать одну роль для выполнения той же функции, что и две мои созданные роли?
Спасибо!