В первой части мы показали, как запускать экземпляр Vault локально, уделяя особое внимание использованию Docker и контейнеров:
Теперь, когда у вас установлен vault, давайте посмотрим, что он может сделать.
Основные команды:
- Используйте kv put, чтобы положить секреты
- Используйте kv get, чтобы получить их
В Vault каждый ключ имеет версии (так что вы можете обновлять и получать прежние версии).
Вы также можете установить несколько пар ключ-значение (ключ = значение, другой ключ = значение…).
$ export VAULT_ADDR='http://vault.local:8200'
$ export VAULT_DEV_ROOT_TOKEN_ID=5l8v34FMhOVBozD9IAAkHREj
$ vault status
Key Value
--- -----
Seal Type shamir
$ vault kv put secret/funky cold=medina
Key Value
--- -----
created_time 2018-12-28T17:52:22.217336Z
deletion_time n/a
destroyed false
version 1
$ vault kv get secret/funky
====== Metadata ======
Key Value
--- -----
created_time 2018-12-28T17:52:22.217336Z
deletion_time n/a
destroyed false
version 1
==== Data ====
Key Value
--- -----
cold medina
При получении значений можно использовать jquery для анализа содержимого или более новую опцию «-field», чтобы просто получить значение.
Если вы хотите удалить значения, используйте «delete», чтобы удалить секрет.
Хотя удаление «удаляет», это больше похоже на перемещение чего-либо в папку «Корзина».
Все может быть легко восстановлено с undelete.
$ brew install jq
$ vault kv get -format=json secret/funcky | jq -r .data.data.cold
medina
$ vault kv get -field=cold secret/funky
medina
$ vault kv delete secret/funky
Success! Data deleted (if it existed) at: secret/funky
$ vault kv get -field=cold secret/funky
No data found at secret/data/funky
Delete Undelete и Destroy
При настройке значений каждое обновление имеет версию.
Если значение не было уничтожено, можно использовать undelete с версией, чтобы восстановить ее.
Однако можно использовать «destroy», чтобы безвозвратно уничтожить нежелательные данные (например, пароль или ключ, который был ошибочно раскрыт).
$ vault kv get -field=cold secret/funky
No data found at secret/data/funky
# о нет, я хочу вернуть это значение!
$ vault kv get -version=1 secret/funky
====== Metadata ======
Key Value
--- -----
created_time 2018-12-28T17:52:22.217336Z
deletion_time 2018-12-28T18:23:05.2746784Z
destroyed false
version 1
$ vault kv undelete -versions=1 secret/funky
Success! Data written to: secret/undelete/funky
$ vault kv get -field=cold secret/funky
medina
Теперь мы хотим навсегда удалить значение:
$ vault kv delete secret/funky
Success! Data deleted (if it existed) at: secret/funky
$ vault kv destroy -versions=1 secret/funky
Success! Data written to: secret/destroy/funky
$ vault kv get -field=cold secret/funky
No data found at secret/data/funky
$ vault kv undelete -versions=1 secret/funky
Success! Data written to: secret/undelete/funky
# proof it’s not available
$ vault kv get -field=cold secret/funky
No data found at secret/data/funky