【问题标题】:How to override request sequence from Spring Cloud Vault to the Vault?如何覆盖从 Spring Cloud Vault 到 Vault 的请求序列?
【发布时间】:2018-09-04 11:41:31
【问题描述】:

当我使用 Spring Cloud Vault starter 的应用程序向 Vault 请求信息时,它会在通用秘密后端搜索以下路径:

  • secret/myapp/vault
  • 秘密/myapp/dev
  • 秘密/myapp

  • 秘密/应用程序/保险库
  • 秘密/应用程序/开发
  • 秘密/申请

如您所见,它向 Vault 发出了很多请求,这是一个问题,因为 Vault 会创建很多不必要的日志,这有几个原因是不好的。

如何更改请求的路径?

例如,我希望我的应用程序转到 secret/myapp/{profile} ,仅此而已。

【问题讨论】:

    标签: spring-cloud-config spring-cloud-vault-config


    【解决方案1】:

    您可以采取两种方法:

    1. spring.cloud.vault.generic.default-context 设置为空值。
    2. Customize Spring Vault 访问的路径。
    3. 在激活的配置文件较少的情况下运行您的应用。

    Spring Vault 基于应用程序名称与您激活的配置文件相乘以及基于通用名称与活动配置文件相乘创建路径矩阵。

    在引导上下文中提供VaultConfigurer bean 可以让您最大程度地控制 Spring Cloud Vault 访问的路径:

    public class MyVaultConfigurer implements VaultConfigurer {
    
        @Override
        public void addSecretBackends(SecretBackendConfigurer configurer) {
    
            configurer.add("secret/my-application");
    
            configurer.registerDefaultGenericSecretBackends(false);
            configurer.registerDefaultDiscoveredSecretBackends(true);
        }
    }
    

    【讨论】:

    • 谢谢你这么详细的解释!问题是我是一名 DevOps,所以我几乎不知道如何在 Java 上编写代码。我可以向 github 添加一个功能请求,允许通过 yml 配置进行此修改吗?
    • @mp911de,如何将 MyVaultConfigurer 添加到 Bootstrap 上下文?文档中有一条简短的通知:cloud.spring.io/spring-cloud-vault/2.1.x/multi/…“所有自定义都需要在引导上下文中进行。将您的配置类添加到应用程序中 org.springframework.cloud.bootstrap.BootstrapConfiguration 的 META-INF/spring.factories。 "但我不知道如何执行此建议。
    猜你喜欢
    • 2018-01-12
    • 2018-07-25
    • 2018-02-09
    • 2019-05-11
    • 2018-05-21
    • 1970-01-01
    • 2022-01-08
    • 2023-01-20
    • 2017-06-23
    相关资源
    最近更新 更多