Spring Cloud Vault with k2 v2 - 如何在启动时避免 403?
Spring Cloud Vault With k2 v2 - How to Avoid 403 at Startup?
问题
有谁知道如何配置 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
感谢您的帮助!
在您的 bootstrap.yml 中添加以下行,这将禁用通用后端
spring.cloud.vault:
generic:
enabled: false
了解更多信息https://cloud.spring.io/spring-cloud-vault/reference/html/#vault.config.backends.generic
除了已接受的答案之外,关闭(或只是删除)fail-fast
选项也很重要:
spring.cloud.vault:
fail-fast: false
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、后端 = secret 等)
问题
有谁知道如何配置 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
感谢您的帮助!
在您的 bootstrap.yml 中添加以下行,这将禁用通用后端
spring.cloud.vault:
generic:
enabled: false
了解更多信息https://cloud.spring.io/spring-cloud-vault/reference/html/#vault.config.backends.generic
除了已接受的答案之外,关闭(或只是删除)fail-fast
选项也很重要:
spring.cloud.vault:
fail-fast: false
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、后端 = secret 等)