使用 Vault CLI 管理金鑰值密碼
如果您已經使用 HashiCorp Vault,您可以使用命令列介面 (CLI) 與 IBM Cloud® Secrets Manager 互動,以管理您的 key-value secret。 所有作業都遵循 Vault CLI 可用的準則。
Secrets Manager 支援 HashiCorp Vault KV Secrets Engine Version 2 CLI 指令。 有關 KV v2 CLI 的更多資訊,請參閱 Vault KV v2 文件。
開始之前,請 配置 Vault CLI,以便您可以使用 Vault 指令來存取 Secrets Manager 實例。 若要進一步瞭解如何使用 Vault CLI,請參閱 Vault 文件。
若要使用 Secrets Manager的標準 CLI,請參閱 Secrets Manager CLI 參考資料。
建立或更新金鑰值密碼
建立金鑰值密碼的版本。
vault kv put [-format=FORMAT] ibmcloud/kv/SECRET_NAME [KEY_VALUE_PAIRS]
在自訂群組中建立金鑰值密碼的版本。
vault kv put [-format=FORMAT] ibmcloud/kv/GROUP_ID/SECRET_NAME [KEY_VALUE_PAIRS]
必要條件
您需要 撰寫者 服務角色,才能建立金鑰值密碼。
指令選項
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
建立或更新金鑰值密碼的有效負載。
vault kv put ibmcloud/kv/example-kv-secret key1=value1 key2=value2
建立或更新自訂群組中金鑰值密碼的有效負載。
vault kv put ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/example-kv-secret key1=value1 key2=value2
輸出
用於建立新版本 kv 密鑰的指令會傳回下列輸出:
Key Value
--- -----
created_time 2022-03-08T18:32:43.610242127Z
deletion_time n/a
destroyed false
version 2
讀取金鑰值密碼的版本
取得鍵值秘訣的版本。 成功要求會傳回與密鑰指定版本相關聯的密鑰資料,以及其他 meta 資料。
vault kv get [-version=VERSION] [-format=FORMAT] ibmcloud/kv/SECRET_NAME
取得自訂群組中金鑰值密碼的版本。
vault kv get [-version=VERSION] [-format=FORMAT] ibmcloud/kv/GROUP_ID/SECRET_NAME
必要條件
您需要 讀者 或 撰寫者 服務角色,才能讀取金鑰值密碼的版本。
指令選項
- -version
- 您想要閱讀的版本。 如果省略,則會傳回最新版本。
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
讀取金鑰值密碼的版本。
vault kv get -version=1 ibmcloud/kv/my-test-kv-secret
讀取自訂群組中金鑰值密碼的版本。
vault kv get -version=1 ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/my-test-kv-secret
輸出
讀取 kv 密鑰版本的指令會傳回下列輸出:
====== Metadata ======
Key Value
--- -----
created_time 2022-03-04T17:08:34.406336489Z
deletion_time n/a
destroyed false
version 1
==== Data ====
Key Value
--- -----
key1 value1
刪除鍵值密碼的最新版本
刪除金鑰值密碼的最新版本。 您可以呼叫 undelete 指令來復原刪除。
vault kv delete [-format=FORMAT] ibmcloud/kv/SECRET_NAME
刪除自訂群組中金鑰值密碼的最新版本。
vault kv delete [-format=FORMAT] ibmcloud/kv/GROUP_ID/SECRET_NAME
必要條件
您需要 管理員 服務角色 才能刪除鍵值密碼。
指令選項
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
刪除金鑰值密碼的最新版本。
vault kv delete -format=json ibmcloud/kv/my-test-kv-secret
刪除自訂群組中金鑰值密碼的最新版本。
vault kv delete -format=json ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/my-test-kv-secret
輸出
刪除 kv 密鑰最新版本的指令不會傳回任何輸出。
刪除鍵值密碼的指定版本
刪除鍵值密碼的指定版本。 您可以呼叫 undelete 指令來復原刪除。
vault kv delete [-versions=VERSIONS] [-format=FORMAT] ibmcloud/kv/SECRET_NAME
刪除自訂群組中指定版本的鍵值密碼。
vault kv delete [-versions=VERSIONS] [-format=FORMAT] ibmcloud/kv/GROUP_ID/SECRET_NAME
必要條件
您需要 管理員 服務角色 才能刪除鍵值密碼。
指令選項
- -版本
- 要刪除的版本。
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
刪除鍵值密碼的指定版本。
vault kv delete -versions=2 ibmcloud/kv/my-test-kv-secret
刪除自訂群組中金鑰值密鑰的指定版本。
vault kv delete -versions=2 ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/my-test-kv-secret
輸出
用於刪除指定版本的 kv 密鑰的指令不會傳回任何輸出。
取消刪除金鑰值密碼
還原先前刪除的金鑰值密碼版本。
vault kv undelete [-versions=VERSIONS] [-format=FORMAT] ibmcloud/kv/SECRET_NAME
還原自訂群組中先前刪除的金鑰值密碼版本。
vault kv undelete [-versions=VERSIONS] [-format=FORMAT] ibmcloud/kv/GROUP_ID/SECRET_NAME
必要條件
您需要 管理員 服務角色 才能還原密碼。
指令選項
- -版本
- 要刪除的版本。
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
取消刪除指定版本的鍵值密碼。
vault kv undelete -versions=2 ibmcloud/kv/my-test-kv-secret
取消刪除指定版本的鍵值密碼。
vault kv undelete -versions=2 ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/my-test-kv-secret
輸出
用於取消刪除指定版本的 kv 密鑰的指令會傳回下列輸出:
Success! Data written to: ibmcloud/kv/undelete/my-test-kv-secret
銷毀版本的秘密
永久地毀損鍵值密碼的指定版本。 若要改為軟刪除密鑰的版本,請使用 delete specified versions 指令。
vault kv destroy [-versions=VERSIONS] [-format=FORMAT] ibmcloud/kv/SECRET_NAME
毀損自訂群組中金鑰值密碼的指定版本。
vault kv destroy [-versions=VERSIONS] [-format=FORMAT] ibmcloud/kv/GROUP_ID/SECRET_NAME
必要條件
您需要 管理員 服務角色 才能刪除密碼。
指令選項
- -版本
- 您想要毀損的版本。
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
刪除鍵值密碼的永久指定版本。
vault kv destroy -versions=2 ibmcloud/kv/my-test-kv-secret
刪除自訂群組中永久指定的鍵值密碼版本。
vault kv destroy -versions=2 ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/my-test-kv-secret
輸出
毀損 kv 密鑰版本的指令會傳回下列輸出:
Success! Data written to: ibmcloud/kv/undelete/my-test-kv-secret
建立或更新 meta 資料鍵值密鑰
建立或更新鍵值密碼的 meta 資料。
vault kv metadata put [-format=FORMAT] [METADATA_KEY_VALUE_PAIRS] ibmcloud/kv/SECRET_NAME
建立或更新自訂群組中金鑰值密碼的 meta 資料。
vault kv metadata put [-format=FORMAT] [METADATA_KEY_VALUE_PAIRS] ibmcloud/kv/GROUP_ID/SECRET_NAME
必要條件
您需要 撰寫者 服務角色,才能建立金鑰值密碼。
指令選項
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
建立或更新金鑰值密碼的有效負載。
vault kv metadata put -custom-metadata=key1=value1 -custom-metadata=key2=value2 ibmcloud/kv/mysecret
建立或更新自訂群組中金鑰值密碼的有效負載。
vault kv metadata put -custom-metadata=key1=value1 -custom-metadata=key2=value2 ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/mysecret
輸出
用於建立新版本 kv 密鑰的指令會傳回下列輸出:
Key Value
--- -----
created_time 2022-03-08T18:32:43.610242127Z
deletion_time n/a
destroyed false
version 2
讀取金鑰值密碼的 meta 資料
取得鍵值密碼的 meta 資料。
vault kv metadata get ibmcloud/kv/SECRET_NAME
取得自訂群組中鍵值密碼的 meta 資料。
vault kv metadata get ibmcloud/kv/GROUP_ID/SECRET_NAME
必要條件
您需要 讀者 或 撰寫者 服務角色,才能讀取金鑰值密碼的 meta 資料。
指令選項
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
讀取金鑰值密碼的 meta 資料。
vault kv metadata get ibmcloud/kv/my-test-kv-secret
讀取自訂群組中金鑰值密碼的 meta 資料。
vault kv metadata get ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/my-test-kv-secret
輸出
讀取 kv 密鑰的 meta 資料的指令會傳回下列輸出:
========== Metadata ==========
Key Value
--- -----
cas_required false
created_time 2022-03-04T17:08:34.406336489Z
current_version 3
custom_metadata map[key1:value1 key2:value2]
delete_version_after 0s
max_versions 10
oldest_version 0
updated_time 2022-03-08T20:06:39.585190049Z
====== Version 1 ======
Key Value
--- -----
created_time 2022-03-04T17:08:34.406336489Z
deletion_time n/a
destroyed true
====== Version 2 ======
Key Value
--- -----
created_time 2022-03-08T18:32:43.610242127Z
deletion_time 2022-03-08T20:05:08.850704454Z
destroyed false
====== Version 3 ======
Key Value
--- -----
created_time 2022-03-08T20:06:39.585190049Z
deletion_time n/a
destroyed false
刪除鍵值密鑰的 meta 資料及所有版本
永久刪除指定鍵值密碼的 meta 資料及所有版本資料。 當您使用這個指令時,會移除所有版本歷程。
vault kv metadata delete ibmcloud/kv/SECRET_NAME
vault kv metadata delete ibmcloud/kv/GROUP_ID/SECRET_NAME
必要條件
您需要 管理員 服務角色 才能刪除鍵值密碼的 meta 資料。
指令選項
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
永久地刪除鍵值密碼的資料和 meta 資料。
vault kv metadata delete ibmcloud/kv/my-test-kv-secret
永久地刪除自訂密鑰群組中金鑰值密鑰的資料及 meta 資料。
vault kv metadata delete ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/my-test-kv-secret
輸出
用於刪除 kv 密鑰的 meta 資料的指令會傳回下列輸出:
Success! Data deleted (if it existed) at: ibmcloud/kv/metadata/my-test-kv-secret
列出金鑰值密碼的金鑰名稱
取得金鑰值密碼的金鑰名稱清單。 請勿將金鑰名稱中的機密性資訊編碼。 使用此指令無法存取金鑰的值。
vault kv list ibmcloud/kv
列出儲存在自訂密鑰群組中的金鑰值密鑰的金鑰名稱。
vault kv list ibmcloud/kv/GROUP_ID
必要條件
您需要 讀者 或 撰寫者 服務角色,才能讀取金鑰值密碼的金鑰名稱。
指令選項
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
列出儲存在 default 密鑰群組中的金鑰值密鑰的金鑰名稱。
vault kv list ibmcloud/kv
列出儲存在自訂密鑰群組中的金鑰值密鑰的金鑰名稱。
vault kv list ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8
輸出
用於列出 kv 密鑰之金鑰名稱的指令會傳回下列輸出:
Keys
----
my-updated-kv-secret
修補金鑰值密碼
修補金鑰值密碼的版本。
vault kv patch [-format=FORMAT] ibmcloud/kv/SECRET_NAME [KEY_VALUE_PAIRS]
在自訂群組中建立金鑰值密碼的版本。
vault kv patch [-format=FORMAT] ibmcloud/kv/GROUP_ID/SECRET_NAME [KEY_VALUE_PAIRS]
必要條件
您需要 撰寫者 服務角色,才能建立金鑰值密碼。
指令選項
- -格式
- 以您指定的格式列印輸出。 有效格式為
table、json及yaml。 預設值為table。 您也可以使用VAULT_FORMAT環境變數來設定輸出格式。
範例
建立或更新金鑰值密碼的有效負載。
vault kv patch ibmcloud/kv/example-kv-secret key1=value1 key2=value2
建立或更新自訂群組中金鑰值密碼的有效負載。
vault kv patch ibmcloud/kv/9426e546-83de-4da5-9631-d70c993186c8/example-kv-secret key1=value1 key2=value2
輸出
用於建立新版本 kv 密鑰的指令會傳回下列輸出:
Key Value
--- -----
created_time 2022-03-08T18:32:43.610242127Z
deletion_time n/a
destroyed false
version 2