Ska*_*ias 3 password-encryption spring-boot kubernetes
我们正在开发一个 Java Spring Boot 应用程序,该应用程序需要访问数据库,密码存储在文件中application.properties。
我们的主要问题是密码上传到 GitLab/GitHub 后可能会被查看。
我发现我们可以使用 Jasypt 来加密数据,但从我读到的内容来看,我需要在执行时使用解密密钥,该密钥也存储在 Git 上,以便使用 Kubernates 进行部署。
在这种情况下有什么方法可以保护我们的密码吗?如果这有什么区别的话,我们正在使用 AWS,并且我们正在尝试使用 EKS 服务,但到目前为止我们已经拥有安装了 K8s 的虚拟机。
application.properties为此,您应该在文件中使用环境变量:
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
Run Code Online (Sandbox Code Playgroud)
或者使用默认值(用于开发):
spring.datasource.username=${SPRING_DATASOURCE_USERNAME:admin}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD:admin}
Run Code Online (Sandbox Code Playgroud)
然后你可以将Kubernetes Secret添加到你的命名空间中:
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
Run Code Online (Sandbox Code Playgroud)
并将其分配给您的部署:
spring.datasource.username=${SPRING_DATASOURCE_USERNAME:admin}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD:admin}
Run Code Online (Sandbox Code Playgroud)
另一种选择是将整个application.properties文件存储在 Secret 或 ConfigMap 中,并将其作为文件挂载到容器中。
这两种情况在这里都有更详细的解释: https ://developers.redhat.com/blog/2017/10/03/configuring-spring-boot-kubernetes-configmap
| 归档时间: |
|
| 查看次数: |
11392 次 |
| 最近记录: |