Невозможно подключиться к AWS DocumentDB из AWS Lambda (используя Java) - PullRequest
1 голос
/ 02 августа 2020

Я хочу подключиться к кластеру AWS DocumentDB из AWS Lambda (используя Java). TLS включен для кластера, поэтому мне нужно импортировать сертификаты в хранилище доверенных сертификатов. Не удалось найти какой-либо документ о том, как действовать дальше.

Ответы [ 2 ]

2 голосов
/ 02 августа 2020

Вам необходимо сохранить https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem файл в certstore перед подключением к documentDB, иначе он не будет работать.

Есть много способов импортировать сертификаты с использованием кода во время выполнения.

Ссылка: Как импортировать сертификат .cer в хранилище ключей java?

После импорта сертификата вы можете подключиться к documentDB, справочный код можно найти здесь: -

https://docs.aws.amazon.com/documentdb/latest/developerguide/connect_programmatically.html

0 голосов
/ 03 августа 2020

Я рекомендую вам избегать упаковки сертификата как части вашего лямбда-кода. Вместо этого вы можете получить его динамически из Amazon S3. Это позволит избежать проблем в будущем при ротации сертификата. Следуя примеру python:

#Function to download the current docdb certificate
    def getDocDbCertificate():
        try:
            print('Certificate')
            clientS3.Bucket('rds-downloads').download_file('rds-combined-ca-bundle.pem', '/tmp/rds-combined-ca-bundle.pem')
        except botocore.exceptions.ClientError as e:
            if e.response['Error']['Code'] == "404":
                print("The object does not exist.")
            else:
                raise

Чтобы вы могли это сделать, роли вашей лямбда-функции требуются разрешения для получения объекта из S3 и S3 доступа через Inte rnet или VP C конечная точка.

...