|
对于最新的稳定版本,请使用Spring Cloud Config 5.0.0! |
Vault 后端
Spring Cloud 配置服务器也支持 Vault 作为后端。
有关Vault的更多信息,请参阅Vault快速入门指南。
要让配置服务器使用Vault后端,你可以用库轮廓。
比如,在你的配置服务器中application.properties,你可以添加Spring.Profiles.active=vault.
默认情况下,配置服务器假设你的Vault服务器运行在127.0.0.1:8200.
它还假设后端名称为秘密密钥为应用.
所有这些默认设置都可以在你的配置服务器中配置application.properties.
下表描述了可配置的保险库属性:
| 名称 | 默认值 |
|---|---|
主机 |
127.0.0.1 |
端口 |
8200 |
方案 |
http |
后端 |
秘密 |
defaultKey |
应用 |
默认标签 |
主要(仅在 |
enable标签 |
false |
profileSepacator |
, |
kv版本 |
1 |
skipSsl验证 |
false |
超时 |
5 |
Namespace |
零 |
前表中的所有性质都必须以Spring.cloud.config.server.vault或放置在复合配置的正确拱顶部分。 |
所有可配置属性均可在org.springframework.cloud.config.server.environment.VaultEnvironmentProperties.
Vault 0.10.0引入了版本化键值后端(k/v后端2版),它暴露了与早期版本不同的API,现在需要数据/挂载路径与实际上下文路径之间,并将秘密包裹在数据对象。设置Spring.cloud.config.server.vault.kv-version=2我会考虑这些。 |
可选地,也支持Vault Enterprise。X-金库命名空间页眉。要把它发送到Vault,设置Namespace财产。
配置服务器运行时,你可以向服务器发送HTTP请求以获取 Vault 后端的值。 为此,你需要一个Vault服务器的Tokens。
首先,将一些数据放入你的保险库,如下示例所示:
$ vault kv put secret/application foo=bar baz=bam
$ vault kv put secret/myapp foo=myappsbar
其次,向你的配置服务器发送HTTP请求以获取这些值,如下示例所示:
$ curl -X “GET” “http://localhost:8888/myapp/default” -H “X-Config-Token: yourtoken”
你应该会看到类似以下回复:
{
"name":"myapp",
"profiles":[
"default"
],
"label":null,
"version":null,
"state":null,
"propertySources":[
{
"name":"vault:myapp",
"source":{
"foo":"myappsbar"
}
},
{
"name":"vault:application",
"source":{
"baz":"bam",
"foo":"bar"
}
}
]
}
客户端提供必要的认证以让配置服务器与 Vault 通信的默认方式是设置 X-Config-Token 头部。
不过,你可以省略标头,在服务器上设置与 Spring Cloud Vault 相同的配置属性来配置认证。
集合的性质为spring.cloud.config.server.vault.authentication.
它应该设置为支持的认证方式之一。
你可能还需要根据所使用的认证方法设置其他特定的属性,使用与文档中描述的属性名称相同春云.vault而是使用Spring.cloud.config.server.vault前缀。
详情请参见春云金库参考指南。
| 如果你省略了 X-Config-Token 头部,而是用服务器属性设置认证,配置服务器应用程序需要对 Spring Vault 的额外依赖来启用额外的认证选项。 请参阅Spring Vault参考指南了解如何添加依赖。 |
多重属性来源
使用Vault时,你可以为应用程序提供多个属性源。 例如,假设你在 Vault 中写入了以下路径的数据:
secret/myApp,dev
secret/myApp
secret/application,dev
secret/application
属性写入秘密/应用所有使用配置服务器的应用程序均可访问。
一个名为myApp,将具有写入的任意属性secret/myApp和秘密/应用它能被利用。
什么时候myApp具有开发启用配置文件后,写入上述路径的属性将被调用,列表中第一个路径的属性优先于其他路径。
启用标签搜索
默认情况下,Vault 后端在搜索密钥时不会使用该标签。你可以通过
设置enable标签特征标志true并且可选地,设置默认标签.
什么时候默认标签未提供主要将被使用。
什么时候enable标签功能标志已开启,Vault 中的秘密应始终包含所有三个段(应用程序名称、配置文件和标签)。
所以前面一节的示例,启用了功能标志,会是这样:
secret/myApp,dev,myLabel
secret/myApp,default,myLabel # default profile
secret/application,dev,myLabel # default application name
secret/application,default,myLabel # default application name and default profile.
在财产源中解密保险库秘密
Spring Cloud 配置服务器支持通过使用特殊的占位前缀解密 Vault 属性{金库}.该功能允许在运行时直接从Vault动态解析敏感配置属性。
配置步骤
所有与Vault集成的配置都应该放在你的application.yml或application.properties.以下是激活Vault配置文件、连接Vault服务器以及使用以下方式格式化属性所需的具体配置。{金库}前缀。