HPCS에서 Block Storage 으로 VPC 마이그레이션하기 Key Protect
VPC Block Storage 볼륨에 대한 Hyper Protect Crypto Services (HPCS) 암호화를 마이그레이션하여 IBM Key Protect ( Key Protect )을 대신 사용하세요.
시작하기 전에
아직 마이그레이션하지 않았다면 마이그레이션 개요 에 있는 정보를 검토하여 HPCS 대신 Key Protect 을 사용하도록 VPC 블록 스토리지 볼륨을 마이그레이션해야 하는지 확인하세요.
마이그레이션을 위한 전제 조건
마이그레이션을 시작하기 전에 다음 단계를 완료하세요.
-
새 또는 기존 IBM Key Protect 전용 인스턴스를 사용하세요.
-
Key Protect 인스턴스에서 대상 고객 루트 키(CRK) CRN을 확인합니다.
ibmcloud kp keys -i KP-INSTANCE-ID -
VPC Block Storage 에 Key Protect 인스턴스에 대한 읽기 액세스 권한이 있는지 확인합니다. IAM을 사용하여 액세스 권한을 할당해야 할 수도 있습니다. 이 액세스 권한은 교차 계정으로 사용할 수 있으며 계속 진행하기 전에 올바르게 구성해야 합니다.
-
아직 마이그레이션을 완료하지 않았다면 마이그레이션 개요에 있는 마이그레이션 도구를 다운로드하세요.
마이그레이션 단계
다음 단계에 따라 VPC Block Storage 볼륨을 HPCS에서 Key Protect 로 마이그레이션합니다.
-
소스 HPCS CRK를 대상 Key Protect CRK에 매핑하는 CSV 파일을 만듭니다.
- HPCS 루트 키의 CRN을 확인하십시오.
ibmcloud resource service-instance <hpcs-instance-name> ``` 2. Key Protect 루트 키의 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파일에 여러 항목이 포함될 수 있다는 점에 유의하십시오.- 상태 명령어를 실행하여 구성을 확인하십시오.
./crk-migration-tool-darwin-arm64-1.1.0 status hpcs-kms-migration.csv ``` 2. 출력을 검토하여 소스 및 대상 CRK가 올바르게 식별되었는지 확인합니다. -
CSV 파일을 사용하여 CRK 마이그레이션 인텐트를 만듭니다.
- create 명령을 실행하여 마이그레이션 의도를 설정합니다.
./crk-migration-tool-darwin-arm64-1.1.0 create hpcs-kms-migration.csv ``` 2. 명령 출력을 확인하여 인텐트가 성공적으로 생성되었는지 확인합니다. -
인텐트를 동기화하여 실제 CRK 마이그레이션을 수행합니다. 여러 클러스터에서 동일한 키가 사용되는 경우, 해당 클러스터 내에서 해당 키를 사용하는 모든 볼륨도 함께 마이그레이션된다는 점에 유의하십시오.
- 동기화 명령을 실행하여 마이그레이션을 실행합니다.
./crk-migration-tool-darwin-arm64-1.1.0 sync hpcs-kms-migration.csv ``` 2. 동기화 작업이 완료될 때까지 기다려 주세요. 이 프로세스는 볼륨의 암호화 키를 마이그레이션합니다. -
이제 볼륨이 Key Protect CRK를 참조하는지 확인합니다.
마이그레이션한 볼륨만 확인하면 됩니다. 탐지 스크립트를 사용하여 HPCS 키를 사용하는 볼륨 목록을 확인했다면, 출력 결과에 표시된 볼륨들을 확인해 보십시오.
- 영구 볼륨을 나열하고 볼륨 ID를 기록합니다.
kubectl get pv ``` 2. 영구 볼륨을 설명하여 볼륨 ID를 가져옵니다. ```sh {: pre} kubectl describe pv <pv-name> ``` 3. IBM Cloud CLI를 사용하여 볼륨 세부 정보를 확인하세요. ```sh {: pre} ibmcloud is volume <volume-id> ``` 4. 출력에서 `Encryption Key` 필드가 이제 HPCS 인스턴스 대신 Key Protect 인스턴스의 CRK CRN을 참조하는지 확인합니다. -
향후 모든 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 루트 키에 대한 키 순환 정책을 설정하는 것이 좋습니다.