Подключение к AWS RDS из Java без предоставления пароля - PullRequest
0 голосов
/ 08 октября 2018

Я успешно смог подключиться к RDS, как и любое другое соединение с базой данных.Я использую данные Spring jpa (хранилище) для выполнения операции CRUD на postgres db.в настоящее время я предоставляю URL базы данных и учетные данные в файле свойств

spring: datasource: url: jdbc:postgresql://<rds-endpoint>:5432/<dbschema> username: <dbuser> password: <dbpassword>

Однако это не вариант при подключении к производству или подготовке производства.Какова лучшая практика здесь.Предоставляет ли AWS какой-либо встроенный механизм для чтения этих данных с конечной точки, как, например, в случае доступа к S3?

Я не собираюсь раскрывать пароль.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

я нашел еще один общий вариант: AWS Secret Manager ( ссылка на документ )

Специальное решение RDS - это подключение к Экземпляру БД.AWS SDK с использованием IAMDBAuth

0 голосов
/ 10 октября 2018

Доступно несколько вариантов:

  1. Использование недавно анонсированного доступа IAM к Postgres RDS
  2. Использование хранилища параметров System Manager для сохранения пароля
  3. Использование диспетчера секретов для хранения пароля и автоматического поворота учетных данных

Для 2 и 3 найдите пароль при запуске приложения в Spring с помощью PropertyPlaceholderConfiguration и клиента AWSSimpleSystemsManagement (запрос GetParameter), SystemsManager может прокси-запросы к SecretsManager, чтобы сохранить единый интерфейс в вашем коде для доступа к параметрам.

Учетные данные IAM более безопасны:

  1. При использовании профилей экземпляров EC2 для доступа к базе данных используются кратковременные временные учетные данные.
  2. Если вы не используете EC2, выможет генерировать краткосрочные токены аутентификации.
  3. Пароль не сохраняется в вашей конфигурации.
  4. Если у вас есть отдельная команда базы данных, они могут управлять доступом независимо от пользователя приложения.
  5. Удаление доступа может быть сделано через IAM
...