암호화된 사용자 정의 이미지 작성
qcow2 사용자 지정 이미지가 IBM Cloud® Virtual Private Cloud 인프라의 요구 사항을 충족하는 경우, 해당 이미지를 암호화할 수 있습니다. 다음 절차에서는 QEMU와 사용자 고유의 암호를 사용하여 사용자 정의 이미지를 LUKS 암호화로 암호화하는 방법을 설명합니다. 이미지를 암호화한 후 고객 루트 키 (CRK) 로 비밀번호 문구를 랩핑합니다. IBM Cloud VPC 에 이미지를 가져올 때, 래핑(또는 암호화)된 데이터 암호화 키는 이미지 메타데이터와 함께 저장됩니다.
암호화된 사용자 정의 이미지를 작성하는 빠른 방법은 볼륨의 이미지를 사용하는 것입니다. 이 기능을 사용하여 인스턴스의 부트 볼륨에서 사용자 정의 이미지를 작성하고 고객 관리 암호화를 지정할 수 있습니다. 자세한 정보는 볼륨의 이미지 작성 정보를 참조하십시오.
개인용 카탈로그 또는 베어메탈 서버에서 암호화된 사용자 정의 이미지를 사용할 수 없습니다.
자세한 정보는 SSH키 시작하기 를 참조하십시오.
암호화된 사용자 정의 이미지가 작동되는 방법
고유 비밀번호 문구로 사용자 정의 이미지를 암호화한 후 IBM Cloud Object Storage로 업로드합니다. 암호화된 이미지를 IBM Cloud VPC로 가져오기 전에 키 관리 서비스(KMS)를 설정하고 고객 루트 키(CRK)를 작성해야 합니다. 그런 다음, CRK를 사용하여 이미지를 암호화하는 데 사용하는 암호를 보호하십시오. CRK로 시크릿 비밀번호 문구를 랩핑하여 KMS에서 랩핑된 데이터 암호화 키(WDEK)라고 하는 항목을 작성합니다. 패스프레이즈 데이터를 암호화하면 데이터가 안전하게 보호되므로, 패스프레이즈를 일반 텍스트로 공유할 필요가 전혀 없습니다.
이미지를 가져오는 경우 KMS에 저장되는 고객 루트 키(CRK)에 대한 클라우드 리소스 이름(CRK)을 지정해야 합니다. 랩핑된 데이터 암호화 키(WDEK)에 대한 암호문도 지정해야 합니다. 비밀번호 문구는 항상 WDEK에 암호화되어 저장됩니다. 암호화된 이미지를 사용하는 가상 서버가 시작되는 경우에만 랩핑 해제됩니다.
암호화된 이미지를 사용하여 가상 서버를 프로비저닝할 준비가 되면 암호화 정보가 필요하지 않습니다. CRK의 WDEK 및 CRN은 이미지와 함께 메타데이터로 저장됩니다. 자세한 정보는 암호화된 사용자 정의 이미지 정보를 참조하십시오.
암호화된 이미지 프로세스 개요
다음 단계는 암호화된 이미지의 작성 및 가져오기를 성공하기 위해 완료되어야 하는 상위 레벨 프로세스를 요약하여 보여줍니다. 다음 절에서는 단계를 완료하는 방법에 대한 세부사항을 제공합니다.
- LUKS 암호화로 qcow2 파일을 암호화하려면 QEMU와 원하는 비밀번호 문구를 사용하여 암호화된 이미지를 작성하십시오.
- 암호화된 이미지 파일을 IBM Cloud Object Storage에 업로드하십시오.
- Key Protect 를 프로비저닝하고, 고객 루트 키(CRK)를 생성한 다음, 이 CRK로 암호 문구를 래핑하여 래핑된 데이터 암호화 키(WDEK)를 생성합니다.
- IBM Cloud Object Storage 에서 이미지를 가져올 수 있고, WDEK를 데이터 암호화에 사용할 수 있도록 필수적인 IBM Cloud Identity and Access Management 권한이 부여되어 있는지 확인하십시오.
- 이미지를 IBM Cloud VPC로 가져오십시오. IBM Cloud Object Storage 의 위치, Key Protect 에 저장된 CRK, 그리고 WDEK 암호문을 지정해야 합니다.
이미지 암호화
이 단계에서는 QEMU를 사용하여 사용자 정의 암호를 지정하고, LUKS 암호화를 통해 사용자 정의 이미지를 암호화합니다.
암호화할 사용자 정의 이미지는 IBM Cloud VPC 인프라에 대한 사용자 정의 이미지 요구사항을 충족해야 합니다. 다음 항목에 명시된 이미지 준비 요건을 모두 충족했는지 확인하십시오:
암호화 작업을 완료하려면 QEMU 버전 2.12 이상이 설치되어 있어야 합니다.
Linux 또는 Windows 운영 체제를 사용하여 QEMU 암호화 지시사항을 완료하십시오. Mac 운영 체제는 지원되지 않습니다.
QEMU를 사용하여 사용자 지정 이미지의 두 번째 암호화 qcow2 파일을 생성하려면 다음 단계를 수행하십시오.
-
이미지를 암호화하는 데 사용할 고유 비밀번호 문구를 결정하십시오. 이 태스크의 샘플 명령은
abc123이라는 비밀번호 문구를 사용합니다. 비밀번호 문구를 사용 가능한 상태로 유지하십시오. 나중에 패스프레이즈를 래핑하여 래핑된 데이터 암호화 키(WDEK)를 생성해야 합니다. WDEK는 이미지를 IBM Cloud VPC로 가져올 때 필요합니다. -
다음 명령을 사용하여 현재 qcow2 사용자 정의 이미지를 확인하십시오.
qemu-img info my_100G_custom_image.qcow2이 예제에서는 다음 출력과 유사한 응답을 볼 수 있습니다.
image: my_100G_custom_image.qcow2 file format: qcow2 virtual size: 100 GiB (107374182400 bytes) disk size: 1.28 GiB cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false -
동일한 크기의 비어 있는 새 qcow2 파일을 작성하고 LUKS 암호화로 이 파일을 암호화하십시오. 선택한 비밀번호 문구(예:
abc123)를 사용하여 파일을 암호화하십시오.qemu-img create --object secret,id=sec0,data=abc123 -f qcow2 -o encrypt.format=luks,encrypt.key-secret=sec0 my_100G_custom_image-encrypted.qcow2 100G -
qcow2 이미지(
my_100G_custom_image.qcow2)를 암호화된 이미지(my_100G_custom_image-encrypted.qcow2)로 변환하세요.qemu-img convert --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2 --target-image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -n -p -
두 파일을 비교하여 동일한지 확인하십시오.
qemu-img compare --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2 driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -p -
오류가 있는지 파일을 확인하십시오.
qemu-img check --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2이 예제에서는 다음 출력과 유사한 응답을 볼 수 있습니다.
No errors were found on the image. 16343/1638400 = 1.00% allocated, 0.00% fragmented, 0.00% compressed clusters Image end offset: 1074790400 -
새로 생성된 암호화된 파일에 대해
info명령을 실행하여, 해당 파일의 크기와 암호화 수준이 예상한 것과 일치하는지 확인하십시오.qemu-img info my_100G_custom_image-encrypted.qcow2이 예제에서는 다음 출력과 유사한 응답을 볼 수 있습니다.
image: my_100G_custom_image-encrypted.qcow2 file format: qcow2 virtual size: 100 GiB (107374182400 bytes) disk size: 1.27 GiB cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false
IBM Cloud Object Storage에 암호화된 이미지 업로드
이미지 파일이 LUKS 암호화와 고유한 암호 문구로 암호화되어 있는 경우, 다음 단계를 따라 IBM Cloud Object Storage 에 파일을 업로드할 수 있습니다:
- 나중에 쉽게 식별할 수 있도록 사용자 정의된 이미지 파일에 설명 이름이 있는지 확인하십시오.
- IBM Cloud Object Storage 버킷의 오브젝트 페이지에서 업로드를 클릭하십시오. 200MB가 넘는 이미지를 업로드하려면 Aspera 고속 전송 플러그인을 사용할 수 있습니다.
키 관리 서비스 및 키 설정
IBM Cloud Hyper Protect Crypto Services 사용이 권장되지 않습니다. 고객은 2027년 3월 20일까지 기존 인스턴스를 사용할 수 있습니다. 자세한 내용은 ‘ IBM Cloud Hyper Protect Crypto Services ’의 사용 중단 안내를 참조하십시오. 지속적인 보안을 위해 기존 암호화 키를 전용 Key Protect 인스턴스로 마이그레이션하는 것을 고려해 보시기 바랍니다. 자세한 내용은 마이그레이션 가이드를 참조하십시오.
IBM Cloud VPC 에 암호화된 사용자 정의 이미지를 가져오려면 Key Protect 가 필요합니다. 고객 루트 키(CRK) 및 랩핑된 데이터 암호화 키(WEDK)도 필요합니다. WDEK는 CRK로 감싸진 이미지를 암호화하는 데 사용한 암호로, 이 암호는 오직 본인만이 알 수 있도록 되어 있습니다. WDEK는 암호화된 이미지를 사용하는 가상 서버 인스턴스가 시작될 때 암호화된 이미지에 액세스하는 데 사용됩니다.
다음 목록은 주요 관리 전제 조건에 대한 요약입니다:
- 조항 Key Protect.
- Key Protect 에 고객 루트 키(CRK)를 가져오거나 Key Protect 에서 생성하십시오.
- 랩핑된 데이터 암호화 키(WDEK)를 작성하기 위해 고객 루트 키로 이미지를 암호화하는 데 사용한 비밀번호 문구를 랩핑(보호)하십시오.
-
Key Protect 서비스를 프로비저닝하십시오.
Key Protect 서비스 인스턴스를 프로비저닝하면, 고객 관리형 암호화에 필요한 최신 업데이트가 반드시 포함되도록 보장됩니다.
-
IBM Key Protect에서 고객 루트 키(CRK)를 작성하거나 가져오십시오.
키 자료 작성 및 암호화를 위한 옵션을 검토하여 키 가져오기를 계획하십시오. 보안을 추가하려면 클라우드로 키 자료를 가져오기 전에 이 키 자료를 암호화하도록 가져오기 토큰을 사용하여 키 자료의 보안 가져오기를 사용하도록 설정할 수 있습니다.
고객 루트 키(CRK)의 상태는 암호화된 이미지의 가용성에 직접적인 영향을 미칩니다. CRK가 일시 중지, 비활성화되거나 파기될 경우, 래핑된 데이터 암호화 키(WDEK)를 래핑 해제할 수 없으며, 암호화된 이미지를 사용하는 모든 가상 서버 인스턴스는 시작되지 않습니다. 자세한 내용은 ‘주요 상태 및 전환’을 참조하십시오.
-
고객 루트 키(CRK)를 사용하여 LUKS 암호화로 이미지를 암호화하는 데 사용한 고유 암호화 문구를 랩핑하거나 보호하십시오. 이미지 암호화 예에서는
abc123이라는 비밀번호 문구를 사용했습니다.-
WDEK를 생성할 수 있도록 Key Protect CLI 플러그인이 설치되어 있는지 확인하십시오. 자세한 정보는 Key Protect CLI 플러그인 설치 를 참조하십시오.
-
비밀번호 문구를 Base64 인코딩으로 인코딩하여 CRK로 랩핑하도록 준비하십시오. 비밀번호 문구를
abc123으로 대체하여 다음 명령을 실행하십시오. 랩핑된 비밀번호 문구가 적용되지 않는 원인이 되는 줄 바꾸기 문자를 인코딩하지 않도록 -n 매개변수가 필요합니다.
echo -n "abc123"|base64이 예제에서는 다음 출력과 유사한 응답을 볼 수 있습니다.
YWJjMTIzibmcloud kp key wrap명령을 실행하여 CRK로 인코딩된 비밀번호 문구를 랩핑하십시오. 암호화된 이미지를 생성하는 데 사용되는 패스프레이즈는 엄밀히 말해 데이터 암호화 키는 아니지만, Key Protect 에서는 데이터를 포장하거나 해제할 때 이 용어를 사용하고 있습니다. Key Protect 에서 리턴되는 데이터를 WDEK라고합니다. 자세한 정보는 kp 키 랩핑을 참조하십시오.
ibmcloud kp key wrap KEY_ID -i INSTANCE_ID -p PLAINTEXT여기서 KEY_ID는 래핑에 사용하려는 루트 키의 ID이며, INSTANCE_ID는 ‘ Key Protect ’ 서비스 인스턴스를 식별하는 인스턴스 ID이고, PLAINTEXT는 인코딩된 암호문입니다. 예를 들어, YWJjMTIz입니다.
이 예제에서는 다음 출력과 유사한 응답을 볼 수 있습니다.
Wrapping key... SUCCESS Ciphertext eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=- WDEK의 암호문을 스토리지에 저장하거나 영구 저장하십시오. 암호화된 이미지를 IBM Cloud VPC로 가져오면 WDEK 암호문을 지정하십시오.
-
IAM 인증 전제조건
IBM Cloud Identity and Access Management에서 필수 권한을 작성했는지 확인하십시오.
- Cloud Block Storage (소스 서비스)와 귀사의 키 관리 서비스 (대상 서비스) 간에 IBM Cloud Identity and Access Management (IAM), 승인 생성하기 을 통해 이루어집니다. 권한은 IBM Cloud 백플레인 서비스가 데이터 암호화를 위해 WDEK를 사용할 수 있도록 허용합니다.
- Image Service for VPC 와 IBM Cloud Object Storage 간에 IAM 권한을 작성했는지 확인하십시오. 소스 서비스로 인프라 서비스를 지정하십시오. 리소스 유형으로 VPC용 이미지 서비스를 지정하십시오. IBM Cloud Object Storage 을 대상 서비스로 지정하십시오. 이 권한 부여는 VPC용 이미지 서비스가 IBM Cloud Object Storage 에 있는 이미지에 액세스할 수 있도록 하기 위함입니다. 자세한 정보는 이미지를 가져오기 위해 액세스 권한을 IBM Cloud Object Storage에 부여를 참조하십시오.
다음 단계
이미지가 성공적으로 암호화되고, Key Protect 가 설정되었으며, 필요한 키를 생성했다면, 해당 이미지를 IBM Cloud VPC 로 가져올 수 있습니다. 사용자 정의 이미지를 IBM Cloud VPC에서 사용할 수 있는 경우 이를 사용하여 인스턴스를 프로비저닝할 수 있습니다. IBM Cloud Object Storage 에 이미지 가져오기 권한이 부여되어 있는지 확인하십시오.
암호화된 이미지로 새 가상 서버 인스턴스를 프로비저닝할 준비가 되면 암호화 정보가 필요하지 않습니다. 랩핑된 데이터 암호화 키(WDEK) 및 고객 루트 키(CRK)의 CRN은 이미지와 함께 메타데이터로 저장됩니다.