100. Client 端使用情况
要在应用程序中使用这些功能,只需将其构建为依赖spring-cloud-vault-config
的 Spring Boot 应用程序即可(例如,参见测试用例)。 Maven 配置示例:
示例 100.1. pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!-- repositories also needed for snapshots and milestones -->
然后,您可以创建一个标准的 Spring Boot 应用程序,例如以下简单的 HTTP 服务器:
@SpringBootApplication
@RestController
public class Application {
@RequestMapping("/")
public String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
运行时,它将从端口8200
上的默认本地 Vault 服务器获取外部配置(如果正在运行)。要修改启动行为,您可以使用bootstrap.properties
(例如application.properties
,但用于应用程序上下文的引导阶段)来更改 Vault 服务器的位置。
示例 100.2. bootstrap.yml
spring.cloud.vault:
host: localhost
port: 8200
scheme: https
uri: https://localhost:8200
connection-timeout: 5000
read-timeout: 15000
config:
order: -10
-
host
设置 Vault 主机的主机名。主机名将用于 SSL 证书验证 -
port
设置Vault端口 -
scheme
将方案设置为http
将使用纯 HTTP。支持的方案是http
和https
。 -
uri
使用 URI 配置 Vault 端点。优先于主机/端口/方案配置 -
connection-timeout
设置连接超时(以毫秒为单位) -
read-timeout
设置读取超时(以毫秒为单位) -
config.order
设置属性来源的 Sequences
启用进一步的集成需要附加的依赖关系和配置。根据您设置Vault的方式,您可能需要其他配置,例如SSL和authentication。
如果应用程序导入了spring-boot-starter-actuator
项目,则可以通过/health
端点获得 Vault 服务器的状态。
可以通过属性management.health.vault.enabled
(默认为true
)启用或禁用 Vault 运行状况指示器。
100.1 Authentication
Vault要求authentication mechanism到授权 Client 请求。
Spring Cloud Vault 支持多个authentication mechanisms来通过 Vault 验证应用程序。
要快速Starter,请使用Vault initialization打印的根令牌。
示例 100.3. bootstrap.yml
spring.cloud.vault:
token: 19aefa97-cccc-bbbb-aaaa-225940e63d76
Warning
请仔细考虑您的安全要求。如果您想快速开始使用 Vault,则可以使用静态令牌身份验证,但是静态令牌不再受到任何保护。向非预期方的任何披露都允许Vault与关联的令牌角色一起使用。