配置Spring Cloud Vault Config从/ secret以外的位置提取

Bil*_*ill 5 spring-cloud hashicorp-vault spring-cloud-vault-config

我目前正在将Spring Cloud Vault Config集成到Spring Boot应用程序中。从主页:

Spring Cloud Vault Config使用应用程序名称和活动配置文件从Vault读取配置属性:

/secret/{application}/{profile}
/secret/{application}
/secret/{default-context}/{profile}
/secret/{default-context}
Run Code Online (Sandbox Code Playgroud)

我想提供自己的位置,从中从不以/ secret开头的Vault中提取属性(例如/ deployments / prod)。我一直在浏览参考文档,但始终没有找到指定它的方法-可以吗?

Bil*_*ill 5

我能够使用通用后端属性将路径调整为我正在寻找的内容。就像是:

spring.cloud.vault:
    generic:
        enabled: true
        backend: deployments
        profile-separator: '/'
        default-context: prod
        application-name: my-app
Run Code Online (Sandbox Code Playgroud)

不幸的是,这也会拾取 Vault 位置deployments/my-appdeployments/prod/activeProfile因此请注意不要在这些位置中拥有任何您不希望拾取的属性。

看起来希望(和实现)允许以更编程的方式指定这些路径。


Aru*_*run 3

应该这样做。

有一个配置类

@Configuration
public class VaultConfiguration {

    @Bean
    public VaultConfigurer configurer() {
        return new VaultConfigurer() {
            @Override
            public void addSecretBackends(SecretBackendConfigurer configurer) {
                configurer.add("secret/my-app/path-1");
                configurer.add("secret/my-app/path-2");

                configurer.registerDefaultGenericSecretBackends(false);
            }
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

这样您就可以扫描放置在自定义路径中的秘密

问候阿伦