Как подключиться к своему экземпляру AWS DynamoDB из приложения Spring Java Elastic Beanstalk? - PullRequest
0 голосов
/ 07 июня 2018

Я работаю с DynamoDB и написал приложение с использованием Spring Boot.

Я разработал его локально (на своем рабочем столе), подключаясь к своему собственному экземпляру DynamoDB, также работающему локально.Информация о моем соединении хранится в файле свойств в resources (входит в classpath).

Я хочу запустить его на Elastic Beanstalk в AWS для подключения к экземпляру DynamoDB, размещенному в AWS.

Что я должен поместить в мой файл свойств?или, что еще лучше, позволяет ли AWS легко иметь свойства, характерные для окружающей среды?Я бы, например, предпочел бы не хранить мои ключи доступа к инстансу в обычном текстовом файле в системе контроля версий.Или я должен свернуть свой собственный механизм?

1 Ответ

0 голосов
/ 08 июня 2018

Этот вопрос на самом деле состоит из двух вопросов: 1) Как подключить приложение Java к экземпляру БД AWS Dynamo и 2) Как безопасно управлять учетными данными.

Для 1 это довольно просто, есть JavaAWS SDK, который предоставляет интерфейс для подключения к экземплярам Dynamo.Основной способ - это экспортировать некоторые учетные данные AWS в качестве переменных среды, а затем AWS SDK подберет их и автоматически аутентифицирует:

export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key

Затем вы можете создать клиент Dynamo в своем коде:

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
    .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(
        "http://localhost:8000",
        "us-west-2"))
    .build(); 

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CodeSamples.Java.html

Для 2 нет единого правильного ответа.Я согласен с вами, что размещение учетных данных в виде простого текста в репо не является хорошим способом.Есть несколько лучших способов.Основная идея заключается в том, что вы должны зашифровать текстовый файл, содержащий ваши секреты в репозитории, а затем расшифровать его при развертывании.Это дешифрование может быть сделано вручную или с помощью какого-либо сценария развертывания.Ознакомьтесь с сервисами AWS KMS для управления секретами AWS.К сожалению, ваш вопрос слишком открыт, чтобы ответить более конкретно.

...