我们现在根据配置文件将密码和其他配置相关数据存储在 git 和文件系统(本地)中。这基于配置文件本地/开发等工作正常,使用 SPring 云配置方法。
但为了增强安全性,我们建议在 Vault 中使用敏感数据
所以我不清楚如何实现这一点。我们是否将有一个云配置服务器托管一些来自 Vault 的属性和一些来自 Git 的属性。
配置客户端将根据 CONFIGSERVER_URI 定位配置服务器,因此我们不能运行单独的实例
如何达到这个要求。
谢谢。
我们现在根据配置文件将密码和其他配置相关数据存储在 git 和文件系统(本地)中。这基于配置文件本地/开发等工作正常,使用 SPring 云配置方法。
但为了增强安全性,我们建议在 Vault 中使用敏感数据
所以我不清楚如何实现这一点。我们是否将有一个云配置服务器托管一些来自 Vault 的属性和一些来自 Git 的属性。
配置客户端将根据 CONFIGSERVER_URI 定位配置服务器,因此我们不能运行单独的实例
如何达到这个要求。
谢谢。
可以使用相同的配置服务器访问某些属性的 Git 和其他属性的 Vault。通过使用 Vault 令牌,个人客户可以访问 Vault 位置。Vault 令牌在运行时作为标头自动传递给配置服务器。您需要使用 Vault 依赖项配置您的配置服务器并添加属性以访问 Git 和 Vault 类似这样的东西(不是“保险库”配置文件):-
server:
port: 8888
spring:
profiles:
active: git, vault
application:
name: my-domain-configuration-server
cloud:
config:
server:
git:
uri: https://mygit/my-domain-configuration
order: 1
vault:
order: 2
host: vault.mydomain.com
port: 8200
scheme: https
在您的客户端上,您需要配置 Vault 提供的授权令牌。请注意,下面的示例说明了该属性。您可以将其放入您的应用程序 yaml 文件中,因为它是每个应用程序/每个环境的令牌。但是,我更喜欢在部署期间将其注入环境中。
spring:
cloud:
config:
uri: https://configserver:8888/
token: <secret token>
您应该查阅 Vault 文档以了解如何授权您的令牌访问特定位置,但规则可能如下所示:-
{
path "secret/myapp-app" {
policy = "read"
}
path "secret/myapp-app/*" {
policy = "read"
}
path "secret/application" {
policy = "read"
}
path "secret/application/*" {
policy = "read"
}"
}
最后,也可以通过配置服务器访问您的 Git 并直接从您的客户端访问 Vault,而不是配置配置服务器来访问两者。在这种情况下,您需要将 Vault 依赖项添加到客户端并配置客户端属性以访问 Vault。您仍然需要客户端中的授权令牌。