使用金鑰管理互通協定 (KMIP)
IBM® Key Protect for IBM Cloud® 提供對金鑰管理互通性協定(KMIP)的原生支援,讓您能夠透過 Key Protect 控制台直接建立 KMIP 轉接器並上傳憑證。
本解決方案說明了 Key Protect 原生KMIP支援架構,用於保護您的 VMware® 實例。Key Protect 原生KMIP支援功能可與 VMware 原生 vSphere 加密及 vSAN™ 加密配合使用,在提供簡化儲存加密管理的同时,兼具 IBM Cloud® Key Protect 客戶自管金鑰所具備的安全性與靈活性。
此解決方案是 IBM Cloud 網站上「VMware」服務所提供之 KMIP 的替代方案。 本文件未涵蓋這些基礎解決方案的設定。 如需進一步了解基礎架構解決方案的架構,請參閱 《 VMware Solutions 概覽》。
此功能與現行適用於 VMware 的 KMIP 解決方案並行運作。 您無法將使用「VMware」解決方案所建立的轉接器匯入至「Key Protect」,反之亦然。
好處
Key Protect 原生 KMIP 支援提供以下優勢:
- VMware 認證
- Key Protect 中的 KMIP 支援已 通過 VMware 認證,並可直接與任何接受透過 KMIP KMS 伺服器進行加密的服務或平台整合。 KMIP 支援功能已整合至 Key Protect 並由該網站管理,因此無需第三方 KMIP 伺服器支援。
- 虛擬化平台層級的加密
- 透過與「VMware」vSAN 加密及「vSphere」加密的整合,可在超管理程式層級進行加密,而非在儲存裝置或虛擬機器層級進行加密。 此方法不僅簡化了管理流程,更能為您的儲存解決方案與應用程式提供透明度。
- 全託管服務
- 金鑰管理伺服器為全託管服務,並可在多個 IBM Cloud 多區域(MZR)中使用。
- 由客戶管理的金鑰
- 您對自己的加密金鑰擁有完全的控制權,並可隨時撤銷這些金鑰。
- 符合成本效益
- KMIP 對稱金鑰是 按單一金鑰版本計費,因此您只需為實際使用的部分付費。
建立適配器
單一實例上最多可以建立 200 個適配器。 每個適配器最多可以有 200 個與其關聯的憑證。
KMIP 適配器是使用Key Protect根金鑰建立的。 如果您沒有根密鑰,請建立一個.
開始之前,請確認您在該執行個體上擁有「Manager」或「KmipAdapterManager」角色。
建立適配器:
-
在導覽選單中,點選「KMIP 轉接器」。 若這是您使用的第一個轉接器,則該表格為空。
-
按一下建立。
-
請在側邊欄中提供以下資訊:
- 名稱- 輸入適配器的名稱(2 至 40 個字元)。
- 說明 (可選)— 輸入適配器的說明(2 至 240 個字元)。
- 根鍵- 選擇要在此適配器上使用的根鍵。 根金鑰會對適配器所建立的 KMIP 金鑰進行加密。 您的根金鑰必須處於「
active」狀態,您的適配器才能正常運作。
-
可選:新增一個公開的 TLS 憑證,以允許對應私有憑證的持有者透過 KMIP 適配器與 Key Protect 進行通訊。 只有經授權的憑證才能針對您的實例發出 KMIP 協定請求。
要新增憑證:
- 按一下新增。
- 請輸入憑證的名稱。
- 請以「PEM」格式輸入憑證內容,並包含
BEGIN CERTIFICATE和END CERTIFICATE標籤。 - 點擊「新增憑證」。
憑證關聯設定可能需要幾分鐘時間。 在 Key Protect 區域中,每張憑證只能與單一適配器關聯。
透過 KMIP 協定管理的資源無法透過 HTTP API 存取。
請妥善保管任何上傳憑證的私密金鑰。 任何上傳至 KMIP 適配器的憑證,皆可執行所有受支援的 KMIP 操作。
配置 KMIP 用戶端與適配器通訊
若要與您的適配器進行通訊,您必須 設定 VMware,或建立一個 KMIP 客戶端,該客戶端能夠透過 TCP 與 mTLS 進行通訊,並 依照 KMIP 規格所述, 使用 TTLV 訊息格式傳送訊息。
若要使用 VMware vSphere,請依照 《使用 vSphere 客戶端新增標準金鑰提供者》 中的步驟操作。 當您新增標準金鑰提供者時,請使用您實例所在區域專屬的 Key Protect 端點。
例如,對於位於 us-south 區域的 Key Protect 實例,請使用 us-south.kms.cloud.ibm.com 作為位址,並將 5696 設為埠號。
vSphere 客戶端必須將其客戶端憑證上傳至適配器,才能與 KMIP 適配器進行通訊。 請依照《 使用憑證選項建立標準金鑰提供者可信連線 》中的步驟下載客戶端憑證,然後將其上傳至適配器。
授予對 KMIP 的存取權限
檢閱 角色和權限,瞭解 IBM Cloud IAM 角色如何映射到 Key Protect 動作。
以下 IAM 作業管理將用於管理對 KMIP 資源的存取的資源:
kms.kmip-management.createkms.kmip-management.listkms.kmip-management.readkms.kmip-management.delete
每個操作都會向實例中的所有 kmip_adapter certificate 和 kmip_object 資源授予所提到的行為,沒有粒度。
查看和更新適配器詳細信息
「適配器詳細資訊」面板會顯示有關適配器的資訊,並讓您執行諸如新增憑證等操作。
要查看轉接器的詳細資訊:
- 點擊該轉接器的動作選單(⋯)。
- 選擇「詳細資訊」。
「詳細資訊」面板會顯示適配器的名稱、說明、相關的 KMIP 對稱金鑰,以及已上傳的憑證。 您也可以從此面板上傳其他憑證。
無法透過控制台刪除 KMIP 對稱金鑰。 若要刪除金鑰,請使用 CLI。 僅能刪除未處於「Active」狀態(狀態代碼為 1 )的 KMIP 對稱金鑰。 若適配器中含有處於「Active」狀態的金鑰,則無法刪除該適配器。
每個適配器的資源均由一個根金鑰進行保護。 您無法刪除目前處於活躍狀態且與適配器相關聯的根金鑰。
建立的每個 KMIP 對稱金鑰都算為單一金鑰版本,並產生 一個金鑰版本的費用。 刪除 KMIP 對稱金鑰的動作將無法撤銷。
KMIP 支援的物件和操作
請參閱 KMIP 版本 1.4 文件中的 Result Reason,以瞭解預期失敗的原因,例如針對不支援的作業的請求。
KMIP 支援的操作
僅支援以下操作。
| 區段 | 作業 | 摘要 |
|---|---|---|
| 4.1 | 建立 | 建立一個 KMIP 物件。 |
| 4.9 | 尋找 | 搜尋符合指定條件或屬性元資料的物件。 |
| 4.11 | 取得 | 擷取物件資訊,具體而言即金鑰資料。 |
| 4.12 | 取得屬性 | 擷取有關該物件的屬性元資料。 |
| 4.14 | 新增屬性 | 向物件新增屬性元資料。 |
| 4.19 | 啟動 | 將物件設定為「活躍」狀態。 該物件在處於活躍狀態時無法被銷毀。 |
| 4.20 | 撤銷 | 若撤銷原因代碼為「金鑰外洩」或「憑證授權機構外洩」,則將該物件設定為「已遭洩露」狀態。 否則,將該物件設定為「已停用」狀態。 |
| 4.21 | 毀損 | 銷毀該物件的金鑰資料。 這個動作無法回復。 |
| 4.26 | 探索各版本 | 向伺服器查詢支援的 KMIP 協定版本。 僅會回傳 v1.4。 |
支援的對象
| 區段 | 物件 |
|---|---|
| 2.2 | 對稱金鑰 |
在 API 中建立和使用 KMIP 適配器
本節說明如何在 API 中使用符合 native_1.0 規格的 KMIP 適配器,內容包含新增與移除 KMIP 客戶端憑證,以及檢視與刪除 KMIP 物件。
您可以透過對下列端點進行 POST 呼叫來建立 KMIP 適配器。
https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters
對 KMIP 適配器子資源(包括 KMIP 用戶端憑證和 KMIP 物件)的操作將在下列端點中進行:
https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>/certificates
https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>/kmip_objects
-
複製要用於建立 KMIP 適配器的根密鑰的 ID。
您可以在您的 透過 檢索金鑰清單 或存取Key Protect來實作Key Protect實例 儀表板。
-
使用以下
curl命令建立 KMIP 適配器:$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_adapter+json" \ -d '{ "metadata": { "collectionType": "application/vnd.ibm.kms.kmip_adapter+json", "collectionTotal": 1 }, "resources": [ { "name": "<adapter_name>", "description": "<adapter_description>", "profile": "native_1.0", "profile_data": { "crk_id": "<root_keyID_or_alias>" } } ] }'根據下表取代範例要求中的變數。
| 變數 | 說明 |
|---|---|
| 區域 | 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-south 或 eu-gb。如需相關資訊,請參閱地區服務端點。 |
| root_keyID_or_alias | 必填。 您要用於該適配器的根金鑰之唯一識別碼或別名。 |
| IAM_token | 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。 如需更多資訊,請參閱「取得存取憑證」。 |
| instance_id | 必填。 分配給您的 Key Protect 服務實例的唯一識別碼。 如需更多資訊,請參閱「檢索實例 ID」。 |
| 適配器名稱 | 選用。 KMIP 適配器的人類可讀名稱在 kms 實例中是唯一的。 如果未指定,則將自動產生格式為 kmip_adapter_<random_string> 的一個。 為保護您的隱私,請勿將個人資料(例如您的姓名或位置)用作 KMIP 適配器的名稱。 該名稱必須是字母數字,且不能包含空格或除 - 或 _ 之外的特殊字元。該名稱不能是 UUID。 |
| 適配器描述 | 選用KMIP 適配器的描述。 最長長度為 240 個字元。 為保護您的隱私,請勿將個人資料(例如您的姓名或位置)用作 KMIP 轉接器的描述。 |
-
可選:您可以使用下列
curl命令列出實例中存在的 KMIP 適配器:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_adapter+json"您也可以使用以下
curl命令來取得特定的 KMIP 適配器:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_adapter+json"請注意,您可以使用適配器的 UUID 或適配器的名稱來取得特定的適配器。
-
您可以使用以下
curl命令刪除 KMIP 適配器:$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_adapter+json"只有刪除了適配器下的所有 KMIP 物件時,才能刪除 KMIP 適配器。
將 KMIP 用戶端憑證新增至 KMIP 適配器
建立 KMIP 轉接器後,您可以新增 KMIP 客戶端憑證,並將其與該轉接器關聯。 憑證註冊完成後,您即可依照 KMIP 規格所述,使用 mTLS 與 KMIP 伺服器進行通訊。 證書註冊可能需要長達五分鐘。 證書在同一區域內必須是唯一的。
-
確定您想要新增憑證的 KMIP 轉接器。
-
使用以下
curl指令新增 KMIP 用戶端憑證:$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/certificates" \ -H "accept: application/vnd.ibm.kms.kmip_client_certificate+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_client_certificate+json" \ -d '{ "metadata": { "collectionType": "application/vnd.ibm.kms.kmip_client_certificate+json", "collectionTotal": 1 }, "resources": [ { "certificate": "<certificate_pem>", "name": "<certificate_name>" } ] }'根據下表取代範例要求中的變數。
| 變數 | 說明 |
|---|---|
| 區域 | 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-south 或 eu-gb。如需相關資訊,請參閱地區服務端點。 |
| 適配器 ID | 必填。 您想要用來註冊憑證的 KMIP 適配器的唯一識別碼或名稱。 |
| IAM_token | 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。 如需更多資訊,請參閱「取得存取憑證」。 |
| instance_id | 必填。 分配給您的 Key Protect 服務實例的唯一識別碼。 如需更多資訊,請參閱「檢索實例 ID」。 |
| 證書_pem | 必需KMIP 用戶端憑證的內容。 它必須是 x509 PEM 格式。 它應該明確具有 BEGIN CERTIFICATE 和 END CERTIFICATE 標籤。 |
| certificate_name | 選用。 人類可讀的名稱,唯一標識給定適配器內的憑證。 如果未指定,則將自動產生格式為 kmip_cert_<random_string> 的一個。 為保護您的隱私,請勿將個人資料(例如您的姓名或位置)用作 KMIP 適配器的名稱。 該名稱必須是字母數字,且不能包含空格或除 - 或 _ 之外的特殊字元。該名稱不能是 UUID。 |
-
可選:您可以使用以下
curl命令列出與適配器關聯的 KMIP 用戶端憑證:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/certificates" \ -H "accept: application/vnd.ibm.kms.kmip_client_certificate+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"您也可以使用下列
curl命令取得特定的 KMIP 用戶端憑證:$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/certificates/<certificate_name_or_id>" \ -H "accept: application/vnd.ibm.kms.kmip_client_certificate+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"請注意,您可以使用憑證的 UUID 或憑證的名稱來取得特定適配器。
-
您可以使用以下
curl指令刪除 KMIP 用戶端憑證:$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"只有刪除了適配器下的所有 KMIP 物件時,才能刪除 KMIP 適配器。
檢視和刪除適配器內的 KMIP 對象
KMIP 物件無法透過 REST API 創建,但可以查看和刪除。
-
確定您想要新增憑證的 KMIP 轉接器。
-
您可以使用以下
curl指令查看 KMIP 適配器中的 KMIP 物件:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/kmip_objects" \ -H "accept: application/vnd.ibm.kms.kmip_object+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" -
您可以使用以下
curl指令查看 KMIP 適配器中的特定 KMIP 物件:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/kmip_objects/<object_id>" \ -H "accept: application/vnd.ibm.kms.kmip_object+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" -
您可以使用以下
curl指令刪除 KMIP 適配器中的特定 KMIP 物件:$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/kmip_objects/<object_id>" \ -H "accept: application/vnd.ibm.kms.kmip_object+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"其中
<object_id>是 KMIP 物件的 UUID。 您無法刪除處於活動 ( state=2 ) 狀態的 KMIP 物件。