codecamp

SpringCloud Vault后端

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​配置文件时,写入上述所有路径的属性将可用,列表中第一个路径中的属性优先于其他属性。


SpringCloud 文件系统后端
SpringCloud 通过代理访问后端
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

三、Spring Cloud Netflix

SpringCloud Hystrix超时和Ribbon客户

SpringCloud 重试失败的请求

五、Spring Cloud Stream

六、SpringCloud Binder实现

SpringCloud 重试RabbitMQ Binder

SpringCloud Dead-Letter队列处理

八、Spring Cloud Sleuth

SpringCloud 当前Span

十二、Spring Cloud for Cloud Foundry

十三、Spring Cloud Contract

Spring Cloud Contract验证程序设置

SrpingCloud Gradle项目

十五、Spring Cloud网关

Spring Cloud 配置路由谓词工厂和网关过滤工厂

Spring Cloud TLS / SSL

Spring Cloud网关配置

SpringCloud 故障排除

十八、Spring Cloud GCP

Spring Cloud GCP Spring资源

Spring Cloud Spring JDBC

Spring Cloud Redis的Cloud Memorystore

Spring Cloud 云身份识别代理(IAP)身份验证

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }