エントリーから熟練度までの Vault シリーズ 3: パスワードの書き込み、パスワードの読み取り、パスワードの削除
1. パスワードを書き込む
次に、vault kv put コマンドを使用して、キーと値のシークレットをパス hello、キーは foo、値は world に書き込みます。これは、KV v2 シークレット エンジンがインストールされる場所です。このコマンドは、新しいバージョンのシークレットを作成し、パス内に既存のデータがある場合はそれを置き換えます。
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
現在のバージョンは 2 であることに注意してください。
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 ツールを使用して、励起されたシークレットの値を抽出できます。
vault kv get -mount=secret -format=json hello | jq -r .data.data.excited
yes
3. パスワードを削除する
シークレットの読み書き方法を学習したので、シークレットの削除に進みましょう。これは、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 を含むメタデータのみが表示されます。削除すると、データ自体は明らかになりません。destroy パラメータは 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