Amazon Elastic Block Store(Amazon EBS)에서 AWS KMS 사용 방법 - AWS Key Management Service

Amazon Elastic Block Store(Amazon EBS)에서 AWS KMS 사용 방법

이 주제는 Amazon Elastic Block Store(Amazon EBS)가 AWS KMS를 이용해 볼륨과 스냅샷을 암호화하는 방법을 자세히 살펴봅니다. Amazon EBS 볼륨을 암호화하는 방법에 대한 기본 지침은 Amazon EBS 암호화를 참조하십시오.

Amazon EBS 암호화

암호화된 Amazon EBS 볼륨을 지원되는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 유형에 연결하면 볼륨, I/O, 그리고 볼륨에서 생성된 스냅샷에 저장된 데이터가 모두 암호화됩니다. 암호화는 Amazon EC2 인스턴스를 호스팅하는 서버에서 이루어집니다.

이 기능은 모든 Amazon EBS 볼륨 유형에 지원됩니다. 암호화된 볼륨에 액세스하는 방법은 다른 볼륨의 경우와 동일합니다. 암호화 및 암호 해독은 중단 없이 처리되므로 사용자, EC2 인스턴스 또는 애플리케이션에서 별도로 조치할 부분은 없습니다. 암호화된 볼륨의 스냅샷은 자동으로 암호화되며, 암호화된 스냅샷으로 생성한 볼륨도 자동으로 암호화됩니다.

EBS 볼륨의 암호화 상태는 볼륨을 생성할 때 결정됩니다. 기존 볼륨의 암호화 상태는 변경할 수 없습니다. 그러나 암호화된 볼륨과 암호화되지 않은 볼륨 사이에서 데이터를 마이그레이션하고 스냅샷을 복사하는 동안 새 암호화 상태를 적용할 수 있습니다.

Amazon EBS는 기본적으로 선택적 암호화를 지원합니다. AWS 계정 및 리전의 모든 새 EBS 볼륨 및 스냅샷 복사본에서 자동으로 암호화를 활성화할 수 있습니다. 이 구성 설정은 기존 볼륨이나 스냅샷에는 영향을 주지 않습니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서 또는Windows 인스턴스용 Amazon EC2 사용 설명서암호화 기본 제공을 참조하십시오.

KMS 키 및 데이터 키 사용

암호화된 Amazon EBS 볼륨을 생성할 때 AWS KMS key를 지정합니다. 기본적으로 Amazon EBS는 계정(aws/ebs)의 Amazon EBS에 AWS 관리형 키를 사용합니다. 그러나 사용자가 자신이 생성 및 관리하는 고객 관리형 키를 지정할 수 있습니다.

고객 관리형 KMS 키를 사용하려면 사용자를 대신하여 KMS 키를 사용할 수 있는 Amazon EBS 권한을 부여해야 합니다. 필요한 권한 목록은 Linux 인스턴스용 Amazon EC2 사용 설명서 또는 Windows 인스턴스용 Amazon EC2 사용 설명서IAM 사용자의 권한을 참조하십시오.

중요

Amazon EBS는 대칭 KMS 키만 지원합니다. 비대칭 KMS 키를 사용하여 Amazon EBS 볼륨을 암호화할 수 없습니다. KMS 키가 대칭 또는 비대칭인지 여부를 확인하는 방법은 대칭 및 비대칭 KMS 키 식별 단원을 참조하십시오.

각 볼륨에 대해 Amazon EBS는 AWS KMS에게 사용자가 지정한 KMS 키로 암호화된 고유한 데이터 키를 생성하도록 요청합니다. Amazon EBS는 볼륨과 함께 암호화된 데이터 키를 저장합니다. 그런 다음 볼륨을 Amazon EC2 인스턴스에 연결하면 Amazon EBS가 AWS KMS를 호출하여 데이터 키를 복호화합니다. Amazon EBS는 하이퍼바이저 메모리에서 일반 텍스트 데이터 키를 사용하여 모든 디스크 I/O를 볼륨으로 암호화합니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서 또는 Windows 인스턴스용 Amazon EC2 사용 설명서EBS 암호화 작동 방식을 참조하십시오.

Amazon EBS 암호화 컨텍스트

AWS KMS에 대한 GenerateDataKeyWithoutPlaintextDecrypt 요청 시 Amazon EBS는 요청의 볼륨 또는 스냅샷을 식별하는 이름-값 쌍이 있는 암호화 컨텍스트를 사용합니다. 암호화 컨텍스트의 이름은 달라지지 않습니다.

암호화 컨텍스트는 보안되지 않은 임의의 데이터를 포함하는 키-값 페어 세트입니다. 데이터 암호화 요청에 암호화 컨텍스트를 포함하는 경우, AWS KMS는 암호화된 데이터에 암호화 컨텍스트를 암호 방식으로 바인딩합니다. 따라서 동일한 암호화 컨텍스트로 전달해야 이 데이터를 해독할 수 있습니다.

모든 볼륨 및 Amazon EBS CreateSnapshot 작업으로 생성된 암호화된 스냅샷에 대해 Amazon EBS는 볼륨 ID를 암호화 컨텍스트 값으로 사용합니다. CloudTrail 로그 항목의 requestParameters 필드에서 암호화 컨텍스트는 다음과 비슷하게 표시됩니다.

"encryptionContext": { "aws:ebs:id": "vol-0cfb133e847d28be9" }

Amazon EC2 CopySnapshot 작업을 통해 생성된 암호화된 스냅샷에서 Amazon EBS는 스냅샷 ID를 암호화 컨텍스트 값으로 사용합니다. CloudTrail 로그 항목의 requestParameters 필드에서 암호화 컨텍스트는 다음과 비슷하게 표시됩니다.

"encryptionContext": { "aws:ebs:id": "snap-069a655b568de654f" }

Amazon EBS 오류 감지

암호화된 EBS 볼륨을 생성하거나 볼륨을 EC2 인스턴스에 연결하려면, Amazon EBS와 Amazon EC2 인프라는 사용자가 EBS 볼륨 암호화를 위해 지정한 KMS 키를 사용할 수 있어야 합니다. KMS 키를 사용할 수 없는 경우(예를 들어 키 상태Enabled가 아닌 경우) 볼륨 생성 또는 볼륨 연결에 실패합니다.

이 경우 Amazon EBS는 이벤트를 Amazon CloudWatch Events로 보내 실패를 알립니다. CloudWatch Events에서는 이러한 이벤트에 대한 응답으로 자동 작업을 트리거하는 규칙을 수립할 수 있습니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서Amazon EBS용 Amazon CloudWatch Events를 참조하십시오.

이러한 장애를 해결하려면 EBS 볼륨 암호화를 위해 지정한 KMS 키가 활성화되어 있는지 확인합니다. 이렇게 하려면 먼저 KMS 키를 보고 현재 키 상태(AWS Management Console의 상태 열)를 확인합니다. 그리고 다음 링크 중 하나에서 정보를 참조합니다.

AWS CloudFormation을 사용하여 암호화된 Amazon EBS 볼륨을 생성합니다.

AWS CloudFormation을 이용해 암호화된 Amazon EBS 볼륨을 생성할 수 있습니다. 자세한 내용은 AWS CloudFormation 사용 설명서AWS::EC2::Volume을 참조하십시오.