3. 客户端使用
要在应用程序中使用这些功能,只需将其构建为依赖于的 Spring Boot 应用程序(例如,参见测试用例)。
Maven 配置示例:spring-cloud-vault-config
<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 服务器获取外部配置。
要修改启动行为,可以使用 更改 Vault 服务器的位置,例如8200
application.properties
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
将 scheme 设置为 将使用纯 HTTP。 支持的方案包括 和 。http
http
https
-
uri
使用 URI 配置 Vault 终端节点。优先于主机/端口/方案配置 -
connection-timeout
设置连接超时(以毫秒为单位) -
read-timeout
设置读取超时(以毫秒为单位) -
spring.config.import
使用所有已启用的 secret 后端挂载 Vault(默认启用键值)PropertySource
如果应用程序导入项目,则 Vault 服务器的状态将通过端点提供。spring-boot-starter-actuator
/health
可以通过属性 (默认为 ) 启用或禁用 Vault 运行状况指示器。management.health.vault.enabled
true
在 Spring Cloud Vault 3.0 和 Spring Boot 2.4 中,不推荐使用属性源的引导上下文初始化 (, )。
相反,Spring Cloud Vault 偏爱 Spring Boot 的 Config Data API,它允许从 Vault 导入配置。使用 Spring Boot Config Data 方法,您需要设置属性才能绑定到 Vault。您可以在 Config Data Locations 部分中阅读更多相关信息。
您可以通过设置 configuration 属性或包含 dependency 来启用引导程序上下文。bootstrap.yml bootstrap.properties spring.config.import spring.cloud.bootstrap.enabled=true org.springframework.cloud:spring-cloud-starter-bootstrap |
3.1. 身份验证
Vault 需要身份验证机制来授权 Client 端请求。
Spring Cloud Vault 支持多种身份验证机制,以使用 Vault 对应用程序进行身份验证。
对于快速入门,请使用 Vault 初始化打印的根令牌。
spring.cloud.vault:
token: 19aefa97-cccc-bbbb-aaaa-225940e63d76
spring.config.import: vault://
请仔细考虑您的安全要求。 如果您想快速开始使用 Vault,静态令牌身份验证很好,但静态令牌不再受到保护。 任何向非预期方披露都允许 Vault 与关联的令牌角色一起使用。 |