4

问题

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

细节

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

Status 403 Forbidden [secret/application]: permission denied; nested exception is org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden

上面的路径 ,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'}

我的配置

    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

谢谢你的帮助!

4

3 回答 3

5

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

spring.cloud.vault:
  generic:
    enabled: false

有关更多信息https://cloud.spring.io/spring-cloud-vault/reference/html/#vault.config.backends.generic

于 2019-10-22T19:29:35.593 回答
1

除了接受的答案之外,关闭(或仅删除)fail-fast选项很重要:

spring.cloud.vault:
  fail-fast: false
于 2021-04-26T16:21:16.370 回答
0

spring.cloud.vault.generic.enabled在 spring-cloud 3.0.0 中已弃用,但 403 错误仍然存​​在。要禁用警告(通过告诉 spring 使用确切的上下文),这就是我使用的:

spring:
  config:
    import: vault://
  application:
    name: my-application
  cloud:
    vault:
      host: localhost
      scheme: http
      authentication: TOKEN
      token: my-crazy-long-token-string
      kv:
        default-context: my-application

其他配置设置为默认值(例如端口 = 8200、后端 = 机密等)

于 2021-10-04T17:18:31.573 回答