Я хотел бы поделиться своими выводами об интеграции SecretManager с приложением Spring Boot.
Шаг 1. Добавьте spring-cloud-starter-aws-secrets-manager-config
зависимость в Spring Boot Application (способы добавления зависимости Gradle и Maven различны).
Шаг 2. Добавьте следующую конфигурацию в файл bootstrap.yml.
aws:
secretsmanager:
prefix: /secret
defaultContext: application
profileSeparator: _
failFast: true
name: <service_name>
enabled: true
Шаг 3. создайте секреты в консоли управления AWS для требуемого региона.
Есть два секретных контекста
- Контекст приложения - общие секреты для всех служб.
- Контекст службы - секреты, специфичные для службы.
Заключительная записка о создании секретов, секреты могут быть созданы для каждой среды.
Например,
/secret/service_name_dev/username
/secret/service_name_prod/username
Секреты контекста приложения могут быть созданы в следующем формате.
/secret/application/username
После запуска приложения Spring Boot с указанными выше настройками приложение загружает секреты из AWS Secret Manager на основе активного профиля.
Например,
для профиля разработчика он загрузит secret / secret / service_name_dev / username, и к значению можно получить доступ как в конфигурации, так и в классах, используя отображение $ {username}.