AWS Redshift - get_cluster_credentials в лямбде - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь автоматизировать процесс для Redshift в Lambda. Для безопасного хранения пароля мы можем использовать

  1. KMS с переменными Env
  2. секретный менеджер
  3. использовать 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"
...