3. 客户端使用
要在应用程序中使用这些功能,只需将其构建为依赖于 spring-cloud-vault-config 的 Spring Boot 应用程序(例如,请参阅测试用例)。
Maven 配置示例:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
<version>3.0.4</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);
}
}
运行时,如果默认本地 Vault 服务器正在运行,则会从端口 8200 上获取外部配置。要修改启动行为,可以使用 application.properties 更改 Vault 服务器的位置,例如
spring.cloud.vault:
host: localhost
port: 8200
scheme: https
uri: https://localhost:8200
connection-timeout: 5000
read-timeout: 15000
config:
spring.config.import: vault://
-
host设置 Vault 主机的主机名。主机名将用于 SSL 证书验证 -
port设置密 vault 端口 -
scheme将协议设置为http将使用普通的 HTTP。支持的协议有http和https。 -
uri使用URI配置Vault端点。优先于主机/端口/方案配置 -
connection-timeout设置连接超时时间(毫秒) -
read-timeout设置读取超时时间(毫秒) -
spring.config.import将 Vault 挂载为PropertySource,并使用所有已启用的密钥后端(默认情况下启用了键值对)
如果应用程序导入了 spring-boot-starter-actuator 项目,则可以通过 /health 端点获取保险箱服务器的状态。
机密存储库健康指标可以通过属性 management.health.vault.enabled 启用或禁用(默认为 true)。
使用 Spring Cloud Vault 3.0 和 Spring Boot 2.4,属性源的引导上下文初始化(bootstrap.yml,bootstrap.properties)已弃用。取而代之的是,Spring Cloud Vault 倾向于使用 Spring Boot 的配置数据 API,该 API 允许从 Vault 导入配置。使用 Spring Boot 配置数据方法时,您需要设置 您可以启用引导上下文,通过设置配置属性 |
3.1. 认证
Spring Cloud Vault 支持多种身份验证机制,用于将应用程序与 Vault 进行身份验证。
快速入门时,请使用 Vault 初始化过程中打印的根Tokens (Vault初始化)。
spring.cloud.vault:
token: 19aefa97-cccc-bbbb-aaaa-225940e63d76
spring.config.import: vault://
| 仔细考虑您的安全需求。</p><p>如果您想快速开始使用Vault,静态Tokens身份验证是可以接受的,但是静态Tokens没有得到进一步保护。</p><p>任何向非预期方披露都会允许使用与该Tokens角色关联的Vault。 |