Spring Cloud Vault
特征
-
从Vault检索机密,并使用远程属性源初始化Spring Environment。
-
获取 使用SSL保护的机密信息。
-
为MySQL, PostgreSQL, Apache Cassandra, MongoDB, Consul, AWS和 RabbitMQ生成凭证 。
-
令牌, AppId, AppRole, 客户端证书, Cubbyhole以及 AWS EC2和IAM, Kubernetes 身份验证。
-
Bootstrap应用程序上下文:主应用程序的父上下文,可以对其进行任何操作进行训练。
-
使用HashiCorp的Vault Service Broker通过 Spring Cloud Vault Connector进行Cloud Foundry集成 。
快速开始
要开始使用Spring Cloud Vault,只需添加构建依赖项即可。
例如,典型的POM依赖关系为:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>
然后配置您的保险柜端点和身份验证
bootstrap.yml
用于基于令牌的身份验证
spring.application.name: my-application
spring.cloud.vault:
host: localhost
port: 8200
scheme: https
authentication: TOKEN
token: …
bootstrap.yml
用于AWS-EC2身份验证
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使用应用程序名称和活动配置文件从Vault读取配置属性:
/secret/{application}/{profile}
/secret/{application}
/secret/{default-context}/{profile}
/secret/{default-context}
添加Spring Cloud Vault Config模块
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 Initializr引导您的应用程序
。