Я пытаюсь написать лямбду, которая прослушивает события изменения хранилища параметров из CloudWatch и получает данные истории для параметра, вызывая boto3.client('ssm').get_parameter_history(Name=event["name"],WithDecryption=True)
.Этот метод завершается ошибкой с сообщением:
botocore.exceptions.ClientError: Произошла ошибка (AccessDeniedException) при вызове операции GetParameterHistory: зашифрованный текст ссылается на главный ключ клиента, который не существует, не существуетв этом регионе, или вы не имеете доступа.(Сервис: AWSKMS; Код состояния: 400; Код ошибки: AccessDeniedException; Идентификатор запроса: бла-бла-бла) *
Ниже показано, как выглядит исполнительная роль лямбды:
{
"roleName": "myapp-paramstore-updates-webhook-role",
"policies": [
{
"document": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "logs:CreateLogGroup",
"Resource": "arn:aws:logs:eu-west-1:000000000000:*"
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:eu-west-1:000000000000:log-group:/aws/lambda/ssm-paramstore-updates-webhook:*"
]
}
]
},
"name": "LambdaBasicExeRole",
"type": "inline"
},
{
"document": {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"kms:DescribeKey",
"ssm:GetParameter"
],
"Resource": [
"arn:aws:kms:eu-west-1:000000000000:key/*",
"arn:aws:ssm:eu-west-1:000000000000:parameter/myorg/myteam/slack/webhooks/ssm-paramstore-updates-webhook",
"arn:aws:ssm:eu-west-1:000000000000:parameter/myorg/myteam/slack/webhooks/system-eventsupdates-webhook"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "ssm:GetParameterHistory",
"Resource": "arn:aws:ssm:*:*:parameter/*"
}
]
},
"name": "readonly-ssm-paramstore-updates-webhook",
"type": "inline"
}
],
"trustedEntities": [
"lambda.amazonaws.com"
]
}
До того, как я использовал ssm:GetParameterHistory
, было ssm:DescribeParameters
, но мне нужно было получить некоторую информацию о версии, отсюда и изменение.Все в том же регионе, лямбда и параметры.
Какие дополнительные разрешения мне нужны сейчас и на каком ресурсе, чтобы это исправить?