Spring 配置服务器保管库后端:cloud.config.server.vault 或 cloud.vault

Spring Config Server Vault Backend: cloud.config.server.vault or cloud.vault

我想设置一个能够使用 Vault 和 git 作为配置后端的配置服务器。我不太明白关于配置的事情:

spring:
  application:
    name: tdev-wssc-configserver

  profiles:
    active: git, vault

  cloud:
    config:
      server:
        git:
          uri: file:///path/to/git/repo
          order: 2
        vault:
          host: ${vault_server_host:localhost}
          port: ${vault_server_port:8200}
          order: 1
    vault:
      enabled: true
      host: ${vault_server_host:localhost}
      port: ${vault_server_port:8200}
      scheme: ${vault_server_scheme:https}
      connection-timeout: 5000
      read-timeout: 15000
      fail-fast: true
      config:
        order: -10
      ssl:
        trust-store: file:keystore.jks
        trust-store-password: secret

我怎么需要设置spring.cloud.config.server.vaultspring.cloud.vault

我真的需要同时设置两者吗?

它们有什么区别?

我只希望我的客户能够直接从配置服务器获取配置,而不管 Vault 是否存在。

所以客户端只在配置服务器上请求,并且配置服务器参与从 Vault 获取秘密。

如果您想将配置服务器与 Git 和 Vault 一起使用 - 使用 Spring Cloud Config and configure Vault in spring.cloud.config.server.vault section in your properties. See this documentation。在这种情况下,您不应添加 Spring Cloud Vault 的依赖项,Spring Cloud Config 已经具有 Vault 支持(VaultEnvironmentRepository class)。

Spring Cloud Vault 如果您不想启动配置服务器而只是直接从您的服务中获取 Vault 的属性,您可以使用它。在这种情况下,使用 Spring Cloud Vault 依赖项并使用 spring.cloud.vault 属性。

根据您的问题,您似乎想要单独的配置服务器,因此您应该使用 Spring Cloud Config。

另外这个可能对你有帮助。