SpringCloud Vault后端

2023-06-17 12:57 更新

Spring Cloud Config服务器还支持Vault作为后端。

Vault是用于安全访问机密的工具。秘密是您要严格控制访问权限的所有内容,例如API密钥,密码,证书和其他敏感信息。Vault为所有机密提供了统一的界面,同时提供了严格的访问控制并记录了详细的审核日志。

有关Vault的更多信息,请参见Vault快速入门指南

要使配置服务器能够使用Vault后端,您可以使用​vault​配置文件运行配置服务器。例如,在配置服务器的​application.properties​中,您可以添加​spring.profiles.active=vault​。

默认情况下,配置服务器假定您的Vault服务器在​http://127.0.0.1:8200​下运行。它还假定后端的名称为​secret​,密钥为​application​。所有这些默认值都可以在配置服务器的​application.properties​中进行配置。下表描述了可配置的Vault属性:

名称 默认值

host

127.0.0.1

port

8200

scheme

http

backend

secret

defaultKey

application

profileSeparator

,

kvVersion

1

skipSslValidation

false

timeout

5

namespace

null

重要

上表中的所有属性必须以spring.cloud.config.server.vault为前缀,或放置在复合配置的正确Vault部分中。

所有可配置的属性都可以在​org.springframework.cloud.config.server.environment.VaultEnvironmentProperties​中找到。

Vault 0.10.0引入了版本化的键值后端(k / v后端版本2),该后端公开了与早期版本不同的API,现在它需要在安装路径和实际上下文路径之间使用​data/​并包装​data​对象中的秘密。设置​kvVersion=2​将考虑到这一点。

(可选)支持Vault企业版X-Vault-Namespace标头。要将其发送到Vault,请设置namespace属性。

在配置服务器运行时,您可以向服务器发出HTTP请求以从Vault后端检索值。为此,您需要Vault服务器的令牌。

首先,将一些数据放入您的Vault中,如以下示例所示:

$ 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"
         }
      }
   ]
}

多个Properties来源

使用Vault时,可以为您的应用程序提供多个属性源。例如,假设您已将数据写入Vault中的以下路径:

secret/myApp,dev
secret/myApp
secret/application,dev
secret/application

写入​secret/application​的Properties对使用Config Server的所有应用程序均可用。名称为myApp的应用程序将具有写入​secret/myApp​和​secret/application​的所有属性。当​myApp​启用了​dev​配置文件时,写入上述所有路径的属性将可用,列表中第一个路径中的属性优先于其他属性。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号