102. Client 侧面用法
要在 application 中使用这些 features,只需将它构建为 Spring Boot application,它依赖于spring-cloud-vault-config
(e.g. 请参阅测试用例)。 Example Maven configuration:
示例 102.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>Finchley.SR2</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 -->
然后你可以像这个简单的 HTTP 服务器一样创建一个标准的 Spring Boot application:
@SpringBootApplication
@RestController
public class Application {
@RequestMapping("/")
public String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
当它运行时,它将从 port 8200
上的默认本地 Vault 服务器获取外部配置(如果它是 running)。要修改启动行为,可以使用bootstrap.properties
更改 Vault 服务器的位置(如application.properties
,但是 application context 的引导阶段),e.g.
示例 102.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
_set Vault host 的主机名。 host name 将用于 SSL 证书验证 -
port
sets Vault port -
将 scheme 设置为
http
将使用纯 HTTP。支持的方案是http
和https
。 -
uri
使用 URI 配置 Vault 端点。优先于 host/port/scheme configuration -
connection-timeout
设置连接超时(以毫秒为单位) -
read-timeout
设置读取超时(以毫秒为单位) -
config.order
_set _TERperty 源的 order
启用进一步的集成需要额外的依赖性和 configuration。根据您设置 Vault 的方式,您可能需要其他 configuration,例如SSL和认证。
如果 application 导入spring-boot-starter-actuator
项目,则 vault 服务器的状态将通过/health
端点提供。
可以通过 property management.health.vault.enabled
(默认为true
)启用或禁用 vault 运行状况指示器。
102.1 身份验证
Vault 需要认证机制到授权 client 请求。
Spring Cloud Vault 支持多个认证机制使用 Vault 验证 applications。
对于快速入门,请使用Vault 初始化打印的根令牌。
示例 102.3. bootstrap.yml
spring.cloud.vault:
token: 19aefa97-cccc-bbbb-aaaa-225940e63d76
仔细考虑您的安全要求。如果您想快速开始使用 Vault,静态令牌身份验证就可以了,但静态令牌不再受到保护。任何向非预期方披露的内容都允许 Vault 使用相关的令牌角色。