#hashicorp-vault #spring-cloud-vault-config
#hashicorp-хранилище #spring-cloud-vault-config
Вопрос:
Проблема
Кто-нибудь знает, как настроить bootstrap.yml
указание Spring Cloud Vault перейти по правильному пути для k2 v2 и не пробовать сначала другие пути?
Подробные сведения
Я могу успешно подключиться к своему хранилищу, запустив k2 v2, но Spring Cloud всегда будет пытаться подключиться к путям в хранилище, которые не существуют, вызывая 403 при запуске.
Status 403 Forbidden [secret/application]: permission denied; nested exception is org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden
Указанный выше путь, secret/application
, не существует, потому что k2 v2 вставляет data
в path. Например: 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
Спасибо за вашу помощь!
Ответ №1:
Добавьте следующие строки в свой bootstrap.yml, это отключает общий серверный интерфейс
spring.cloud.vault:
generic:
enabled: false
для получения дополнительной информации https://cloud.spring.io/spring-cloud-vault/reference/html/#vault.config.backends.generic
Ответ №2:
В дополнение к принятому ответу важно отключить (или просто удалить) fail-fast
опцию:
spring.cloud.vault:
fail-fast: false
Ответ №3:
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
Другие конфигурации были установлены по умолчанию (например, port = 8200, backend = secret и т.д.)