將 VPC Block Storage 從 HPCS 遷移到 Key Protect

將 Hyper Protect Crypto Services (HPCS) 加密的 VPC Block Storage 磁碟區遷移至使用 IBM Key Protect ( Key Protect ) 取代。

開始之前

如果您尚未這樣做,請檢閱 移動概述 中的資訊,以確定是否需要將 VPC 區塊儲存卷遷移至使用 Key Protect,而非 HPCS。

遷移的先決條件

開始遷移之前,請完成這些步驟。

  1. 建立新的 或使用現有的 IBM Key Protect Dedicated 範例。

  2. 從 Key Protect 範例,注意目的地的客戶根金鑰 (CRK) CRN。

    ibmcloud kp keys -i KP-INSTANCE-ID
    
  3. 確保 VPC Block Storage 對 Key Protect 實例具有讀取存取權。 您可能需要 使用 IAM 指定存取權限。 此存取可以是跨帳戶的,且在繼續之前必須正確設定。

  4. 如果您尚未執行,下載遷移工具

移轉步驟

請遵循以下步驟,將您的 VPC Block Storage 磁碟區從 HPCS 遷移到 Key Protect。

  1. 建立 CSV 檔案,將您的來源 HPCS CRK 對映至目的地 Key Protect CRK。

    1. 取得您的 HPCS 根金鑰的 CRN。
        ibmcloud resource service-instance <hpcs-instance-name>
        ```
    2. 取得 Key Protect root 金鑰的 CRN。
    
    ```sh {: pre}
        ibmcloud resource service-instance <kp-instance-name>
        ```
    3. 建立 CSV 檔案 (例如 `hpcs-kms-migration.csv`),格式如下:
    
    ```csv {: codeblock}
        <source-hpcs-crk-crn>,<destination-kp-crk-crn>
        ```
        範例:
        ```csv {: codeblock}
        crn:v1:staging:public:hs-crypto:us-south:a/1152aa1c1ec54274ac42b807c90c:0ce92f39-69fd-4200-ba53-5ed555689:key:43eb6a-5451-4ea1-8080-0ca2d6cc7,crn:v1:staging:public:kms:us-south:a/1152aa1c1ec54274ac4ad8507c90c:b2ee9d-b658-4939-bb63-ffb6e7442:key:8cf424f4-bd6a-4de9-8ad5-5c60332de
        ```
    
  2. 設定移轉工具所需的環境變數。

    如果您擁有多個 KMS 執行個體,請確保此步驟中使用的端點與您要遷移的執行個體相符。

    1. 匯出所需的環境變數。 以您實際的端點和 API 金鑰取代占位符值。
        export HPCS_API_ENDPOINT=https://<hpcs-instance-id>.api.<region>.hs-crypto.appdomain.cloud
        export KP_ST_ENDPOINT=https://<kp-instance-id>.api.<region>.kms.appdomain.cloud
        export IBMCLOUD_API_KEY=<api-key-with-access-to-kms-and-hpcs>
        export IBMCLOUD_API_KEY_KP_ST=$IBMCLOUD_API_KEY
        ```
        對於暫存環境,也要設定:
        ```sh {: pre}
        export IBMCLOUD_STAGE=true
        export DEBUG_MODE=true
        ```
    
  3. 驗證 CSV 檔案,並檢查目前的移轉狀態。 請注意,若同時使用多個金鑰,CSV 檔案中可能會包含多個項目。

    1. 執行 status 指令以驗證您的設定。
        ./crk-migration-tool-darwin-arm64-1.1.0 status hpcs-kms-migration.csv
        ```
    2. 檢視輸出,以確保正確識別來源和目的地 CRK。
    
    
  4. 使用 CSV 檔案建立 CRK 移轉意向。

    1. 執行建立指令以建立遷移意圖。
        ./crk-migration-tool-darwin-arm64-1.1.0 create hpcs-kms-migration.csv
        ```
    2. 透過檢查指令輸出,確認意向已成功建立。
    
    
  5. 透過同步意向來執行實際的 CRK 移轉。 請注意,若同一組金鑰被用於多個叢集,此操作也會一併遷移這些叢集中所有使用該金鑰的卷。

    1. 執行 sync 指令以執行遷移。
        ./crk-migration-tool-darwin-arm64-1.1.0 sync hpcs-kms-migration.csv
        ```
    2. 請等待同步作業完成。 此程序會轉移磁碟區的加密金鑰。
    
    
  6. 確認您的磁碟區現在參考 Key Protect CRK。

    您只需檢查已遷移的磁碟區即可。 如果您已使用偵測腳本列出哪些卷使用 HPCS 金鑰,請檢查輸出結果中列出的卷。

    1. 列出您的持久性磁碟區並記下磁碟區 ID。
        kubectl get pv
        ```
    2. 描述一個 Persistent Volume 以取得 Volume ID。
    
    ```sh {: pre}
        kubectl describe pv <pv-name>
        ```
    3. 使用 IBM Cloud CLI 檢查磁碟區的詳細資料。
    
    ```sh {: pre}
        ibmcloud is volume <volume-id>
        ```
    4. 在輸出中,驗證 `Encryption Key` 欄位現在引用您 Key Protect 範例的 CRK CRN,而不是 HPCS 範例。
    
    
  7. 更新您的儲存類別,以確保未來所有的 PVC 都使用 Key Protect CRK。

    您只需針對已遷移的儲存類別完成此步驟即可。 如果您已使用偵測腳本列出哪些儲存類別使用 HPCS 金鑰,請針對輸出結果中列出的類別完成此步驟。

    1. 列出您現有的儲存類別。
        kubectl get storageclass
        ```
    2. 識別在參數中引用 HPCS CRK 的儲存類別。
    
    3. 刪除 HPCS 支援的儲存類別。
    
    ```sh {: pre}
        kubectl delete storageclass <storageclass-name>
        ```
    4. 使用 Key Protect CRK CRN 建立新的儲存類別。 請將以下範例作為範本:
    
    ```yaml {: codeblock}
        apiVersion: storage.k8s.io/v1
        kind: StorageClass
        metadata:
          name: ibmc-vpc-block-kms
        provisioner: vpc.block.csi.ibm.io
        parameters:
          profile: "general-purpose"
          encrypted: "true"
          encryptionKey: "<key-protect-crk-crn>"
          csi.storage.k8s.io/fstype: "ext4"
        reclaimPolicy: Delete
        allowVolumeExpansion: true
        volumeBindingMode: WaitForFirstConsumer
        ```
    5. 套用新的儲存類別。
    
    ```sh {: pre}
        kubectl apply -f <storageclass-file>
        ```
    

下一步

  • 驗證您的應用程式在遷移後的磁碟區上仍能正常運作。
  • 監控您的 Key Protect 實例是否有任何存取或加密問題。
  • 更新您的文件和運行簿,以反映新的 Key Protect 配置。
  • 考慮為 Key Protect 根鑰匙設定鑰匙 輪換政策