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

  • 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 使用相关的令牌角色。