使用金鑰管理互通協定 (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」角色

建立適配器:

  1. 在導覽選單中,點選「KMIP 轉接器」。 若這是您使用的第一個轉接器,則該表格為空。

  2. 按一下建立

  3. 請在側邊欄中提供以下資訊:

    • 名稱- 輸入適配器的名稱(2 至 40 個字元)。
    • 說明 (可選)— 輸入適配器的說明(2 至 240 個字元)。
    • 根鍵- 選擇要在此適配器上使用的根鍵。 根金鑰會對適配器所建立的 KMIP 金鑰進行加密。 您的根金鑰必須處於「active」狀態,您的適配器才能正常運作。
  4. 可選:新增一個公開的 TLS 憑證,以允許對應私有憑證的持有者透過 KMIP 適配器與 Key Protect 進行通訊。 只有經授權的憑證才能針對您的實例發出 KMIP 協定請求。

    要新增憑證:

    1. 按一下新增
    2. 請輸入憑證的名稱。
    3. 請以「PEM」格式輸入憑證內容,並包含 BEGIN CERTIFICATEEND CERTIFICATE 標籤。
    4. 點擊「新增憑證」。

    憑證關聯設定可能需要幾分鐘時間。 在 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.create
  • kms.kmip-management.list
  • kms.kmip-management.read
  • kms.kmip-management.delete

每個操作都會向實例中的所有 kmip_adapter certificatekmip_object 資源授予所提到的行為,沒有粒度。

查看和更新適配器詳細信息

「適配器詳細資訊」面板會顯示有關適配器的資訊,並讓您執行諸如新增憑證等操作。

要查看轉接器的詳細資訊:

  1. 點擊該轉接器的動作選單(⋯)。
  2. 選擇「詳細資訊」。

「詳細資訊」面板會顯示適配器的名稱、說明、相關的 KMIP 對稱金鑰,以及已上傳的憑證。 您也可以從此面板上傳其他憑證。

無法透過控制台刪除 KMIP 對稱金鑰。 若要刪除金鑰,請使用 CLI。 僅能刪除未處於「Active」狀態(狀態代碼為 1 )的 KMIP 對稱金鑰。 若適配器中含有處於「Active」狀態的金鑰,則無法刪除該適配器。

每個適配器的資源均由一個根金鑰進行保護。 您無法刪除目前處於活躍狀態且與適配器相關聯的根金鑰。

建立的每個 KMIP 對稱金鑰都算為單一金鑰版本,並產生 一個金鑰版本的費用。 刪除 KMIP 對稱金鑰的動作將無法撤銷。

KMIP 支援的物件和操作

請參閱 KMIP 版本 1.4 文件中的 Result Reason,以瞭解預期失敗的原因,例如針對不支援的作業的請求。

KMIP 支援的操作

僅支援以下操作。

支援的 KMIP 操作
區段 作業 摘要
4.1 建立 建立一個 KMIP 物件。
4.9 尋找 搜尋符合指定條件或屬性元資料的物件。
4.11 取得 擷取物件資訊,具體而言即金鑰資料。
4.12 取得屬性 擷取有關該物件的屬性元資料。
4.14 新增屬性 向物件新增屬性元資料。
4.19 啟動 將物件設定為「活躍」狀態。 該物件在處於活躍狀態時無法被銷毀。
4.20 撤銷 若撤銷原因代碼為「金鑰外洩」或「憑證授權機構外洩」,則將該物件設定為「已遭洩露」狀態。 否則,將該物件設定為「已停用」狀態。
4.21 毀損 銷毀該物件的金鑰資料。 這個動作無法回復。
4.26 探索各版本 向伺服器查詢支援的 KMIP 協定版本。 僅會回傳 v1.4。

支援的對象

受支援的 KMIP 物件
區段 物件
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
  1. 檢索身份驗證憑證以使用服務中的金鑰。

  2. 複製要用於建立 KMIP 適配器的根密鑰的 ID。

    您可以在您的 透過 檢索金鑰清單 或存取Key Protect來實作Key Protect實例 儀表板。

  3. 使用以下 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中建立 KMIP 適配器所需的變數。
變數 說明
區域 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-southeu-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 轉接器的描述。
  1. 可選:您可以使用下列 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 或適配器的名稱來取得特定的適配器。

  2. 您可以使用以下 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 伺服器進行通訊。 證書註冊可能需要長達五分鐘。 證書在同一區域內必須是唯一的。

  1. 檢索身份驗證憑證以使用服務中的金鑰。

  2. 確定您想要新增憑證的 KMIP 轉接器。

  3. 使用以下 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中建立 KMIP 用戶端憑證所需的變數。
變數 說明
區域 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-southeu-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。
  1. 可選:您可以使用以下 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 或憑證的名稱來取得特定適配器。

  2. 您可以使用以下 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 創建,但可以查看和刪除。

  1. 檢索身份驗證憑證以使用服務中的金鑰。

  2. 確定您想要新增憑證的 KMIP 轉接器。

  3. 您可以使用以下 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>"
    
  4. 您可以使用以下 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>"
    
  5. 您可以使用以下 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 物件。