將 VPC Block Storage 從 HPCS 遷移到 Key Protect
將 Hyper Protect Crypto Services (HPCS) 加密的 VPC Block Storage 磁碟區遷移至使用 IBM Key Protect ( Key Protect ) 取代。
開始之前
如果您尚未這樣做,請檢閱 移動概述 中的資訊,以確定是否需要將 VPC 區塊儲存卷遷移至使用 Key Protect,而非 HPCS。
遷移的先決條件
開始遷移之前,請完成這些步驟。
-
建立新的 或使用現有的 IBM Key Protect Dedicated 範例。
-
從 Key Protect 範例,注意目的地的客戶根金鑰 (CRK) CRN。
ibmcloud kp keys -i KP-INSTANCE-ID -
確保 VPC Block Storage 對 Key Protect 實例具有讀取存取權。 您可能需要 使用 IAM 指定存取權限。 此存取可以是跨帳戶的,且在繼續之前必須正確設定。
-
如果您尚未執行,下載遷移工具。
移轉步驟
請遵循以下步驟,將您的 VPC Block Storage 磁碟區從 HPCS 遷移到 Key Protect。
-
建立 CSV 檔案,將您的來源 HPCS CRK 對映至目的地 Key Protect CRK。
- 取得您的 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 ``` -
設定移轉工具所需的環境變數。
如果您擁有多個 KMS 執行個體,請確保此步驟中使用的端點與您要遷移的執行個體相符。
- 匯出所需的環境變數。 以您實際的端點和 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 ``` -
驗證 CSV 檔案,並檢查目前的移轉狀態。 請注意,若同時使用多個金鑰,CSV 檔案中可能會包含多個項目。
- 執行 status 指令以驗證您的設定。
./crk-migration-tool-darwin-arm64-1.1.0 status hpcs-kms-migration.csv ``` 2. 檢視輸出,以確保正確識別來源和目的地 CRK。 -
使用 CSV 檔案建立 CRK 移轉意向。
- 執行建立指令以建立遷移意圖。
./crk-migration-tool-darwin-arm64-1.1.0 create hpcs-kms-migration.csv ``` 2. 透過檢查指令輸出,確認意向已成功建立。 -
透過同步意向來執行實際的 CRK 移轉。 請注意,若同一組金鑰被用於多個叢集,此操作也會一併遷移這些叢集中所有使用該金鑰的卷。
- 執行 sync 指令以執行遷移。
./crk-migration-tool-darwin-arm64-1.1.0 sync hpcs-kms-migration.csv ``` 2. 請等待同步作業完成。 此程序會轉移磁碟區的加密金鑰。 -
確認您的磁碟區現在參考 Key Protect CRK。
您只需檢查已遷移的磁碟區即可。 如果您已使用偵測腳本列出哪些卷使用 HPCS 金鑰,請檢查輸出結果中列出的卷。
- 列出您的持久性磁碟區並記下磁碟區 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 範例。 -
更新您的儲存類別,以確保未來所有的 PVC 都使用 Key Protect CRK。
您只需針對已遷移的儲存類別完成此步驟即可。 如果您已使用偵測腳本列出哪些儲存類別使用 HPCS 金鑰,請針對輸出結果中列出的類別完成此步驟。
- 列出您現有的儲存類別。
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 根鑰匙設定鑰匙 輪換政策。