Я пытаюсь автоматизировать процесс для Redshift в Lambda. Для безопасного хранения пароля мы можем использовать
- KMS с переменными Env
- секретный менеджер
- использовать API get_cluster_credentials
Я хочуиспользовать get_cluster_credentials
для этого.
Здесь есть отличный пост в блоге: https://blog.mitocgroup.com/aws-lambda-to-redshift-connection-using-iam-authentication-and-nat-gateway-b40c6002082b
Он сделал это и выполнил свой собственный psycopg2
. Я пытаюсь реализовать то же самое. Я получаю сообщение об ошибке в лямбда, как пароль аутентификации не удалось для пользователя IAM:my_iamuser
. Я попытался напечатать пароль и использовал его непосредственно в оболочке psql, и он работает нормально. Но в лямбде это не работает.
Ошибка:
FATAL: password authentication failed for user "IAM:my_iamuser"
: OperationalError
Traceback (most recent call last):
File "/var/task/pgcode.py", line 45, in lambda_handler
host=REDSHIFT_ENDPOINT)
File "/var/task/psycopg2/__init__.py", line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL: password authentication failed for user "IAM:my_iamuser"