Ошибка хранилища при записи

Я хотел протестировать конфигурацию Spring Cloud Vault.

Я установил сервер Vault локально, и когда я пытаюсь write ввести некоторые пары "ключ-значение", он терпит неудачу и просит меня использовать команду vault kv put.

Хотя пример Spring Cloud Config в этой ссылке показывает использование команды записи в хранилище

Это ошибка, которую я получаю

$ vault write secret/my-app foo=bar
Error writing data to secret/my-app: Error making API request.

URL: PUT http://127.0.0.1:8200/v1/secret/my-app
Code: 404. Errors:


WARNING! The following warnings were returned from Vault:

  * Invalid path for a versioned K/V secrets engine. See the API docs for the
  appropriate API endpoints to use. If using the Vault CLI, use 'vault kv put'
  for this operation.

person Arun    schedule 17.04.2018    source источник


Ответы (4)


Попробуйте следующее ..

./vault kv put secret/my-app password=123

Добавлю, что это что-то новенькое в 0.10.0.

Похоже, что в 0.10.0 есть некоторые критические изменения API ... поэтому решение №2 - использовать более раннюю версию Vault (v0.9.6). Это включает по умолчанию v2 секретного движка KV, который является версионным.

Решение №3 - воссоздать движок / secret с v1 KV. Выполнение следующего:

./vault secrets disable secret 
./vault secrets enable -version=1 -path=secret kv
person vicsz    schedule 18.04.2018
comment
Очень полезный ответ, спасибо. Этот ответ в дополнение к github.com/spring-projects/spring-vault/ issues / 380 поставили меня на верный путь. Ах, рамки .... - person Philippe; 29.08.2019

Я смог написать после включения отдельного пути с помощью следующей команды

vault secrets enable -path=my-app kv
vault write my-app/my-app password=123

В Spring Cloud Config мне пришлось указать имя папки как бэкэнд в bootstrap.yml файле

spring:
  cloud:
    vault:
      token: bc53d1a4-2551-4869-9574-7a9e60501ec1
      scheme: http
      generic:
        backend: my-app
person Arun    schedule 17.04.2018

У меня такая же ошибка при использовании python, hvac, vault и kv в качестве движка. И кв-двигатель версионный. Я использовал клиента hvac

client.write("secret/taras", data=dict(python='is secret'))

Так что я получил

InvalidPath: "request_id": "d5c0f889-2c42-4141-1cc6-31ed1336c768", "lease_id": "", "возобновляемый": false, "lease_duration": 0, "data": null, "wrap_info": null, " warnings ": [" Недопустимый путь для версионного механизма секретов K / V. См. документацию по API, чтобы узнать, какие конечные точки API нужно использовать. Если вы используете Vault CLI, используйте 'vault kv put' для этой операции. "]," auth " :нулевой}

Способ, которым я решил эту проблему, заключался в изменении пути для хранения секрета

client.write("secret/data/taras", data=dict(python='is secret'))

PS: как вы поняли, название моего секрета - «тарас».

person Taras Vaskiv    schedule 02.05.2019
comment
Спасибо за это, я понятия не имел, что данные нужно добавить в путь! - person Antoine Delia; 17.09.2019

Попробуйте следующее в Windows (в командной строке),

НАБОР VAULT_TOKEN = 00000000-0000-0000-0000-000000000000

УСТАНОВИТЬ VAULT_ADDR = http://127.0.0.1:8200

vault kv put secret / gs-vault-config example.username = demouser example.password = demopassword

(Теперь в Hashicorp Vault есть изменения в создании пары "ключ-значение". Используйте kv put вместо write.)

person Naga    schedule 02.03.2019