Spring Cloud Vault 与 k2 v2 - 如何避免启动时出现 403?

Joh*_*don 4 hashicorp-vault spring-cloud-vault-config

问题

有谁知道如何配置bootstrap.yml告诉 Spring Cloud Vault 转到 k2 v2 的正确路径而不是先尝试其他路径?

细节

我可以成功连接到运行 k2 v2 的 Vault,但 Spring Cloud 将始终尝试连接到 Vault 中不存在的路径,从而在启动时抛出 403。

Status 403 Forbidden [secret/application]: permission denied; nested exception is org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden
Run Code Online (Sandbox Code Playgroud)

上面的路径secret/application不存在,因为 k2 v2 放入data了该路径。例如:secret/data/application

这并不是什么大问题,因为 Spring Cloud Vault 确实检查其他路径,包括路径中包含该data项目的正确路径,但在启动过程中抛出毫无意义的 403 的事实就像我脑海中的一根碎片。

最终,它确实尝试了正确的 k2 v2 路径

2019-03-18 12:22:46.611  INFO 77685 --- [  restartedMain] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='vault', propertySources=[LeaseAwareVaultPropertySource {name='secret/data/my-app'}
Run Code Online (Sandbox Code Playgroud)

我的配置

    spring.cloud.vault:
      kv:
        enabled: true
        backend: secret
        profile-separator: '/'
        default-context: my-app
        application-name: my-app
      host: localhost
      port: 8200
      scheme: http
      authentication: TOKEN
      token: my-crazy-long-token-string
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

Chr*_*hez 5

在 bootstrap.yml 中添加以下行,这将禁用通用后端

spring.cloud.vault:
  generic:
    enabled: false
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息https://cloud.spring.io/spring-cloud-vault/reference/html/#vault.config.backends.generic