在Spring Boot应用程序中使用Spring Cloud Vault来保护密码等?



我进行了多次搜索,以确保application.properties中所有敏感数据的安全,最终决定使用HashiCorp的Spring Cloud Vault。

在我看来,我可以将所有的秘密等保存为这个机制中的键值对。然而,我不能确定和理解以下几点。你能帮我一下吗?

  1. 在保持Vault中所有敏感数据的同时,我认为我们需要在Spring Boot应用程序中提供一个令牌来访问这些数据。因此,对于生产环境,假设我将应用程序发送给客户,那么他们应该通过环境变量提供这个令牌吗?或者还有其他安全的选择吗?

  2. 应用程序如何使用保存在Vault中的秘密?它检索他们,只要它需要或检索在启动,然后保持它们在内存等,在服务器或Docker容器(基于配置)?

Vault令牌应该作为环境变量注入。如果你有一个像k8或OpenShift这样的平台,Vault令牌本身可以作为秘密存储。

Springboot在启动时从Vault加载秘密文件。

下面是我们的DeploymentConfig模板文件的一个片段:

kind: DeploymentConfig
spec:
strategy:
spec:
containers:   
- name: {{ .Release.Name }}
env:
- name: VAULT_API
valueFrom:
secretKeyRef:
name: global-secrets
key: vaultapi
- name: VAULT_TOKEN
valueFrom:
secretKeyRef:
name: global-secrets
key: vaulttoken

最新更新