3. 客户端使用

要在应用程序中使用这些功能,只需将其构建为依赖于 spring-cloud-vault-config 的 Spring Boot 应用程序(例如,请参阅测试用例)。
Maven 配置示例:
spring-doc.cadn.net.cn

示例 1. pom.xml
<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服务器:spring-doc.cadn.net.cn

@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-doc.cadn.net.cn

示例 2. application.yml
spring.cloud.vault:
    host: localhost
    port: 8200
    scheme: https
    uri: https://localhost:8200
    connection-timeout: 5000
    read-timeout: 15000
    config:
spring.config.import: vault://

启用进一步 的 集成需要额外的依赖和配置。
根据您设置 Vault 的方式,可能需要其他配置,例如
SSL身份验证spring-doc.cadn.net.cn

如果应用程序导入了 spring-boot-starter-actuator 项目,则可以通过 /health 端点获取保险箱服务器的状态。spring-doc.cadn.net.cn

机密存储库健康指标可以通过属性 management.health.vault.enabled 启用或禁用(默认为 true)。spring-doc.cadn.net.cn

使用 Spring Cloud Vault 3.0 和 Spring Boot 2.4,属性源的引导上下文初始化(bootstrap.ymlbootstrap.properties)已弃用。

spring-doc.cadn.net.cn

取而代之的是,Spring Cloud Vault 倾向于使用 Spring Boot 的配置数据 API,该 API 允许从 Vault 导入配置。使用 Spring Boot 配置数据方法时,您需要设置 spring.config.import 属性以绑定到 Vault。有关更多信息,请参阅配置数据位置部分spring-doc.cadn.net.cn

您可以启用引导上下文,通过设置配置属性 spring.cloud.bootstrap.enabled=true 或包含依赖项 org.springframework.cloud:spring-cloud-starter-bootstrapspring-doc.cadn.net.cn

3.1. 认证

Spring Cloud Vault 支持多种身份验证机制,用于将应用程序与 Vault 进行身份验证。spring-doc.cadn.net.cn

快速入门时,请使用 Vault 初始化过程中打印的根Tokens (Vault初始化)spring-doc.cadn.net.cn

示例 3. application.yml
spring.cloud.vault:
    token: 19aefa97-cccc-bbbb-aaaa-225940e63d76
spring.config.import: vault://
仔细考虑您的安全需求。</p><p>如果您想快速开始使用Vault,静态Tokens身份验证是可以接受的,但是静态Tokens没有得到进一步保护。</p><p>任何向非预期方披露都会允许使用与该Tokens角色关联的Vault。