Вопрос по созданию лямбда-функции вращения учетных данных для базы данных Aurora MySQL RDS - PullRequest
1 голос
/ 29 января 2020

Я нашел этот шаблон функции поворота , я собираюсь изменить этот шаблон, чтобы создать свою собственную функцию поворота, и попросить Secrets Manager использовать ее для выполнения поворота.

Мой вопрос какую часть в шаблоне я должен изменить, в шаблоне не очень ясно, например, строка 47-49, я должен заменить SecretId своим секретным ARN?

arn = event['SecretId']
token = event['ClientRequestToken']
step = event['Step']

Другой пример: строка 57

endpoint_url=os.environ['SECRETS_MANAGER_ENDPOINT']

Какое значение я должен использовать для 'SECRETS_MANAGER_ENDPOINT', может быть 'https://secretsmanager.region.amazonaws.com' ??

Кроме того, строка 205-206

This is where the lambda will validate the user's permissions. 
Uncomment/modify the below lines to
# tailor these validations to your needs

Что именно мне нужно что добавить в эту часть, чтобы предоставить Secrets Manager разрешение вызывать эту функцию?

Немного растерян, я почти весь день возился с ротацией учетных данных, любые предложения будут оценены.

Ответы [ 2 ]

3 голосов
/ 29 января 2020

Вам не нужно вносить какие-либо изменения в лог c загрузки события или переменных среды.

Подумайте об этом. Когда произойдет ротация, менеджер секретов вызовет вашу лямбду. С этим вызовом связано событие, которое содержит шаг ротации, SecretId поверяемого секрета, ClientRequestToken и т. Д. c

Вам не нужно изменять этот лог c.

Что касается лямбды, вам нужно установить переменную окружения для конечной точки менеджера секретов - https://docs.aws.amazon.com/lambda/latest/dg//go-programming-model-env-variables.html

2 голосов
/ 30 января 2020

Как сказал @committedandroider, вам не нужно изменять 47-49, потому что он передается лямбда-вызову механизмом вращения Secrets Manager, а строка 57 задается как переменная окружения для лямбда-функции при создании функции (и да, вы должны установить его на https://secretsmanager.REGION.amazonaws.com).

Механизм вращения Secrets Manager будет вызывать лямбду четыре раза с другим значением шага (createSecret, setSecret, testSecret и finishSecret ) каждый раз. Строки 205-206 являются частью шага testSecret и предназначены для проверки учетных данных новой базы данных путем установления соединения с БД (с использованием новых кредитов) и выполнения простого запроса. Комментарий говорит вам, что вы можете добавить больше проверок, если хотите (например, сделать выбор из таблицы, которая вас действительно волнует).

Чтобы дать Secrets Manager разрешения на запуск Lambda Вы должны добавить разрешения для функции Lambda, предоставив субъекту службы secrettsmanager.amazon aws .com lambda: InvokeFunction разрешения. Например:

aws --region REGION lambda add-permission --function-name LAMBDANAME --statement-id "Rotation" --action "lambda:InvokeFunction" --principal secretsmanager.amazonaws.com

Где REGION - это область AWS, которую вы используете, а LAMBDANAME - это имя, которое вы дали лямбда.

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