管理金鑰別名

您可以使用 Hyper Protect Crypto Services,以 Hyper Protect Crypto Services API 來管理金鑰別名。

金鑰別名是可用來識別金鑰的唯一人類可讀名稱。 別名可讓您的服務透過可辨識的自訂名稱來參照金鑰,而不是 Hyper Protect Crypto Services所提供的自動產生 ID。 假設您建立 ID 為 02fd6835-6001-4482-a892-13bd2085f75d 且別名為 US-South-Test-Key 的金鑰。 當您呼叫 Hyper Protect Crypto Services API 以 擷取金鑰 時,可以使用 US-South-Test-Key 來參照金鑰。

在 Hyper Protect Crypto Services中管理金鑰的金鑰別名之前,請記住下列考量:

  • 別名與金鑰無關。

    別名是它自己的資源,對它採取的任何動作都不會影響相關聯的金鑰。 例如,刪除別名並不會刪除相關聯的金鑰。

  • 別名一次只能與一個金鑰相關聯。

    別名只能與位於相同實例及地區中的一個金鑰相關聯。 如果您想要變更與別名相關聯的金鑰,則需要執行下列步驟:

    1. 刪除別名。
    2. 最多等待 10 分鐘。
    3. 重建別名並將它對映至金鑰。
  • 您可以在不同的實例或地區中建立同名的別名。

    每一個別名都與每一個實例或地區中的不同金鑰相關聯,您服務的應用程式碼可以在不同的實例或地區中重複使用。 例如,如果您將 us-southus-east 區域中的別名命名為 Application Key,且每一個別名都鏈結至不同的金鑰。

建立金鑰別名

若要建立金鑰的金鑰別名,您可以使用使用者介面或金鑰管理服務 API。

每一個金鑰最多可以有五個別名。 每個實例限制為 1,000 個別名。

使用使用者介面建立金鑰別名

完成下列步驟,以使用使用者介面建立金鑰別名:

  1. 登入使用者介面

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

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

  4. 選取側邊功能表中的 KMS 金鑰 標籤,並尋找您要為其建立金鑰別名的金鑰。

  5. 按一下 動作 圖示 「動作」圖示,以開啟金鑰的選項清單,然後按一下 編輯金鑰別名

  6. 輸入以逗點區隔的金鑰別名。 您最多可以為金鑰新增五個別名。

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

  7. 按一下儲存

使用 API 建立金鑰別名

對下列端點發出 POST 呼叫,以建立金鑰別名。

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

    若要建立金鑰別名,您必須獲指派 管理員撰寫者 服務存取角色。 瞭解 IAM 角色如何對映至 Hyper Protect Crypto Services 服務動作,請參閱 服務存取角色

  2. 執行下列 curl 指令來建立金鑰別名。

    $ curl -X POST \
        "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/aliases/<key_alias>" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "content-type: application/vnd.ibm.kms.key+json" \
        -H "correlation-id: <correlation_ID>"
    

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

    表 1. 說明使用 Hyper Protect Crypto Services API 建立金鑰別名所需的變數
    變數 說明
    region 必要。 代表 Hyper Protect Crypto Services 實例所在地理區域的區域縮寫,例如 us-south。 如需相關資訊,請參閱地區服務端點
    port 必要。 API 端點的埠號。
    key_ID 必要。 您要與別名相關聯的金鑰 ID。 若要擷取金鑰 ID,請參閱 列出金鑰 API
    key_alias 必要。 方便識別金鑰且人類可閱讀的唯一名稱。 每一個別名都必須是英數、區分大小寫,且不能包含橫線 (-) 或底線 (_) 以外的空格或特殊字元。 別名不能是第 4 版 UUID ,且不能是 Hyper Protect Crypto Services 保留名稱: allowed_ipkeykeysmetadatapolicypoliciesregistrationregistrationsringringsrotatewrapunwraprewrapversionversions。 別名大小可以是 2-90 個字元 (內含)。

    附註: Hyper Protect Crypto Services 實例中不能有重複的別名。

    IAM_token 必要。 您的 IBM Cloud 存取記號。 在 curl 要求中包含 IAM 記號的完整內容,包括 Bearer 值。 如需相關資訊,請參閱 擷取存取記號
    instance_ID 必要。 指派給您 Hyper Protect Crypto Services 服務實例的唯一 ID。 如需相關資訊,請參閱 擷取實例 ID
    correlation_ID 用來追蹤及關聯交易的唯一 ID。

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

    成功的 POST api/v2/keys/<key_ID>/aliases/<key_alias> 回應會傳回金鑰的別名,以及其他 meta 資料。 別名是指派給金鑰的唯一名稱,可用來擷取相關聯金鑰的相關資訊。

    {
        "metadata": {
            "collectionType": "application/vnd.ibm.kms.key+json",
            "collectionTotal": 1
        },
        "resources": [
            {
                "keyId": "02fd6835-6001-4482-a892-13bd2085f75d",
                "alias": "test-alias",
                "creationDate": "2020-03-12T03:37:32Z",
                "createdBy": "..."
            }
        ]
    }
    

    如需回應參數的詳細說明,請參閱 Hyper Protect Crypto Services REST API 參考資料文件

刪除金鑰別名

若要移除金鑰的金鑰別名,您可以使用使用者介面或金鑰管理服務 API。

使用使用者介面刪除金鑰別名

完成下列步驟,以利用使用者介面來刪除金鑰別名:

  1. 登入使用者介面
  2. 移至 功能表 > 資源清單,以檢視資源清單。
  3. 從 IBM Cloud 資源清單,選取已佈建的 Hyper Protect Crypto Services 實例。
  4. 選取側邊功能表中的 KMS 金鑰 標籤,並尋找您要為其建立金鑰別名的金鑰。
  5. 按一下 動作 圖示 「動作」圖示,以開啟金鑰的選項清單,然後按一下 編輯金鑰別名
  6. 刪除您要移除的金鑰別名,然後按一下 儲存

使用 API 刪除金鑰別名

對下列端點發出 DELETE 呼叫,以刪除金鑰別名。

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

  2. 執行下列 curl 指令,以刪除金鑰別名。

    $ curl -X DELETE \
        "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/aliases/<key_alias>" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "content-type: application/vnd.ibm.kms.key+json" \
        -H "correlation-id: <correlation_ID>"
    

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

    表 2. 說明使用 Hyper Protect Crypto Services API 刪除金鑰別名所需的變數
    變數 說明
    region 必要。 代表 Hyper Protect Crypto Services 實例所在地理區域的區域縮寫,例如 us-south。 如需相關資訊,請參閱地區服務端點
    port 必要。 API 端點的埠號。
    key_ID 必要。 金鑰的唯一 ID。
    key_alias 必要。 識別您金鑰的唯一人類可讀名稱。
    IAM_token 必要。 您的 IBM Cloud 存取記號。 在 curl 要求中包含 IAM 記號的完整內容,包括 Bearer 值。 如需相關資訊,請參閱 擷取存取記號
    instance_ID 必要。 指派給您 Hyper Protect Crypto Services 服務實例的唯一 ID。 如需相關資訊,請參閱 擷取實例 ID
    correlation_ID 用來追蹤及關聯交易的唯一 ID。

    成功的 DELETE api/v2/keys/<key_ID>/aliases/<key_alias> 要求會傳回 HTTP 204 No Content 回應,指出已刪除與金鑰相關聯的別名。

    從服務中刪除別名最多需要 10 分鐘。

使用金鑰別名的 API

下表列出您可以在其中使用金鑰別名的 API。

表 3. 說明使用金鑰別名的 API 變數。
API 金鑰別名影響
建立根金鑰。 在建立根金鑰時,您最多可以建立五個別名。
建立標準金鑰。 在建立標準金鑰時,您最多可以建立五個別名。
擷取金鑰。 您可以依 ID 或別名來擷取金鑰。
檢視金鑰 meta 資料 您可以依 ID 或別名來擷取金鑰的 meta 資料。