Вопрос о роли выполнения Lambda при настройке ротации учетных данных для Secret Manager - PullRequest
2 голосов
/ 31 января 2020

Я создал функцию ротации вручную и связал ее с Secret Manager, мне удалось включить ротацию, но когда я проверил журналы в CloudWatch для этой лямбды ротации, она показала мне ошибку:

[ERROR] ClientError: An error occurred (AccessDeniedException) 
when calling the DescribeSecret operation: 
User: arn:awsxxxxxxx:assumed-role/xxxxx-lambda-exec-role/
MyLambdaName is not authorized to perform: secretsmanager:DescribeSecret 
on resource: MysecretARN

Я знаю, что что-то не так с моей ролью выполнения, поэтому я проверил свою политику, прикрепленную к этой роли, она имеет:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "lambda:InvokeFunction",
                "secretsmanager:PutSecretValue",
                "secretsmanager:UpdateSecretVersionStage",
                "secretsmanager:RotateSecret"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:xxx",
                "arn:aws:lambda:us-east-1:xxx"
            ]
        }
    ]
}

Я также прикрепил 'AWSLambdaBasicExecutionRole` к моей роли exe c, мне не хватает что-то другое? Почему я продолжал получать эту ошибку, я бездельничал со всей этой вращающейся вещью, исчерпанной! пожалуйста, помогите

Я также попытался добавить несколько действий KMS, но все еще получаю ту же ошибку ... Я работаю над этим уже пару дней, и документы AWS очень запутаны, а некоторые даже вводят меня в заблуждение в совершенно ином направлении ... Почему так сложно настроить кровавое вращение .... (плачет)

Ответы [ 2 ]

1 голос
/ 31 января 2020

Убедитесь, что секретный арн присутствует в разделе Ресурсы политики. В сообщении об ошибке упоминается: «MyLambdaName не авторизовано для выполнения: secretsmanager: DescribeSecret на ресурсе: MysecretARN '

, но я не вижу MysecretARN в списке ресурсов, к которым у лямбды есть доступ

1 голос
/ 31 января 2020

Все секреты в Secrete manager шифруются ключом (AWS KMS). Убедитесь, что у вашей лямбды есть разрешение на чтение необходимого ключа .

UPD: я имею в виду, что логика c следующая - лямбда должна иметь разрешение на чтение секрета и использование ключа (KMS) для расшифровки значения секрета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...