У меня есть rest api, в котором есть несколько лямбда-выражений Javascript и Python, и я управляю и развертываю все с помощью CDK.Я убедился, что лямбда-выражения могут подключаться к прокси-серверу RDS, и обрабатывал все роли и разрешения.
И в Javascript, и в Python я генерирую токен аутентификации, который будет использоваться в качестве пароля. для аутентификации IAM с помощью прокси-сервера RDS.
Проблема в том, что Python Lambdas всегда выдает эту ошибку:
IAM аутентификация для роли postgres не удалась. Проверьте IAM
токен для этой роли и повторите попытку.
пока Javascript не работает, и подключитесь к прокси-серверу.Я использую psycopg2 с sqlalchemy в Python, и ниже показано, как я создаю движок базы данных.
Код: Выделить всё
session = boto3.Session(
aws_access_key_id=os.environ.get('AWS_ACCESS_KEY_ID'), aws_secret_access_key=os.environ.get('AWS_SECRET_ACCESS_KEY'),
region_name=region,
)
client = session.client('rds')
token = client.generate_db_auth_token(host, port, user_name, region)
_engine = create_engine('postgresql://{user}:{password}@{host}:{port}/{db}'.format(
user=user_name,
host=host,
port=port,
db=db_name,
password=token
), connect_args={'sslmode': 'require'},)
Код: Выделить всё
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "rds-db:connect",
"Resource": "arn:aws:rds-db:us-east-1:xxxxxxxx:dbuser:prx-xxxxxxxxxx/postgres"
}
]
}
Подробнее здесь: https://stackoverflow.com/questions/717 ... en-for-thi