【发布时间】:2018-10-17 11:19:28
【问题描述】:
我在应用程序属性中定义了带有数据库凭据的 Spring Boot 微服务。
spring.datasource.url=<<url>>
spring.datasource.username=<<username>>
spring.datasource.password=<<password>>
我们不使用spring数据源手动创建连接。只有 Spring 使用 JPA 创建数据库连接。(org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration)
我们只提供应用程序属性,但 spring 会自动创建连接以与数据库连接池一起使用。
我们要求在不使用明文形式的数据库属性的情况下增强安全性。两种可能的方法。
- 加密数据库凭据
- 使用 AWS 密钥管理器。 (然后通过应用程序加载获取凭据)
对于option1,可以使用jasypt,因为我们只是提供属性,不想手动创建数据源,spring框架怎么理解是问题。如果更好,我可以获得一些工作样本或方法。
关于选项2,
- 首先我们需要定义secretName。
- 使用 secertName 并从 AWS Secret Manager 获取数据库凭证。
- 以编程方式更新 application.properties 以了解 Spring 框架。 (我需要知道这一步)
我需要使用选项 1 和选项 2。提到了每个选项的问题。
【问题讨论】:
标签: spring spring-boot spring-data-jpa aws-java-sdk