1

我们现在根据配置文件将密码和其他配置相关数据存储在 git 和文件系统(本地)中。这基于配置文件本地/开发等工作正常,使用 SPring 云配置方法。

但为了增强安全性,我们建议在 Vault 中使用敏感数据

所以我不清楚如何实现这一点。我们是否将有一个云配置服务器托管一些来自 Vault 的属性和一些来自 Git 的属性。

配置客户端将根据 CONFIGSERVER_URI 定位配置服务器,因此我们不能运行单独的实例

如何达到这个要求。

谢谢。

4

1 回答 1

1

可以使用相同的配置服务器访问某些属性的 Git 和其他属性的 Vault。通过使用 Vault 令牌,个人客户可以访问 Vault 位置。Vault 令牌在运行时作为标头自动传递给配置服务器。您需要使用 Vault 依赖项配置您的配置服务器并添加属性以访问 Git 和 Vault 类似这样的东西(不是“保险库”配置文件):-

server:
  port: 8888

spring:
  profiles:
    active: git, vault

application:
    name: my-domain-configuration-server

cloud:
    config:
        server:
            git:
                uri: https://mygit/my-domain-configuration
                order: 1
            vault:
                order: 2
                host: vault.mydomain.com
                port: 8200
                scheme: https

在您的客户端上,您需要配置 Vault 提供的授权令牌。请注意,下面的示例说明了该属性。您可以将其放入您的应用程序 yaml 文件中,因为它是每个应用程序/每个环境的令牌。但是,我更喜欢在部署期间将其注入环境中。

spring:
  cloud:
    config:
      uri: https://configserver:8888/
      token: <secret token>

您应该查阅 Vault 文档以了解如何授权您的令牌访问特定位置,但规则可能如下所示:-

{
    path "secret/myapp-app" {
        policy = "read"
    }

    path "secret/myapp-app/*" {
        policy = "read"
    }

    path "secret/application" {
        policy = "read"
    }

    path "secret/application/*" {
        policy = "read"
    }"
}

最后,也可以通过配置服务器访问您的 Git 并直接从您的客户端访问 Vault,而不是配置配置服务器来访问两者。在这种情况下,您需要将 Vault 依赖项添加到客户端并配置客户端属性以访问 Vault。您仍然需要客户端中的授权令牌。

于 2018-04-16T13:25:13.510 回答