如何覆盖从 Spring Cloud Vault 到 Vault 的请求序列?
How to override request sequence from Spring Cloud Vault to the Vault?
当我使用 Spring Cloud Vault starter 的应用程序从 Vault 请求信息时,它会在通用秘密后端搜索以下路径:
- secret/myapp/vault
- secret/myapp/dev
- secret/myapp
- secret/application/vault
- secret/application/dev
- secret/application
正如您所见,它向 Vault 发出了很多请求,这是一个问题,因为 Vault 会创建大量不必要的日志,出于某些原因这很糟糕。
如何更改请求的路径?
例如,我希望我的应用程序转到 secret/myapp/{profile},仅此而已。
您可以采用两种方法:
- 正在将
spring.cloud.vault.generic.default-context
设置为空值。
- Customize Spring Vault 访问的路径。
- 运行 您的应用激活的配置文件较少。
Spring Vault 根据应用程序名称与您激活的配置文件的乘积以及通用名称与活动配置文件的乘积来创建路径矩阵。
在 bootstrap 上下文中提供 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);
}
}
当我使用 Spring Cloud Vault starter 的应用程序从 Vault 请求信息时,它会在通用秘密后端搜索以下路径:
- secret/myapp/vault
- secret/myapp/dev
- secret/myapp
- secret/application/vault
- secret/application/dev
- secret/application
正如您所见,它向 Vault 发出了很多请求,这是一个问题,因为 Vault 会创建大量不必要的日志,出于某些原因这很糟糕。
如何更改请求的路径?
例如,我希望我的应用程序转到 secret/myapp/{profile},仅此而已。
您可以采用两种方法:
- 正在将
spring.cloud.vault.generic.default-context
设置为空值。 - Customize Spring Vault 访问的路径。
- 运行 您的应用激活的配置文件较少。
Spring Vault 根据应用程序名称与您激活的配置文件的乘积以及通用名称与活动配置文件的乘积来创建路径矩阵。
在 bootstrap 上下文中提供 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);
}
}