匯入標準金鑰

您可以使用使用者介面或以程式化方式使用 Hyper Protect Crypto Services 金鑰管理服務 API 來新增現有的加密金鑰。

使用使用者介面匯入標準金鑰

在建立服務的實例之後,請完成下列步驟以使用 Hyper Protect Crypto Services GUI 來輸入現有標準金鑰。

  1. 登入使用者介面

  2. 移至 功能表 > 資源清單,以檢視資源清單。

  3. 從 IBM Cloud 資源清單,選取已佈建的 Hyper Protect Crypto Services 實例。

  4. 若要匯入金鑰,請選取側邊功能表中的 KMS 金鑰 標籤。

  5. 在「金鑰」表格中,按一下 新增金鑰,然後選取 匯入金鑰

    指定金鑰的詳細資料:

    表 1. 說明匯入標準金鑰的設定
    設定 說明
    金鑰類型 您想要在 Hyper Protect Crypto Services 中管理的金鑰類型。 從金鑰類型清單中,選取 標準金鑰
    金鑰名稱 方便識別金鑰且人類可閱讀的唯一別名。 若要保護您的隱私權,請確定金鑰名稱未包含個人識別資訊 (PII)(例如您的姓名或位置)。
    金鑰別名 (選用) 您要指派給金鑰的一或多個唯一、人類可讀的別名,以方便辨識。 別名大小可以是 2-90 個字元。 您可以為金鑰設定最多五個金鑰別名,每個別名以逗點區隔。

    附註: 每一個別名都必須是英數、區分大小寫,且不能包含橫線 (-) 或底線 (_) 以外的空格或特殊字元。別名不能是第 4 版 UUID,且不能是 Hyper Protect Crypto Services 保留名稱: allowed_ipkeykeysmetadatapolicypoliciesregistrationregistrationsringringsrotatewrapunwraprewrapversionversions

    金鑰環 ID 從清單中選取包含現有金鑰環的金鑰環。 如果您未指派金鑰環,則會將金鑰新增至 default 金鑰環。 如需金鑰環的相關資訊,請參閱 管理金鑰環
    金鑰資料

    您要在服務中管理並以 base64 編碼的金鑰資料(例如對稱金鑰)。 如需相關資訊,請參閱 Base64 編碼金鑰資料。 請確定金鑰資料符合下列需求:

    • 金鑰最多可以有 7,500 個位元組。
    • 金鑰必須以 base64-encoded。
    到期日 (選用) 設定金鑰到期的日期和時間。 在到期日之後,金鑰會進入「已停用」狀態。 如需金鑰狀態的相關資訊,請參閱 監視加密金鑰的生命週期
    說明 (選用) 新增金鑰的延伸說明。 長度必須為 2 到 240 個字元。
  6. 當您完成填寫金鑰的詳細資料時,請按一下 匯入金鑰 以確認。

使用 API 匯入標準金鑰

對下列端點發出 POST 呼叫來匯入標準金鑰:

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys
  1. 擷取服務及鑑別認證以在服務中使用金鑰

  2. 使用下列 cURL 指令呼叫 Hyper Protect Crypto Services 金鑰管理服務 API

    curl -X POST \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'content-type: application/vnd.ibm.kms.key+json' \
      -H 'correlation-id: <correlation_ID>' \
      -H 'prefer: <return_preference>' \
      -d '{
     "metadata": {
       "collectionType": "application/vnd.ibm.kms.key+json",
       "collectionTotal": 1
     },
     "resources": [
       {
       "type": "application/vnd.ibm.kms.key+json",
       "name": "<key_alias>",
       "description": "<key_description>",
       "expirationDate": "<YYYY-MM-DDTHH:MM:SS.SSZ>",
       "payload": "<key_material>",
       "extractable": <key_type>
       }
     ]
    }'
    

    根據下表取代範例要求中的變數。

    表 2. 說明使用 Hyper Protect Crypto Services 金鑰管理服務 API 新增標準金鑰所需的變數。
    變數 說明
    region 代表 Hyper Protect Crypto Services 服務實例所在地理區域的地區縮寫,例如 us-southau-syd。 如需相關資訊,請參閱地區服務端點
    port 必要。 API 端點的埠號。
    IAM_token 您的 IBM Cloud 存取記號。 請在 cURL 要求中包含 IAM 記號的完整內容,包括 Bearer 值。 如需相關資訊,請參閱 擷取存取記號
    instance_ID 指派給您 Hyper Protect Crypto Services 服務實例的唯一 ID。 如需相關資訊,請參閱 擷取實例 ID
    correlation_ID 用來追蹤及關聯交易的唯一 ID。
    return_preference 選用: 這個標頭會變更 POSTDELETE 作業的伺服器行為。 當您將 return_preference 變數設為 return=minimal 時,服務只會傳回回應實體內文中的索引鍵 meta 資料,例如索引鍵名稱及 ID 值。 當您將變數設為 return=representation 時,服務會傳回金鑰資料及金鑰 meta 資料。
    key_alias 方便識別金鑰且人類可閱讀的唯一名稱。

    重要事項:若要保護您的隱私權,請不要將個人資料儲存為金鑰的 meta 資料。
    key_description 選用項目:金鑰的延伸說明。

    重要事項:若要保護您的隱私權,請不要將個人資料儲存為金鑰的 meta 資料。
    YYYY-MM-DD

    HH:MM:SS.SS

    選用項目:系統中的金鑰到期的日期和時間,以 RFC 3339 格式表示。 如果省略 expirationDate 屬性,則金鑰不會到期。
    key_material 您要在服務中管理並以 base64 編碼的金鑰資料(例如對稱金鑰)。 如需相關資訊,請參閱 Base64 編碼金鑰資料

    確定金鑰資料符合下列需求:

    * 金鑰最多可以有 7,500 個位元組。
    * 金鑰必須以 base64-encoded。
    key_type 決定金鑰資料是否可以離開服務的布林值。

    當您將 extractable 屬性設為 true 時,服務會將金鑰指定為您可以儲存在應用程式或服務中的標準金鑰。

    若要保護您個人資料的機密性,請在將金鑰新增至服務時避免輸入個人識別資訊 (PII)(例如您的姓名或位置)。 如需 PII 的其他範例,請參閱 NIST 特殊出版品 800-122的 2.2 小節。

    成功的 POST /v2/keys 回應會傳回您金鑰的 ID 值,以及其他 meta 資料。 ID 是指派給金鑰的唯一 ID,用於後續呼叫 Hyper Protect Crypto Services 金鑰管理服務 API。

  3. 選用項目:執行下列呼叫來取得 Hyper Protect Crypto Services 服務實例中的金鑰,確認已新增金鑰。

    curl -X GET \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys \
      -H 'accept: application/vnd.ibm.collection+json' \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'correlation-id: <correlation_ID>' \
    

使用 CLI 匯入標準金鑰

完成下列步驟,以匯入使用 Key Protect CLI (整合在 Hyper Protect Crypto Services中) 的標準金鑰:

  1. 設定 Key Protect CLI

  2. 使用下列指令匯入標準金鑰:

    ibmcloud kp key create
    

    您可以在 Key Protect CLI 參考資料 中找到此指令的額外參數。

Base64 編碼金鑰資料

當您匯入現有的標準金鑰時,必須包含您要在服務中儲存及管理的加密金鑰資料。

使用 OpenSSL 來編碼現有的金鑰資料

  1. 下載並安裝 OpenSSL

  2. 執行下列指令,以 Base64 編碼金鑰資料字串:

    $ openssl base64 -in <infile> -out <outfile>
    

    根據下表取代範例要求中的變數。

    表 3. 說明 base64 編碼金鑰資料所需的變數
    變數 說明
    infile 金鑰資料字串所在檔案的名稱。
    outfile 執行指令時,在其中建立 base64-encoded 金鑰資料的檔案名稱。

    如果您要直接在指令行而非檔案中輸出 base64 資料,請執行指令 openssl enc -base64 <<< '<key_material_string>',其中 key_material_string 是所匯入金鑰的金鑰資料輸入。

使用 OpenSSL 來建立及編碼新的金鑰資料

  1. 下載並安裝 OpenSSL

  2. 執行下列指令,以 Base64 編碼金鑰資料字串:

    $ openssl rand <byte_length> -base64
    

    將範例要求中的 byte_length 變數取代為金鑰長度 (以位元組為單位測量)。 可接受的位元組長度最多可以為 7,500 個位元組。

下一步

若要進一步瞭解如何以程式化方式管理金鑰,請參閱 Hyper Protect Crypto Services 金鑰管理服務 API 參考資料文件