#amazon-web-services #yaml #amazon-cloudformation
#amazon-web-services #yaml #aws-cloudformation
Вопрос:
Я создаю роль iam и ее управляемую политику. В управляемой политике я хочу разрешить доступ к вызову API (шлюза). Этот шаблон будет выполняться как минимум в 6 средах. Я хочу использовать подход, основанный на условиях, для назначения URL-адреса шлюза API в ресурсе, чтобы шаблон было легко поддерживать и выполнять.
В зависимости от типа среды URL API будет меняться.
AWSTemplateFormatVersion: 2010-09-09
Description: >-
This template creates Role and policy
Parameters:
envname:
Type: String
Description: Enter envname
AllowedValues:
- dev
- dev2
- sit
- uat
- prf
- prod
prodaccountid:
Type: String
Description: Enter Prod AccountID
Resources:
DeviceRole:
Type: 'AWS::IAM::Role'
Properties:
RoleName: 'DeviceRole'
MaxSessionDuration : 43200
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
AWS: !Join ["",[!Sub 'arn:aws:iam::${AWS::AccountId}:role/',!Ref envname,'_Role']]
Service: lambda.amazonaws.com
Action:
- 'sts:AssumeRole'
- Effect: Allow
Principal:
AWS: !Sub 'arn:aws:iam::${AWS::AccountId}:user/test-user'
Service: lambda.amazonaws.com
Action:
- 'sts:AssumeRole'
DevicePolicy:
Type: 'AWS::IAM::ManagedPolicy'
Properties:
Description: >-
This Policy will be attached to the device role
ManagedPolicyName: !Join
- ''
- - 'DeviceConnectPolicy'
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action: 'execute-api:Invoke'
**Resource:
- !Join ["", [!Sub 'arn:aws:execute-api:${AWS::Region}:',!Ref prodaccountid,':aaaaaaaaaa/Test/PUT']]
- !Join ["", [!Sub 'arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:bbbbbbbbbb/*/PUT/*/*/*/v2']]
- !Join ["", [!Sub 'arn:aws:execute-api:${AWS::Region}:',!Ref prodaccountid,':cccccccccc/*/PUT/v2/s']]
- !Join ["", [!Sub 'arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:dddddddddd/*/PUT/*/*/*/v2']]**
Roles:
- Ref: DeviceRole
Я хочу использовать условия в ресурсе.
Заранее спасибо
Комментарии:
1. Не могли бы вы отформатировать свой код?
2. Форматированный, пожалуйста, посмотрите
3. какое условие вы хотите использовать? Можете ли вы это объяснить?
4. Привет. Я заметил, что у вас есть ряд вопросов, и на большинство из них есть ответы. Однако вы не приняли ни одно из них. Хорошей практикой является принятие хороших ответов, поскольку это помогает другим с такими же / похожими проблемами. Если полезные ответы не принимаются, это побуждает людей задавать повторяющиеся вопросы, исходя из ложного предположения, что существующие ответы на ваши вопросы бесполезны.