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。支持的方案是httphttps

  • uri使用 URI 配置 Vault 端点。优先于主机/端口/方案配置

  • connection-timeout设置连接超时(以毫秒为单位)

  • read-timeout设置读取超时(以毫秒为单位)

  • config.order设置属性来源的 Sequences

启用进一步的集成需要附加的依赖关系和配置。根据您设置Vault的方式,您可能需要其他配置,例如SSLauthentication

如果应用程序导入了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与关联的令牌角色一起使用。