英文原文:Page Redirection
目录
Spring Cloud Vault
Spring Cloud Vault Config为分布式系统中的外部化配置提供客户端支持。 使用HashiCorp的Vault,您可以在所有环境中为应用程序管理外部机密属性。 Vault可以管理静态和动态机密,例如远程应用程序/资源的用户名/密码,并为外部服务提供凭据,如MySQL,PostgreSQL,Apache Cassandra,MongoDB,Consul,AWS等。
特性
- 从Vault检索机密并使用远程属性源初始化Spring Environment。
- 获取使用SSL保护的机密。
- 为MySQL,PostgreSQL,Apache Cassandra,MongoDB,Consul,AWS和RabbitMQ生成凭据。
- 令牌,AppId,AppRole,客户端证书,Cubbyhole,以及AWS EC2和IAM,Kubernetes身份验证。
- Bootstrap应用程序上下文:主应用程序的父上下文,可以训练为执行任何操作。
- 通过Spring Cloud Vault Connector使用HashiCorp的Vault服务代理进行Cloud Foundry集成。
快速开始
在项目中开始使用spring-cloud-vault的推荐方法是使用依赖关系管理系统 - 下面的代码段可以复制并粘贴到您的构建中。 需要帮忙? 请参阅我们的Maven和Gradle构建入门指南。
Maven:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-vault-dependencies</artifactId>
<version>2.1.0.RC1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>
</dependencies><repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
Gradle:
buildscript {
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE"
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-vault-dependencies:2.1.0.RC1'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-vault-config'
}repositories {
maven {
url 'https://repo.spring.io/libs-milestone'
}
}
要开始使用Spring Cloud Vault,只需包含构建依赖项。
例如,典型的POM依赖关系是:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>
然后配置Vault端点和身份验证
bootstrap.yml用于基于令牌的身份验证
spring.application.name: my-application
spring.cloud.vault:
host: localhost
port: 8200
scheme: https
authentication: TOKEN
token: …
用于AWS-EC2身份验证的bootstrap.yml
spring.application.name: my-application
spring.cloud.vault:
host: localhost
port: 8200
scheme: https
authentication: AWS_EC2
最后,使用应用程序中存储在Vault中的属性
@Configuration
@RestController
public class Application {
@Value("${config.name}")
String name = "World";
@RequestMapping("/")
public String home() {
return "Hello " + name;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Spring Cloud Vault Config使用应用程序名称和活动配置文件从Vaults读取配置属性:
/secret/{application}/{profile}
/secret/{application}
/secret/{default-context}/{profile}
/secret/{default-context}
添加Spring Cloud Vault配置模块
Spring Cloud Vault Config附带了多个支持不同集成的模块。 要在适当的版本中获取依赖关系,您可以在依赖关系管理中包含BOM(物料清单)。 例如,典型的POM依赖关系管理将是:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>>org.springframework.cloud</groupId>
<artifactId>spring-cloud-vault-dependencies</artifactId>
<version>x.y.z</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-vault-config-consul</artifactId>
</dependency>
</dependencies>
发布版本
Spring Cloud Vault
Release
Documentation
2.1.0 RC1
2.0.3
2.0.2
1.1.3
1.1.2
1.1.2
1.0.2