HASHICORP VAULT: Как прочитать несколько элементов из файла и записать их в Vault
Я могу записать значения в Vault из файла JSON:
# cat secrets.json
{ "value": "bGktzwatc" }
{ "value": "AGktzwatB" }
При попытке создать новое значение путем чтения из файла json Vault читает только первое значение из файла:
# ./vault write secret/passwd1 @secrets.json
Success! Data written to: secret/passwd1
# ./vault read secret/passwd1
Key Value
--- -----
refresh_interval 768h0m0s
value bGktzwatc
Можно ли прочитать несколько значений из файла и записать в разные ключи через хранилище?
Мое требование - добавление значений к нескольким ключам путем чтения из файла:
Key Value
--- -----
refresh_interval 768h0m0s
value bGktzwatc
Key Value
--- -----
refresh_interval 768h0m0s
value AGktzwatB
1 ответ
AFAIK, ты не можешь так это, как vault write
команда ожидает key
быть указанным как часть команды.
При попытке > vault write @data.json
похоже, что не имеет значения, что файл вообще содержит, так как вместо wrong file format
Вид ошибки - общий вывод о доступных параметрах для команды.
Может быть, это будет полезно: вы можете указать более одного значения для конкретного ключа:
# cat secrets.json
{ "value1": "bGktzwatc", "value2": "AGktzwatB" }
тогда ключ будет содержать
Key Value
--- -----
refresh_interval 768h0m0s
value1 bGktzwatc
value2 AGktzwatB
Если вы копируете данные с одного ключа на другой через файл, мне подходит этот подход:
vault read -format=json secret/mykey1 > file.json
cat file.json | jq '.data' | vault write secret/mykey2 -
Обратите внимание на использование
jq
принести
"data"
сначала подэлемент на верхний уровень.
Используя хранилище 1.1.3 и секретный движок, я могу записывать секреты из файла:
cat secrets.json | vault write secret/yoursecrets -
Это тоже работает:
vault write secret/yoursecrets @secrets.json
Обратите внимание, что если secrets.json
был создан с использованием vault read
, твои секреты в data
поле ответа JSON, например { "data": {"username":"Mario", "password": "It's-a me, Mario!"} }
.