Доступные шаблоны политик SAM перечислены в их репозитории Github .Ни один из этих шаблонов политики не предоставляет разрешения для какой-либо операции SSM, поэтому вы не можете использовать шаблон политики SAM для предоставления вашей лямбда-функции AWS доступа к параметрам SSM на данный момент.
В качестве обходного пути можно сделать следующее:вручную добавить требуемый оператор политики, встроенный в ваши политики.Это будет выглядеть следующим образом:
LambdaFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ../
Handler: app.lambda
Runtime: nodejs8.10
Policies:
- DynamoDBReadPolicy:
TableName: !Ref Table
- KMSDecryptPolicy:
KeyId: !Ref Key
- Statement:
- Action:
- ssm:GetParameter
Effect: Allow
Resource: arn:aws:ssm:region:account-id:parameter/parameter_name
Также следует рассмотреть возможность открытия запроса на добавление для добавления шаблона политики для доступа к параметрам SSM к SAM, поскольку такой шаблон, конечно, будет более удобным способом выражения таких разрешений.,По моему опыту разработчики очень дружелюбны и всегда приветствуют такие дополнения.
Обновление : в AWS SAM теперь доступно SSMParameterReadPolicy
, поэтому вместо использования обходного пути вы можете простоделать:
LambdaFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ../
Handler: app.lambda
Runtime: nodejs8.10
Policies:
- DynamoDBReadPolicy:
TableName: !Ref Table
- KMSDecryptPolicy:
KeyId: !Ref Key
- SSMParameterReadPolicy:
ParameterName: parameter_name