一、写一个密码
现在,使用 vault kv put 命令对挂载路径 secret 写入一个键值 secret 到路径 hello ,键为 foo ,值为 world ,这是安装 KV v2 secrets 引擎的地方。此命令创建新版本的机密,并替换路径中任何预先存在的数据(如果有)。
vault kv put -mount=secret hello foo=world
== Secret Path ==
secret/data/hello
======= Metadata =======
Key Value
--- -----
created_time 2023-06-19T05:42:29.37860224Z
custom_metadata <nil>
deletion_time n/a
destroyed false
version 1
甚至kv put可以写入多条数据。
vault kv put -mount=secret hello foo=world excited=yes
== Secret Path ==
secret/data/hello
======= Metadata =======
Key Value
--- -----
created_time 2023-06-19T05:49:45.203881375Z
custom_metadata <nil>
deletion_time n/a
destroyed false
version 2
请注意version现在是2。
二、读取密码
如您所料,可以使用 vault kv get 检索机密。
vault kv get -mount=secret hello
== Secret Path ==
secret/data/hello
======= Metadata =======
Key Value
--- -----
created_time 2023-06-19T05:49:45.203881375Z
custom_metadata <nil>
deletion_time n/a
destroyed false
version 2
===== Data =====
Key Value
--- -----
excited yes
foo world
Vault 在 secret/hello 返回最新版本的秘密(在本例中为版本 2)。
要仅打印给定字段的值,请使用 -field=<key_name> 标志。
vault kv get -mount=secret -field=excited hello
yes
可选的 JSON 输出对于脚本非常有用。例如,您可以使用 jq 工具来提取 excited secret 的值。
vault kv get -mount=secret -format=json hello | jq -r .data.data.excited
yes
三、删除密码
现在你已经学会了如何读写一个秘密,让我们继续删除它。可以使用 vault kv delete 命令执行此操作。
vault kv delete -mount=secret hello
Success! Data deleted (if it existed) at: secret/data/hello
尝试阅读刚刚删除的秘密。
vault kv get -mount=secret hello
== Secret Path ==
secret/data/hello
======= Metadata =======
Key Value
--- -----
created_time 2023-06-19T05:49:45.203881375Z
custom_metadata <nil>
deletion_time 2023-06-19T06:10:47.146438181Z
destroyed false
version 2
输出仅显示具有 deletion_time 的元数据。一旦删除,它不会显示数据本身。请注意,destroyed 参数为 false,这意味着如果删除是无意的,您可以恢复已删除的数据。
vault kv undelete -mount=secret -versions=2 hello
Success! Data written to: secret/undelete/hello
现在,数据已恢复。
vault kv get -mount=secret hello
== Secret Path ==
secret/data/hello
======= Metadata =======
Key Value
--- -----
created_time 2023-06-19T05:49:45.203881375Z
custom_metadata <nil>
deletion_time n/a
destroyed false
version 2
===== Data =====
Key Value
--- -----
excited yes
foo world