기본 AWS Key Management Service(AWS KMS) 키 또는 사용자 지정 KMS 키로 암호화한 Linux의 Amazon Elastic Block Store(Amazon EBS) 볼륨을 암호화 해제하려고 합니다.
해결 방법
참고: 다음 해결 방법에서는 루트 볼륨을 예로 사용합니다. 보조 볼륨에서 다음 단계를 수행할 수도 있습니다.
Amazon EBS 볼륨의 암호화를 해제하려면 다음 단계를 완료하십시오.
- 암호화된 루트 볼륨의 스냅샷을 생성하거나 암호화된 볼륨이 있는 인스턴스의 Amazon Machine Image(AMI)를 생성합니다.
참고: 주요 작업을 수행하기 전에 스냅샷과 AMI를 사용하여 리소스를 백업하는 것이 가장 좋습니다.
- Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 엽니다.
- 암호화된 루트 볼륨이 있는 인스턴스를 중지합니다.
- Storage(스토리지) 탭에서 루트 디바이스 이름을 메모한 다음, Volume ID(볼륨 ID)를 선택합니다.
참고: 루트 디바이스는 AMI별로 다릅니다. 예를 들어 Amazon Linux 1과 2는 /dev/xvda를 사용합니다. Ubuntu 14, 16, 18, CentOS7, RHEL 7.5 등의 다른 배포판에서는 /dev/sda1을 사용합니다.
- Actions(작업)를 선택한 다음, Detach Volume(볼륨 분리)을 선택합니다.
- Yes, Detach(예, 분리합니다)를 선택하고 가용 영역을 기록해 둡니다.
- 원본 인스턴스와 동일한 가용 영역에서 복구 인스턴스를 시작합니다.
참고: 원본 인스턴스를 시작할 때 사용한 운영 체제(OS)와 유사한 운영 체제를 사용합니다.
- 탐색 창에서 Volumes(볼륨)를 선택한 다음, 암호화된 루트 볼륨을 선택합니다.
- Actions(작업)를 선택하고, Attach volume(볼륨 연결)을 선택합니다.
- 인스턴스에는 복구 인스턴스 ID를 선택합니다.
- 디바이스 이름으로 /dev/xvdf 또는 /dev/sdf를 선택합니다.
- 원래의 암호화된 볼륨과 동일한 가용 영역에 암호화되지 않은 새 볼륨을 생성합니다.
중요: 데이터 손실을 방지하려면 새 볼륨 크기가 암호화된 볼륨 크기보다 큰지 확인하십시오.
- 암호화되지 않은 새 볼륨을 복구 인스턴스에 /dev/xvdg 또는 /dev/sdg로 연결합니다.
- 복구 인스턴스에 연결한 후 lsblk 명령을 실행하여 루트 디바이스와 연결된 볼륨이 있는지 확인합니다.
lsblk
출력 예시
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 8G 0 disk
└─xvdf1 202:81 0 8G 0 part
xvdg 202:96 0 8G 0 disk
- 데이터를 원래의 암호화된 볼륨에서 암호화되지 않은 새 볼륨으로 이동하려면 sudo 또는 루트 사용자로 dd 명령을 실행합니다.
dd if=/dev/xvdf of=/dev/xvdg bs=4096 status=progress
참고: 이전 명령에서 입력 파일은 /dev/xvdf이고 출력 파일은 /dev/xvdg입니다. 데이터 전송 시간은 볼륨과 인스턴스의 크기 및 유형에 따라 달라집니다.
암호화되지 않은 새 /dev/xvdg 볼륨을 복구 인스턴스에서 분리한 다음, 원본 인스턴스에 /dev/xvda 또는 /dev/sda1로 연결합니다.
원본 인스턴스에 연결하여 인스턴스가 암호화되지 않은 새 루트 볼륨을 읽는지 확인합니다.
Amazon EC2 콘솔에서 원본 인스턴스를 선택한 다음, 볼륨의 속성을 보고 루트 볼륨이 현재 암호화되지 않았는지 확인합니다.
참고: 파티션 변경 내용을 커널에 등록하려면 인스턴스를 재부팅하거나 중지하고 시작해야 할 수 있습니다.
원본 인스턴스의 다른 암호화된 볼륨에 대해 이 프로세스를 반복하여 암호화되지 않은 복제 볼륨을 생성합니다.
복구 인스턴스를 종료합니다.