#amazon-web-services
#amazon-веб-сервисы
Вопрос:
Я пытаюсь предоставить разрешение доступа secret manager к моей лямбда-функции в шаблоне SAM, но выдает ошибку, что заявление о политике искажено.
Policies:
- Statement:
- Sid: AWSSecretsManagerGetSecretValuePolicy
Effect: Allow
Action: secretsmanager:GetSecretValue
Resource: <arn >
Может ли кто-нибудь сообщить мне правильный способ добавления политики в мою лямбда-функцию.
Я использую шаблон SAM (тип: AWS :: Serverless:: Function)
Ответ №1:
Эта политика принимает только ARN секрета, поэтому секретное имя не будет работать. https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-template-list.html#secrets-manager-get-secret-value-policy
Для меня работает ниже.
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: MyProject/
Handler: app
Policies:
- AWSSecretsManagerGetSecretValuePolicy:
SecretArn: 'arn:aws:secretsmanager:####'
или передать его в качестве параметра
- AWSSecretsManagerGetSecretValuePolicy:
SecretArn: !Ref RdsSecretArn
Ответ №2:
Существуют шаблоны политик SAM, одним из которых является AWSSecretsManagerGetSecretValuePolicy, вы можете использовать их непосредственно в определении.
Или, если вы хотите управлять политиками самостоятельно.
QueryFunction:
Type: AWS::Serverless::Function
Properties:
Handler: lambda_handler.lambda
Policies:
- AmazonDynamoDBFullAccess
- AWSLambdaVPCAccessExecutionRole
- SSMParameterReadPolicy:
ParameterName: parameter_name
- Statement:
- Effect: Allow
Action:
- dynamodb:*
Resource: 'resource_arn'
Runtime: python3.7
Комментарии:
1. Я должен определить политику для доступа к секретному менеджеру, а не для параметра SSM.
2. @SandeepAgrawal для этого также есть политика в шаблонах, я обновил ответ
Ответ №3:
Попробуйте это :
Policies:
- Version: '2012-10-17'
Statement:
- Sid: AWSSecretsManagerGetSecretValuePolicy
Effect: Allow
Action: secretsmanager:GetSecretValue
Resource: <arn >
Ответ №4:
Эта политика для лямбда-кода работает для меня (YAML)
Policies:
- AWSSecretsManagerGetSecretValuePolicy:
SecretArn:
Ref: THE_NAME_YOU_GAVE_YOUR_SECRET_RESOURCE