擷取 Key Protect 的鍵清單
IBM® Key Protect for IBM Cloud® 提供集中化的系統,以便檢視、管理及審核您的加密金鑰。 請審核您的金鑰及金鑰的存取限制,以協助確保資源的安全性。
雖然您可以 為單一金鑰指定細緻的存取 權限,但 list keys API 不會傳回具有個別存取權限的金鑰。 換句話說,它不會傳回只有您才能存取的按鍵。 但是,呼叫此 API 會返回您可以存取的鑰匙圈中的鑰匙。 如果您可以存取實例中的所有鍵,您就可以看到所有鍵。 您可以按照 透過 IAM 檢視細粒度存取金鑰 中的指示,檢視具有個別存取權限的金鑰。 或者,使用 API 傳送特定的金鑰 ID。
最好定期審核您的金鑰配置:
-
檢查金鑰的建立時間,並決定是否應該輪替金鑰。
-
檢查哪些使用者可以存取金鑰,以及存取層次是否適當。
如需進一步了解如何稽核對您資源的存取權限,請參閱《 管理使用者存取權限 》。
在主控台中檢視金鑰
如果您偏好使用圖形介面來檢查服務中的金鑰,則可以使用 Key Protect 儀表板。
在建立金鑰或將現有金鑰匯入到服務之後,請完成下列步驟來檢視金鑰。
-
請前往「選單」>「資源清單」以檢視您的資源清單。
-
從 IBM Cloud 資源清單,選取已佈建的 Key Protect 實例。
-
按一下金鑰,以查看服務實例中所有金鑰的清單。 您可以透過以下方式管理表格檢視:
- 篩選金鑰 — 請使用表格篩選面板中的下拉式清單,依「金鑰狀態」(例如「已啟用」)或「金鑰圈 ID」進行篩選。
- 排序鍵 — 點擊欄位標題,即可依「最後輪替日期」等值進行排序。
- 搜尋金鑰 — 請使用搜尋欄,透過顯示名稱、金鑰 ID 或別名進行搜尋。 若要快速找到特定的金鑰,請透過其金鑰 ID 進行搜尋。
- 自訂欄位 — 點擊「設定」按鈕,選擇要顯示的欄位。
預設情況下,此表格會顯示以下欄位:
| 直欄 | 說明 |
|---|---|
| 名稱 | 您賦予鑰匙的顯示名稱。 |
| 金鑰 ID | Key Protect 服務已指派給您金鑰的唯一金鑰 ID。 您可以使用該 ID 值,透過 Key Protect API 向該服務發出呼叫。 |
| 金鑰環 ID | 與鑰匙相關的 鑰匙環。 這些狀態包括_停用_、刪除、停用_和_啟用。 |
| 前次輪替時間 | 前次輪替金鑰的日期。 |
| 金鑰別名 | 金鑰的 金鑰別名 (或別名)。 |
| 類型 | 金鑰的 金鑰類型 (根金鑰或標準金鑰)。 |
| 狀態 | 密鑰的 關鍵國家,是 停用, 刪除, 殘障,或 已啟用 之一。 |
表格中的其他可用欄位包括:
- Last modified(最後修改):指出金鑰最後一次以任何方式變更的時間。
- 建立日期:金鑰的建立日期。
- 已刪除: 顯示金鑰是否處於已刪除狀態 (等待清除)。
- Imported(導入):表示金鑰是否使用使用者提供的金鑰材料所建立。
- 旋轉政策:顯示此金鑰是否有附加的旋轉政策。
- 相關聯的資源: 顯示金鑰是否保護任何資源。
搜尋功能限制為 5000 個金鑰。 如果您有超過 5,000 個金鑰,但無法過濾到少於 5,000 個,除非完全符合金鑰 ID 或別名,否則搜尋會失敗。 例如,您可以依按鍵狀態篩選,以只顯示 Enabled 按鍵。 如需更多關於金鑰搜尋 API 規格的資訊,請參閱 GET /keys。
如果您想要縮小搜尋所返回結果的數目,請嘗試套用下列一個或多個參數:
not:指定時,會反轉搜尋使用的邏輯 (例如,not:foo會搜尋具有別名或名稱不包含foo的鍵 )。escape:此選項之後的所有內容都會被視為明文(例如:escape:not:會搜尋具有包含子串not:的別名或名稱的按鍵)。exact:只會尋找完全相符項。alias:只會尋找金鑰別名。name:只會尋找金鑰名稱。
not:exact:foobar 尋找鍵名或別名不完全是 foobar 的鍵,而 exact:not:foobar 尋找鍵名或別名完全是 not:foobar 的鍵。
搜尋範圍以 OR 方式運作。 這表示當使用一個以上的搜尋範圍時,至少有一個範圍的匹配會導致關鍵字被傳回。 依預設 (如果未提供任何範圍),會同時在 name 和 alias 範圍中執行搜尋。
看不到儲存在 Key Protect 實例中的完整金鑰清單? 請向管理員確認,您已為適用的 Key Protect 範例或個人金鑰指派正確的角色。 如需角色的相關資訊,請參閱角色及許可權。
依狀態擷取金鑰
透過過濾 Key Protect 實例中特定金鑰的狀態,您可以擷取處於指定狀態的金鑰。
例如,您可能在 Key Protect 實例中具有處於作用中、已暫停及已毀損狀態的金鑰,但您只想要在查看金鑰清單時擷取處於作用中狀態的金鑰。
如需金鑰狀態的相關資訊,請參閱 金鑰狀態及轉移。
在建立金鑰或將現有金鑰匯入至服務之後,您有兩個選項可檢視金鑰。 第一個選項「透過資源清單檢視鑰匙」適用於所有鑰匙,但具有 細粒度存取權限 的鑰匙除外。 有關檢視細粒度存取權限的資訊,請參閱 檢視細粒度存取權限 IAM。
透過資源清單檢視金鑰
-
請前往「選單」>「資源清單」以檢視您的資源清單。
-
從 IBM Cloud 資源清單,選取已佈建的 Key Protect 實例。
-
在「鍵盤」頁面上,點擊篩選圖示以開啟篩選面板。
-
從「狀態」下拉式選單中,選擇您要擷取的金鑰所處的關鍵狀態。
-
按一下套用按鈕。
-
此外,在表格列標題中,您可以按一下
Last updated,依最近更新表格中索引鍵的日期來排序清單,或按一下Type,將所有根索引鍵和標準索引鍵列為群組。
透過 IAM 檢視細部存取金鑰
-
從功能表列中,按一下 管理 > 存取權 (IAM),然後選取 使用者 以瀏覽帳戶中的現有使用者。
-
選取表格列,然後按一下 ... 圖示,以開啟該使用者的選項清單。 然後從下拉清單中選取 管理存取權。
-
在此您可以看到此使用者的所有 IAM 資訊,包括他們所屬的存取群組。 若要特別查看此使用者的存取原則,請按一下 存取原則 標籤。
帳戶擁有者或具有適當權限的使用者可以查看指定給此使用者的所有政策,包括對金鑰的任何細粒度存取。
使用 API 檢視金鑰
您可以使用 Key Protect API 擷取金鑰的內容。
擷取一組金鑰清單
如需高階視圖,您可以對下列端點發出 GET 呼叫,來瀏覽已佈建之 Key Protect 實例中管理的金鑰。
https://<region>.kms.cloud.ibm.com/api/v2/keys
-
執行下列
curl指令,以檢視金鑰的一般性質。$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/keys" \ -H "accept: application/vnd.ibm.collection+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "x-kms-key-ring: <key_ring_ID>" \ -H "correlation-id: <correlation_ID>"請根據表 1 中的資訊,替換範例請求中的變數。 如需檢視金鑰集合可用之選用參數的相關資訊 (包括搜尋金鑰的能力),請參閱 有關
List keys方法的 API 文件。
| 變數 | 說明 |
|---|---|
| 區域 | 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-south 或 eu-gb。 如需相關資訊,請參閱地區服務端點。 |
| key_ID_or_alias | 必填。 您要檢查之金鑰的唯一 ID 或別名。 |
| IAM_token | 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。 如需更多資訊,請參閱「取得存取憑證」。 |
| instance_id | 必填。 指派給您 Key Protect 服務實例的唯一 ID。 如需更多資訊,請參閱「檢索實例 ID」。 |
| key_ring_ID | 選用。 目標金鑰環的唯一 ID。 如果未指定,則回應包括使用者在指定實例中可存取的所有資源。 如果提供,則回應只包括使用者在指定的鑰匙圈中可以存取的資源。 如需相關資訊,請參閱 分組索引鍵。 |
| correlation_ID | 選用。 用來追蹤及關聯交易的唯一 ID。 |
成功的 GET api/v2/keys 要求會傳回您的 Key Protect 服務實例中可用的金鑰集合。
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 2
},
"resources": [
{
"id": "02fd6835-6001-4482-a892-13bd2085f75d",
"type": "application/vnd.ibm.kms.key+json",
"name": "Root-key",
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
"createdBy": "...",
"creationDate": "2020-03-11T16:30:06Z",
"lastUpdateDate": "2020-03-11T16:30:06Z",
"algorithmMetadata": {
"bitLength": "256",
"mode": "Deprecated"
},
"extractable": false,
"imported": true,
"algorithmMode": "Deprecated",
"algorithmBitSize": 256,
"dualAuthDelete": {
"enabled": false
}
},
{
"id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
"type": "application/vnd.ibm.kms.key+json",
"name": "Standard-key",
"state": 1,
"expirationDate": "2020-03-14T03:50:12Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:30372f20-d9f1-40b3-b486-a709e1932c9c:key:2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
"createdBy": "...",
"creationDate": "2020-03-12T03:50:12Z",
"lastUpdateDate": "2020-03-12T03:50:12Z",
"algorithmMetadata": {
"bitLength": "256",
"mode": "Deprecated"
},
"extractable": true,
"imported": false,
"algorithmMode": "Deprecated",
"algorithmBitSize": 256,
"dualAuthDelete": {
"enabled": false
}
}
]
}
預設情況下,GET api/v2/keys 會返回前 200 個金鑰,但您可以在查詢時使用 limit 參數來調整此限制。 若要進一步瞭解 limit 及 offset,請參閱擷取金鑰子集。
看不到完整的金鑰清單嗎? 您可能需要使用 limit 和 offset 或向您的管理員確認,以協助確保您在實例中被指派到正確的階層存取金鑰。 若要進一步瞭解,請參閱 無法檢視或列出金鑰。
擷取金鑰子集
在查詢時間指定 limit 及 offset 參數,即可擷取金鑰子集,並從您指定的 offset 值開始。
舉例來說,您的 Key Protect 實例中總共儲存了 3000 個金鑰,但當您發出 GET /keys 請求時,卻只想擷取第 200 至 300 個金鑰。
您可以使用下列範例要求來擷取一組不同的金鑰。
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys?offset=<offset>&limit=<limit>" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
根據下表,取代要求中的 limit 及 offset 變數。
| 變數 | 說明 |
|---|---|
| offset | 要跳過的金鑰數目。 例如,若您的實例中有 50 個金鑰,且您想列出第 26 至 50 個金鑰,請使用 ../keys?offset=25。 您也可以將「偏移量」與「限制」搭配使用,以逐頁瀏覽可用的資源。 |
| 限制 | 要擷取的金鑰數目。 例如,若您的實例中有 100 個金鑰,而您只想列出其中 10 個,請使用 ../keys?limit=10。 limit 的最大值為 5000。 |
偏移是資料集中特定金鑰的位置。 offset 值是以零起始,這表示資料集中的第 10 個加密金鑰位於偏移 9。
依狀態擷取金鑰
透過在查詢時指定 state 參數,您可以擷取處於指定狀態的索引鍵。
例如,您可能在 Key Protect 實例中具有處於作用中、已暫停及已毀損狀態的金鑰,但您只想要在發出 GET /keys 要求時擷取處於作用中狀態的金鑰。
狀態查詢參數接受 0 到 5 之間的整數清單,以逗點區隔,不含空格或尾端逗點。 如需金鑰狀態的相關資訊,請參閱 金鑰狀態及轉移。
您可以使用下列範例要求來擷取一組不同的金鑰。
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys?state=<state_integers>" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
根據下表,取代要求中的 state 變數。
| 變數 | 說明 |
|---|---|
| 狀態 | 待檢索的金鑰的狀態。 狀態為整數,其中 Pre-activation = 0、Active = 1、Suspended = 2、Deactivated = 3、Destroyed = 5。 例如,如果您只想列出 Key Protect 例程中處於活動狀態的按鍵,請使用 ../keys?state=1。 您也可以將狀態與偏移及限制配對,以透過可用資源進行分頁。 |
有關使用說明,請參閱以下範例,了解如何設定您的 state 查詢參數。
| URL | 說明 |
|---|---|
.../keys |
列出您所有可用的資源,最多顯示前 200 個金鑰。 |
.../keys?state=5 |
列出處於已刪除狀態的金鑰。 |
.../keys?state=2,3 |
列出處於已暫停及已取消啟動狀態的金鑰。 |
依可擷取值擷取索引鍵
透過在查詢時指定 extractable 參數,您可以擷取其資料可以離開服務的金鑰。
例如,您在 Key Protect 實例中可能同時具有標準和根金鑰,但您只想要在提出 GET /keys 要求時擷取具有可擷取金鑰資料的金鑰。
可擷取的查詢參數採用布林。
您可以使用下列範例要求來擷取一組不同的金鑰。
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys?extractable=<extractable>" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
根據下表,取代要求中的 extractable 變數。
| 變數 | 說明 |
|---|---|
| 可擷取 | 要擷取的金鑰類型。 根據可擷取的內容來過濾索引鍵。 您可以使用此查詢參數來搜尋其資料可以離開服務的索引鍵。 如果設定為 true,則會擷取標準按鍵。 如果設定為 false,會擷取根金鑰。 如果省略,會擷取根金鑰和標準金鑰。 例如,如果您只想列出 Key Protect 例程中具有可提取資料的鍵,請使用 ../keys?extractable=true。 您也可以將 extractable 與 offset、 limit 以及 state 搭配使用,以瀏覽可用的資源。 |
有關使用說明,請參閱以下範例,了解如何設定您的 extractable 查詢參數。
| URL | 說明 |
|---|---|
../keys |
列出您所有可用的資源,最多顯示前 200 個金鑰。 |
../keys?extractable=true |
列出標準金鑰。 |
../keys?extractable=false |
列出根金鑰。 |
對鍵值清單進行排序
在根據一個以上索引鍵內容傳回的查詢字串 排序金鑰清單 中使用 sort 參數。 若要以降序排序屬性,請在前綴加上「-」。若要依多個關鍵屬性排序,請使用逗號分隔每個屬性。 逗號分隔清單中的第一個屬性在下一個屬性之前進行評估。
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys?sort=<sort-value>" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
| 變數 | 說明 |
|---|---|
| 排序值 | 用於排序的內容清單。 目前可排序的關鍵屬性有 id, state, extractable, imported, creationDate, lastUpdateDate, lastRotateDate, deletionDate, expirationDate。 |