#spring #hashicorp-vault #spring-vault
#spring #hashicorp-vault #spring-vault
Вопрос:
Я использую Hashicorp vault в качестве хранилища секретов и установил его через репозиторий apt в Ubuntu 20.04.
После этого я добавил корневой ключ для доступа к пользовательскому интерфейсу, и я могу добавлять или удалять секреты с помощью пользовательского интерфейса.
Всякий раз, когда я пытаюсь добавить или получить секрет с помощью командной строки, я получаю следующую ошибку :
jarvis@saki:~$ vault kv get secret/vault
Get "https://127.0.0.1:8200/v1/sys/internal/ui/mounts/secret/vault": http: server gave HTTP response to HTTPS client
Моя конфигурация хранилища выглядит следующим образом :
# Full configuration options can be found at https://www.vaultproject.io/docs/configuration
ui = true
#mlock = true
#disable_mlock = true
storage "file" {
path = "/opt/vault/data"
}
#storage "consul" {
# address = "127.0.0.1:8500"
# path = "vault"
#}
# HTTP listener
#listener "tcp" {
# address = "127.0.0.1:8200"
# tls_disable = 1
#}
# HTTPS listener
listener "tcp" {
address = "0.0.0.0:8200"
tls_cert_file = "/opt/vault/tls/tls.crt"
tls_key_file = "/opt/vault/tls/tls.key"
}
# Example AWS KMS auto unseal
#seal "awskms" {
# region = "us-east-1"
# kms_key_id = "REPLACE-ME"
#}
# Example HSM auto unseal
#seal "pkcs11" {
# lib = "/usr/vault/lib/libCryptoki2_64.so"
# slot = "0"
# pin = "AAAA-BBBB-CCCC-DDDD"
# key_label = "vault-hsm-key"
# hmac_key_label = "vault-hsm-hmac-key"
#}
Комментарии:
1. Вы должны показать свою конфигурацию хранилища.
2. Это в
/etc/vault.d/vault.hcl
. Даже тогда он не будет настроен для производственного использования, вам нужно сделать это самостоятельно. Я рекомендую вам воспользоваться руководством по vault .3. Я отредактировал сообщение, предлагает ли оно какую-либо помощь, чтобы выяснить, в чем проблема?
4. можете ли вы попробовать просто позвонить
curl -v https://127.0.0.1:8200/v1/sys/seal-status
и показать нам результат?5. Это сработало, мне пришлось экспортировать корневой токен, чтобы иметь возможность добавлять и извлекать данные с помощью сервера разработки в памяти, спасибо за всю помощь.
Ответ №1:
Я исправил проблему. Хотя исключение может быть общим для более чем одной подобной проблемы, я исправил проблему, экспортировав корневой токен, сгенерированный после выполнения этой команды :
vault server -dev
Вывод выглядит следующим образом
...
You may need to set the following environment variable:
$ export VAULT_ADDR='http://127.0.0.1:8200'
The unseal key and root token are displayed below in case you want to
seal/unseal the Vault or re-authenticate.
Unseal Key: 1 yv v5mz aSCK67X6slL3ECxb4UDL8ujWZU/ONBpn0=
Root Token: s.XmpNPoi9sRhYtdKHaQhkHP6x
Development mode should NOT be used in production installations!
...
Затем просто экспортируйте эти переменные, выполнив следующие команды :
export VAULT_ADDR='http://127.0.0.1:8200'
export VAULT_TOKEN="s.XmpNPoi9sRhYtdKHaQhkHP6x"
Примечание: Замените «s.XmpNPoi9sRhYtdKHaQhkHP6x» вашим токеном, полученным в качестве вывода из вышеупомянутой команды.
Затем выполните следующую команду, чтобы проверить статус :
vault status
Опять же, сообщение об ошибке может быть похожим для многих разных проблем.
Комментарии:
1. У меня работал только экспорт VAULT_ADDR
Ответ №2:
В PowerShell в Windows 10 я смог установить его таким образом:
$Env:VAULT_ADDR='http://127.0.0.1:8200'
Затем
vault status
возвращено правильно. Это было в Vault 1.7.3 в режиме разработки
Вы можете повторить VAULT_ADDR, указав его в командной строке и нажав enter — так же, как в строке set выше, но опустив знак = и все, что после него
$Env:VAULT_ADDR
Вывод:
Значение ключа ——— Тип уплотнения shamir Инициализировано true Запечатано false Общее количество общих ресурсов 1 Пороговое значение 1 Версия
1.7.3 Тип хранилища Имя кластера inmem хранилище-кластер-80649ba2 Идентификатор кластера 2a35e304-0836-2896- e927-66722e7ca488 HA включен
false
Комментарии:
1. То же, что в Ubuntu 22.04
Ответ №3:
Попробуйте использовать новое окно терминала. Это сработало для меня