Amazon EBS 암호화 - Amazon EBS

Amazon EBS 암호화

EC2 인스턴스와 연결된 EBS 리소스를 위한 간단한 암호화 솔루션으로 Amazon EBS 암호화를 사용할 수 있습니다. Amazon EBS 암호화를 사용하면 자체 키 관리 인프라를 구축, 유지 관리 및 보호할 필요가 없습니다. Amazon EBS 암호화는 암호화된 볼륨 및 스냅샷을 생성할 때 AWS KMS keys를 사용합니다.

암호화 작업은 EC2 인스턴스를 호스팅하는 서버에서 진행되며, 인스턴스와 인스턴스에 연결된 EBS 스토리지 간 유휴 데이터 및 전송 중 데이터의 보안을 모두 보장합니다.

인스턴스에는 암호화된 볼륨과 암호화되지 않은 볼륨을 동시에 연결할 수 있습니다.

EBS의 암호화 방식

EC2 인스턴스의 부팅 및 데이터 볼륨을 모두 암호화할 수 있습니다.

암호화된 EBS 볼륨을 만들고 지원되는 인스턴스 유형에 이 볼륨을 연결하면 다음 유형의 데이터가 암호화됩니다.

  • 볼륨 내부에 있는 데이터

  • 볼륨과 인스턴스 사이에서 이동하는 모든 데이터

  • 볼륨에서 생성된 모든 스냅샷

  • 그런 스냅샷에서 생성된 모든 볼륨

Amazon EBS는 산업 표준 AES-256 데이터 암호화를 사용하여 데이터 키로 볼륨을 암호화합니다. 데이터 키는 AWS KMS에서 생성된 다음 볼륨 정보와 함께 저장되기 전에 AWS KMS 키로 AWS KMS에서 암호화됩니다. 모든 스냅샷과 동일한 AWS KMS 키를 사용하여 해당 스냅샷에서 생성된 모든 후속 볼륨은 동일한 데이터 키를 공유합니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 데이터 키를 참조하세요.

Amazon EC2는 AWS KMS와 함께 암호화된 볼륨을 생성한 스냅샷이 암호화되었는지 또는 암호화되지 않았는지에 따라 약간 다른 방식으로 EBS 볼륨을 암호화하고 복호화합니다.

스냅샷이 암호화된 경우에 EBS 암호화가 작동하는 방식

소유하고 있는 암호화된 스냅샷에서 암호화된 볼륨을 생성하는 경우에는 Amazon EC2가 AWS KMS와 함께 다음과 같이 EBS 볼륨을 암호화하고 해독합니다.

  1. Amazon EC2는 볼륨 암호화용으로 선택된 KMS 키를 지정하여 AWS KMS에 GenerateDataKeyWithoutPlaintext 요청을 보냅니다.

  2. 스냅샷과 동일한 KMS 키를 사용하여 볼륨이 암호화된 경우 AWS KMS는 스냅샷과 동일한 데이터 키를 사용하여 동일한 KMS 키로 암호화합니다. 볼륨이 다른 KMS 키를 사용하여 암호화된 경우 AWS KMS에서는 새 데이터 키를 생성하고 지정한 KMS 키를 사용하여 암호화합니다. 암호화된 데이터 키는 Amazon EBS로 전송되어 볼륨 메타데이터와 함께 저장됩니다.

  3. 암호화된 볼륨을 인스턴스에 연결하면 Amazon EC2에서는 데이터 키를 해독할 수 있도록 CreateGrant 요청을 AWS KMS로 보냅니다.

  4. AWS KMS는 암호화된 데이터 키를 복호화하고, 복호화된 데이터 키를 Amazon EC2로 보냅니다.

  5. Amazon EC2는 Nitro 하드웨어의 일반 텍스트 데이터 키를 사용하여 디스크 I/O를 볼륨으로 암호화합니다. 볼륨이 인스턴스에 연결되어 있는 동안에는 일반 텍스트 형태의 데이터 키가 메모리에 유지됩니다.

스냅샷이 암호화되지 않은 경우에 EBS 암호화가 작동하는 방식

암호화되지 않은 스냅샷에서 암호화된 볼륨을 생성하는 경우에는 Amazon EC2가 AWS KMS와 함께 다음과 같이 EBS 볼륨을 암호화하고 복호화합니다.

  1. Amazon EC2는 CreateGrant 요청을 AWS KMS로 전송하므로 스냅샷에서 생성된 볼륨을 암호화할 수 있습니다.

  2. Amazon EC2는 볼륨 암호화용으로 선택된 KMS 키를 지정하여 AWS KMS에 GenerateDataKeyWithoutPlaintext 요청을 보냅니다.

  3. AWS KMS는 새 데이터 키를 생성하고 볼륨 암호화용으로 선택된 KMS 키로 암호화한 후 볼륨 메타데이터와 함께 저장할 암호화된 데이터 키를 Amazon EBS로 보냅니다.

  4. Amazon EC2는 Decrypt 요청을 AWS KMS로 보내 볼륨 데이터를 암호화하는 암호화 키를 취득합니다.

  5. 암호화된 볼륨을 인스턴스에 연결하면 Amazon EC2에서는 데이터 키를 해독할 수 있도록 CreateGrant 요청을 AWS KMS로 보냅니다.

  6. 암호화된 볼륨을 인스턴스에 연결하면 Amazon EC2는 암호화된 데이터 키를 지정하여 Decrypt 요청을 AWS KMS에 보냅니다.

  7. AWS KMS는 암호화된 데이터 키를 복호화하고, 복호화된 데이터 키를 Amazon EC2로 보냅니다.

  8. Amazon EC2는 Nitro 하드웨어의 일반 텍스트 데이터 키를 사용하여 디스크 I/O를 볼륨으로 암호화합니다. 볼륨이 인스턴스에 연결되어 있는 동안에는 일반 텍스트 형태의 데이터 키가 메모리에 유지됩니다.

자세한 내용은 AWS KMS 개발자 안내서Amazon Elastic Block Store(Amazon EBS)가 AWS Key Management Service를 사용하는 방식Amazon EC2 예제 2를 참조하세요.

사용할 수 없는 KMS 키가 데이터 키에 미치는 영향

KMS 키를 사용할 수 없게 되면 효과는 거의 즉각적으로 나타납니다(최종 일관성에 따라 다름). KMS 키의 키 상태는 새로운 조건을 반영하도록 변경되며 암호화 작업에서 KMS 키를 사용하려는 모든 요청은 실패합니다.

KMS 키를 사용할 수 없게 하려는 작업을 수행해도 EC2 인스턴스나 연결된 EBS 볼륨에 즉각적인 영향은 없습니다. Amazon EC2는 KMS 키가 아닌 데이터 키를 사용하여 볼륨이 인스턴스에 연결되어 있는 동안 모든 디스크 I/O를 암호화합니다.

단, 암호화된 EBS 볼륨이 EC2 인스턴스에서 삭제되면 Amazon EBS는 데이터 키를 Nitro 하드웨어에서 제거합니다. 다음에 암호화된 EBS 볼륨을 EC2 인스턴스에 연결할 때 Amazon EBS가 KMS 키를 사용하여 볼륨의 암호화된 데이터 키를 해독하지 못하므로 연결에 실패합니다. EBS 볼륨을 다시 사용하려면 KMS 키를 다시 사용할 수 있게 만들어야 합니다.

작은 정보

사용할 수 없게 하려는 KMS 키에서 생성된 데이터 키로 암호화된 EBS 볼륨에 저장된 데이터에 더 이상 액세스하지 않으려면 KMS 키를 사용할 수 없게 하기 전에 EC2 인스턴스에서 EBS 볼륨을 분리하는 것이 좋습니다.

자세한 내용은 AWS Key Management Service 개발자 안내서에서 사용할 수 없는 KMS 키가 데이터 키에 영향을 미치는 방법을 참조하세요.

EBS 리소스 암호화

암호화를 기본으로 사용하여 암호화를 활성화하거나 암호화하려는 볼륨을 생성할 때 암호화를 활성화하여 EBS 볼륨을 암호화합니다.

볼륨 암호화 시 볼륨을 암호화하는 데 사용할 대칭 암호화 KMS 키를 지정할 수 있습니다. KMS 키를 지정하지 않은 경우 암호화에 사용되는 KMS 키은(는) 소스 스냅샷 및 해당 소유권의 암호화 상태에 따라 달라집니다. 자세한 내용은 암호화 결과표를 참조하십시오.

참고

API 또는 AWS CLI를 사용하여 KMS 키를 지정하는 경우 AWS는 KMS 키를 비동기식으로 인증합니다. 유효하지 않은 KMS 키 ID, 별칭 또는 ARN을 지정하면 작업이 완료된 것처럼 보이지만 결국 실패합니다.

기존 스냅샷이나 볼륨과 연동되어 있는 KMS 키은(는) 변경할 수 없습니다. 하지만 스냅샷 복사 작업 중에 다른 KMS 키와(과) 연동시킬 수는 있습니다. 복사된 스냅샷은 새로운 KMS 키(으)로 암호화됩니다.

빈 볼륨 생성 시 암호화

비어 있는 새 EBS 볼륨을 생성하는 경우 특정 볼륨 생성 작업에 대한 암호화를 활성화하여 암호화할 수 있습니다. EBS 암호화를 기본으로 활성화한 경우 볼륨은 EBS 암호화에 대한 기본 KMS 키를 사용하여 자동으로 암호화됩니다. 또는 특정 볼륨 생성 작업에 대해 다른 대칭 암호화 KMS 키를 지정할 수 있습니다. 볼륨은 최초로 사용 가능한 시점까지 암호화되므로 데이터가 항상 안전한 상태를 유지합니다. 자세한 절차는 Amazon EBS 볼륨 생성 섹션을 참조하세요.

기본적으로 볼륨을 생성할 때 선택한 KMS 키이(가) 볼륨에서 생성한 스냅샷과 암호화된 스냅샷에서 복원한 볼륨을 암호화합니다. 암호화된 볼륨 또는 스냅샷으로부터 암호화를 제거할 수 없습니다. 즉, 암호화된 스냅샷 또는 암호화된 스냅샷의 사본에서 복원된 볼륨은 항상 암호화됩니다.

암호화된 볼륨의 퍼블릭 스냅샷은 지원하지 않지만 암호화된 스냅샷을 특정 계정과 공유할 수는 있습니다. 자세한 지침은 Amazon EBS 스냅샷 공유 섹션을 참조하세요.

암호화되지 않은 리소스 암호화

암호화되지 않은 기존의 볼륨이나 스냅샷은 직접 암호화할 수 없습니다. 그러나 암호화되지 않은 볼륨이나 스냅샷에서 암호화된 볼륨 또는 스냅샷을 생성할 수 있습니다. 암호화를 기본적으로 활성화한 경우 Amazon EBS는 EBS 암호화에 대한 사용자의 기본 KMS 키를 사용하여 새로운 볼륨 또는 스냅샷을 자동으로 암호화합니다. 또는 개별 볼륨이나 스냅샷을 생성할 때 Amazon EBS 암호화의 기본 KMS 키나 대칭 고객 관리형 암호화 키를 사용하여 암호화를 사용 설정할 수 있습니다. 자세한 내용은 Amazon EBS 볼륨 생성Amazon EBS 스냅샷 복사 섹션을 참조하세요.

스냅샷 복사본을 고객 관리형 키로 암호화하려면 암호화되지 않은 스냅샷(활성화되지 않은 암호화 기본 제공) 복사에 표시된 대로 암호화를 활성화하고 KMS 키를 지정해야 합니다.

중요

Amazon EBS에서는 비대칭 암호화 KMS 키를 지원하지 않습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 대칭 및 비대칭 암호화 KMS 키 사용을 참조하세요.

EBS 지원 AMI에서 인스턴스를 시작할 때 새 암호화 상태를 적용할 수도 있습니다. 이는 EBS 지원 AMI에, 설명된 대로 암호화할 수 있는 EBS 볼륨의 스냅샷이 포함되기 때문입니다. 자세한 내용은 EBS-backed AMI에서 암호화 사용을 참조하세요.

AWS KMS 키 교체

암호화 모범 사례에 따르면 암호화 키를 광범위하게 사용하지 않는 것이 좋습니다. KMS 키에 대한 새 암호화 구성 요소를 생성하려면 새 KMS 키를 생성한 다음 새 KMS 키를 사용하도록 애플리케이션 또는 별칭을 변경하면 됩니다. 또는 기존 KMS 키에 대한 자동 키 교체를 활성화할 수 있습니다.

KMS 키에 대한 자동 키 교체를 사용 설정하면 AWS KMS에서 매년 KMS 키에 대한 새 암호화 구성 요소를 생성합니다. AWS KMS는 암호화 구성 요소의 모든 이전 버전을 저장하므로 해당 KMS 키를 사용하여 모든 암호화된 데이터를 해독할 수 있습니다. AWS KMS에서는 해당 KMS 키를 삭제할 때까지 교체된 키 구성 요소를 삭제하지 않습니다.

교체된 KMS 키를 사용하여 데이터를 암호화하는 경우 AWS KMS는 현재 키 구성 요소를 사용합니다. 교체된 KMS 키를 사용하여 데이터를 해독하면 AWS KMS는 해당 데이터를 암호화하는 데 사용한 키 구성 요소의 버전을 사용합니다. 코드 변경 없이 애플리케이션 및 AWS 서비스에서 교체된 KMS 키를 안전하게 사용할 수 있습니다.

참고

자동 키 교체는 AWS KMS에서 생성한 키 구성 요소를 포함하는 대칭 고객 관리형 키에 대해서만 지원됩니다. AWS KMS에서는 매년 AWS 관리형 키를 자동으로 교체합니다. AWS 관리형 키에 대한 키 교체를 사용 설정 또는 사용 중지할 수 없습니다.

자세한 내용을 알아보려면 AWS Key Management Service 개발자 안내서의 KMS 키 교체를 참조하세요.