Amazon EBS 암호화 - Amazon Elastic Compute Cloud

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 개발자 안내서에서 데이터 키를 참조하세요.

KMS 키를 사용할 수 없게 되면 효과는 거의 즉각적으로 나타납니다(최종 일관성에 따라 다름). KMS 키의 키 상태는 새로운 조건을 반영하도록 변경되며 암호화 작업에서 KMS 키를 사용하려는 모든 요청은 실패합니다. 자세한 내용은 AWS Key Management Service 개발자 안내서의 사용할 수 없는 KMS 키가 데이터 키에 영향을 미치는 방법을 참조하세요.

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를 참조하세요.

요구 사항

시작하기 전에 다음 요구 사항을 충족하는지 확인하세요.

지원되는 볼륨 유형

암호화는 모든 EBS 볼륨 유형에서 지원됩니다. 암호화된 볼륨에서는 지연 시간에 대한 영향을 최소화한 채 암호화되지 않은 볼륨과 동일한 IOPS 성능을 기대할 수 있습니다. 암호화되지 않은 볼륨에 액세스하는 것과 동일한 방법으로 암호화된 볼륨에 액세스할 수 있습니다. 암호화 및 암호 해독은 중단 없이 처리되므로 사용자나 사용자의 애플리케이션에서 별도로 조치할 부분은 없습니다.

지원되는 인스턴스 유형

Amazon EBS 암호화는 모든 현 세대이전 세대 인스턴스 유형에서 사용할 수 있습니다.

사용자의 권한

KMS 키를 EBS 암호화의 기본 키로 구성하면, 기본 KMS 키 정책은 필수 KMS 작업에 대한 액세스 권한이 있는 사용자가 이 KMS 키를 사용하여 EBS 리소스를 암호화하거나 해독하도록 허용합니다. EBS 암호화를 사용하기 위해 다음 작업을 호출할 수 있는 권한을 사용자에게 부여해야 합니다.

  • kms:CreateGrant

  • kms:Decrypt

  • kms:DescribeKey

  • kms:GenerateDataKeyWithoutPlainText

  • kms:ReEncrypt

작은 정보

최소 권한의 원칙을 따르려면 kms:CreateGrant에 대한 전체 액세스 권한을 허용하지 마세요. 대신에 kms:GrantIsForAWSResource 조건 키를 사용하여 AWS 서비스에서 사용자를 대신하여 권한이 부여되는 경우에만 사용자가 KMS 키에 대한 권한을 부여할 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": [ "arn:aws:kms:us-east-2:123456789012:key/abcd1234-a123-456d-a12b-a123b4cd56ef" ], "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

자세한 내용은 AWS Key Management Service 개발자 안내서기본 키 정책 섹션에서 AWS 계정에 대한 액세스 허용 및 IAM 정책 사용을 참조하세요.

인스턴스에 대한 권한

인스턴스가 암호화된 AMI, 볼륨 또는 스냅샷과 상호 작용을 시도할 경우 인스턴스의 자격 증명 전용 역할에 KMS 키 부여가 발급됩니다. 자격 증명 전용 역할은 인스턴스가 사용자를 대신하여 암호화된 AMI, 볼륨 또는 스냅샷과 상호 작용하기 위해 사용하는 IAM 역할입니다.

자격 증명 전용 역할은 수동으로 만들거나 삭제할 필요가 없으며 관련 정책도 없습니다. 또한 자격 증명 전용 역할 보안 인증에는 액세스할 수 없습니다.

참고

자격 증명 전용 역할은 인스턴스의 애플리케이션이 Amazon S3 객체 또는 Dynamo DB 테이블 등 다른 AWS KMS 암호화된 리소스에 액세스하는 데 사용되지 않습니다. 이러한 작업은 Amazon EC2 인스턴스 역할에 대한 보안 인증 또는 인스턴스에서 구성한 기타 AWS 보안 인증을 사용하여 수행됩니다.

자격 증명 전용 역할에는 서비스 제어 정책(SCP) 및 KMS 키 정책이 적용됩니다. SCP 또는 KMS 키가 KMS 키에 대한 자격 증명 전용 역할 액세스를 거부하는 경우 암호화된 볼륨이 있거나 암호화된 AMI 또는 스냅샷을 사용하여 EC2 인스턴스를 시작하지 못할 수 있습니다.

aws:SourceIp, aws:VpcSourceIp, aws:SourceVpc, 또는 aws:SourceVpce AWS 전역 조건 키를 사용하여 네트워크 위치를 기반으로 액세스를 거부하는 키 정책 또는 SCP를 생성하는 경우 이러한 정책 설명이 인스턴스 전용 역할에 적용되지 않도록 해야 합니다. 예제 정책은 데이터 경계 정책 예제를 참조하세요.

자격 증명 전용 역할 ARN은 다음 형식을 사용합니다.

arn:aws-partition:iam::account_id:role/aws:ec2-infrastructure/instance_id

인스턴스에 키 부여가 발행되면 해당 인스턴스에 고유한 위임된 역할 세션에 키 부여가 발행됩니다. 피부여자 보안 주체 ARN은 다음 형식을 사용합니다.

arn:aws-partition:sts::account_id:assumed-role/aws:ec2-infrastructure/instance_id

EBS 암호화의 KMS 키 기본값

Amazon EBS는 사용자가 AWS 리소스를 저장하는 각 리전에 고유한 AWS 관리형 키 키를 자동으로 생성합니다. 이 KMS 키에는 별칭 alias/aws/ebs가 있습니다. 기본적으로 Amazon EBS은(는) 암호화에 이 KMS 키를 사용합니다. 또는 생성한 대칭 고객 관리형 암호화 키를 EBS 암호화의 KMS 키 기본값으로 지정할 수 있습니다. 자체 KMS 키를 사용하여 KMS 키 생성, 교체 및 비활성화 기능을 비롯한 다양한 작업을 수행할 수 있습니다.

중요

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

New console
리전에 대한 EBS 암호화의 기본 KMS 키를 구성하는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 모음에서 해당 리전을 선택합니다.

  3. 탐색 창에서 EC2 대시보드를 선택합니다.

  4. 페이지의 오른쪽 위 모서리에서 계정 속성, 데이터 보호 및 보안을 선택합니다.

  5. 관리를 선택합니다.

  6. 기본 암호화 키(Default encryption key)에 대해 대칭 고객 관리형 암호화 키를 선택합니다.

  7. EBS 암호화 업데이트(Update EBS encryption)를 선택합니다.

Old console
리전에 대한 EBS 암호화의 기본 KMS 키을(를) 구성하는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 모음에서 해당 리전을 선택합니다.

  3. 탐색 창에서 EC2 대시보드를 선택합니다.

  4. 페이지의 오른쪽 위 모서리에서 계정 속성, 설정을 선택합니다.

  5. 기본 키 변경을 선택한 후 사용 가능한 KMS 키을(를) 선택합니다.

  6. Save settings(설정 저장)를 선택합니다.

암호화 기본 제공

사용자의 AWS 계정을 구성하여 생성하는 새 EBS 볼륨 및 스냅샷 사본의 암호화를 적용할 수 있습니다. 예를 들어 Amazon EBS는 인스턴스 시작 시 생성된 EBS 볼륨과 암호화되지 않은 스냅샷에서 복사하는 스냅샷을 암호화합니다. 암호화되지 않은 EBS 리소스에서 암호화된 리소스로의 이전 예제는 암호화되지 않은 리소스 암호화 섹션을 참조하세요.

기본적으로 암호화는 기존 EBS 볼륨이나 스냅샷에 영향을 미치지 않습니다.

고려 사항
  • 암호화 기본 제공은 리전별 설정입니다. 특정 기능에 대해 이 기능을 활성화하면 해당 리전의 개별 볼륨 또는 스냅샷에 대해 비활성화할 수 없습니다.

  • Amazon EBS 암호화는 기본으로 모든 현 세대이전 세대 인스턴스 유형에서 지원됩니다.

  • 스냅샷을 복사하고 새 KMS 키로 암호화하면 전체(비증분) 복사본이 생성됩니다. 이로 인해 추가 스토리지 비용이 발생합니다.

  • AWS Server Migration Service(SMS)을 사용하여 서버를 마이그레이션할 때 기본적으로 암호화를 켜지 마세요. 기본적으로 암호화가 이미 설정되어 있고 델타 복제 오류가 발생하는 경우 이 기능을 해제하세요. 대신 복제 작업을 생성할 때 AMI 암호화를 활성화하세요.

Amazon EC2 console
리전에서 암호화를 기본적으로 활성화하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 모음에서 해당 리전을 선택합니다.

  3. 탐색 창에서 EC2 대시보드를 선택합니다.

  4. 페이지의 오른쪽 위 모서리에서 계정 속성, 데이터 보호 및 보안을 선택합니다.

  5. 관리를 선택합니다.

  6. 활성화(Enable)를 선택합니다. 사용자를 대신하여 생성된 AWS 관리형 키(별칭 alias/aws/ebs)를 기본 암호화 키로 유지하거나 대칭 고객 관리형 암호화 키를 선택할 수 있습니다.

  7. EBS 암호화 업데이트(Update EBS encryption)를 선택합니다.

AWS CLI
기본 설정에 따른 암호화 보기
  • 특정 리전

    $ aws ec2 get-ebs-encryption-by-default --region region
  • 계정 내 모든 리전

    $ for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text); do default=$(aws ec2 get-ebs-encryption-by-default --region $region --query "{Encryption_By_Default:EbsEncryptionByDefault}" --output text); kms_key=$(aws ec2 get-ebs-default-kms-key-id --region $region | jq '.KmsKeyId'); echo "$region --- $default --- $kms_key"; done
기본적으로 암호화 활성화
  • 특정 리전

    $ aws ec2 enable-ebs-encryption-by-default --region region
  • 계정 내 모든 리전

    $ for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text); do default=$(aws ec2 enable-ebs-encryption-by-default --region $region --query "{Encryption_By_Default:EbsEncryptionByDefault}" --output text); kms_key=$(aws ec2 get-ebs-default-kms-key-id --region $region | jq '.KmsKeyId'); echo "$region --- $default --- $kms_key"; done
기본적으로 암호화 비활성화
  • 특정 리전

    $ aws ec2 disable-ebs-encryption-by-default --region region
  • 계정 내 모든 리전

    $ for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text); do default=$(aws ec2 disable-ebs-encryption-by-default --region $region --query "{Encryption_By_Default:EbsEncryptionByDefault}" --output text); kms_key=$(aws ec2 get-ebs-default-kms-key-id --region $region | jq '.KmsKeyId'); echo "$region --- $default --- $kms_key"; done
PowerShell
기본 설정에 따른 암호화 보기
  • 특정 리전

    PS C:\> Get-EC2EbsEncryptionByDefault -Region region
  • 계정 내 모든 리전

    PS C:\> (Get-EC2Region).RegionName | ForEach-Object { [PSCustomObject]@{ Region = $_; EC2EbsEncryptionByDefault = Get-EC2EbsEncryptionByDefault -Region $_; EC2EbsDefaultKmsKeyId = Get-EC2EbsDefaultKmsKeyId -Region $_ } } | Format-Table -AutoSize
기본적으로 암호화 활성화
  • 특정 리전

    PS C:\> Enable-EC2EbsEncryptionByDefault -Region region
  • 계정 내 모든 리전

    PS C:\> (Get-EC2Region).RegionName | ForEach-Object { [PSCustomObject]@{ Region = $_; EC2EbsEncryptionByDefault = Enable-EC2EbsEncryptionByDefault -Region $_; EC2EbsDefaultKmsKeyId = Get-EC2EbsDefaultKmsKeyId -Region $_ } } | Format-Table -AutoSize
기본적으로 암호화 비활성화
  • 특정 리전

    PS C:\> Disable-EC2EbsEncryptionByDefault -Region region
  • 계정 내 모든 리전

    PS C:\> (Get-EC2Region).RegionName | ForEach-Object { [PSCustomObject]@{ Region = $_; EC2EbsEncryptionByDefault = Disable-EC2EbsEncryptionByDefault -Region $_; EC2EbsDefaultKmsKeyId = Get-EC2EbsDefaultKmsKeyId -Region $_ } } | Format-Table -AutoSize

기존 스냅샷이나 암호화된 볼륨과 연동되어 있는 KMS 키은(는) 변경할 수 없습니다. 하지만 스냅샷 복사 작업 중에 다른 KMS 키와(과) 연동시킬 수는 있습니다. 복사된 스냅샷은 새로운 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 키 교체를 참조하세요.

암호화 시나리오

암호화된 EBS 리소스를 생성하면 볼륨 생성 파라미터에서 다른 고객 관리형 키을(를) 지정하거나 AMI 또는 인스턴스에 대한 블록 디바이스 매핑을 지정하지 않는 한, 사용자 계정의 EBS 암호화에 대한 기본 KMS 키에 의해 암호화됩니다. 자세한 내용은 EBS 암호화의 KMS 키 기본값 섹션을 참조하세요.

다음 예제에서는 볼륨 및 스냅샷의 암호화 상태를 관리할 수 있는 방법을 보여줍니다. 암호화 사례의 전체 목록은 암호화 결과표를 참조하십시오.

암호화되지 않은 볼륨(활성화되지 않은 암호화 기본 제공) 복원

암호화 기본 제공을 활성화하지 않은 상태에서는 암호화되지 않은 스냅샷에서 복원한 볼륨이 기본적으로 암호화되지 않습니다. 그러나 Encrypted 파라미터와, 선택적으로, KmsKeyId 파라미터를 설정하여, 결과로 얻은 볼륨을 암호화할 수 있습니다. 다음 다이어그램에서 프로세스를 보여 줍니다.

KmsKeyId 파라미터를 그대로 놓아두면 결과로 얻은 볼륨이 EBS 암호화에 대한 기본 KMS 키을(를) 사용하여 암호화됩니다. KMS 키 ID를 지정하여 해당 볼륨을 다른 KMS 키(으)로 암호화해야 합니다.

자세한 내용은 스냅샷에서 볼륨 생성 섹션을 참조하세요.

암호화되지 않은 볼륨(활성화된 암호화 기본 제공) 복원

암호화를 기본적으로 활성화한 경우 암호화되지 않은 스냅샷에서 복원된 볼륨에 대한 암호화가 필수이며 사용자의 기본 KMS 키을(를) 사용하는 데 암호화 파라미터는 필요하지 않습니다. 다음 다이어그램은 이러한 간단한 기본 사례를 보여 줍니다.

복원된 볼륨을 대칭 고객 관리형 암호화 키로 암호화하려면 Encrypted에서처럼 KmsKeyId암호화되지 않은 볼륨(활성화되지 않은 암호화 기본 제공) 복원 파라미터를 모두 입력해야 합니다.

암호화되지 않은 스냅샷(활성화되지 않은 암호화 기본 제공) 복사

암호화 기본 제공을 활성화하지 않은 상태에서는 암호화되지 않은 스냅샷의 사본이 기본적으로 암호화되지 않습니다. 그러나 Encrypted 파라미터와, 선택적으로, KmsKeyId 파라미터를 설정하여, 결과로 얻은 볼륨을 암호화할 수 있습니다. KmsKeyId를 생략하면 결과로 얻은 스냅샷이 사용자의 기본 KMS 키로 암호화됩니다. KMS 키 ID를 지정하여 해당 볼륨을 다른 대칭 암호화 KMS 키로 암호화해야 합니다.

다음 다이어그램에서 프로세스를 보여 줍니다.


                    암호화되지 않은 스냅샷에서 암호화된 스냅샷을 생성합니다.

암호화되지 않은 스냅샷을 암호화된 스냅샷에 복사한 다음 암호화된 스냅샷에서 볼륨을 생성하여 EBS 볼륨을 암호화할 수 있습니다. 자세한 내용은 Amazon EBS 스냅샷 복사 섹션을 참조하세요.

암호화되지 않은 스냅샷(활성화된 암호화 기본 제공) 복사

암호화를 기본적으로 활성화한 경우 암호화되지 않은 스냅샷의 복사가 필수이며 사용자의 기본 KMS 키이(가) 사용된다면 암호화 파라미터는 필요하지 않습니다. 다음 다이어그램에서 기본 사례를 보여 줍니다.


                    암호화되지 않은 스냅샷에서 암호화된 스냅샷을 생성합니다.

암호화된 볼륨의 재암호화

암호화된 스냅샷에서 CreateVolume 작업을 수행할 때 다른 KMS 키을(를) 통해 재암호화하는 옵션이 있습니다. 다음 다이어그램에서 프로세스를 보여 줍니다. 이 예에서는 KMS 키 A와 KMS 키 B, 2개의 KMS 키이(가) 있습니다. 원본 스냅샷은 KMS 키 A로 암호화됩니다. 볼륨을 생성하는 동안 파라미터로 지정된 KMS 키 B의 KMS 키 ID를 통해 원본 데이터가 자동으로 암호 해독된 다음 KMS 키 B로 재암호화됩니다.


                    암호화된 스냅샷을 복사하고 사본을 새로운 KMS 키(으)로 암호화합니다.

자세한 내용은 스냅샷에서 볼륨 생성 섹션을 참조하세요.

암호화된 스냅샷의 재암호화

복사 중에 스냅샷을 암호화하는 기능을 사용하여 자신이 소유하고 있는 이미 암호화된 스냅샷에 새 대칭 암호화 KMS 키를 적용할 수 있습니다. 새 KMS 키를 사용하여 결과 복사본에서 복원된 볼륨에만 액세스할 수 있습니다. 다음 다이어그램에서 프로세스를 보여 줍니다. 이 예에서는 KMS 키 A와 KMS 키 B, 2개의 KMS 키이(가) 있습니다. 원본 스냅샷은 KMS 키 A로 암호화됩니다. 복사하는 동안 파라미터로 지정된 KMS 키 B의 KMS 키 ID를 통해 원본 데이터가 자동으로 KMS 키 B로 재암호화됩니다.


                    암호화된 스냅샷을 복사하고 사본을 새로운 KMS 키(으)로 암호화합니다.

관련된 시나리오에서 자신과 공유된 스냅샷의 복사본에 새 암호화 파라미터를 적용하도록 선택할 수도 있습니다. 기본적으로 이 복사본은 스냅샷의 소유자가 공유하는 KMS 키(으)로 암호화됩니다. 하지만 복사 프로세스 중에 자신이 관리하는 다른 KMS 키을(를) 사용하여 공유 스냅샷의 복사본을 만드는 게 좋습니다. 이를 통해 원래 KMS 키이(가) 손상되거나 소유자가 어떤 이유로든 KMS 키을(를) 취소하는 경우 볼륨에 대한 액세스 권한을 보호할 수 있습니다. 자세한 내용은 암호화 및 스냅샷 복사 섹션을 참조하세요.

암호화된 볼륨과 암호화되지 않은 볼륨 간 데이터 마이그레이션

암호화된 볼륨과 암호화되지 않은 볼륨에 모두 액세스할 수 있는 경우, 둘 사이에서 자유롭게 데이터를 전송할 수 있습니다. EC2는 암호화 및 복호화 작업을 투명하게 수행합니다.

예를 들어 rsync 명령을 사용하여 데이터를 복사합니다. 다음 명령에서 소스 데이터는 /mnt/source에 있고 대상 볼륨은 /mnt/destination에 마운트되어 있습니다.

[ec2-user ~]$ sudo rsync -avh --progress /mnt/source/ /mnt/destination/

암호화 결과

다음 표에서는 가능한 각 설정 조합에 대한 암호화 결과를 설명합니다.

암호화를 활성화합니까? 암호화를 기본 설정합니까? 볼륨의 소스 기본값(고객 관리형 키가 지정되지 않음) 사용자 지정(고객 관리형 키가 지정됨)
아니요 아니요 새(빈) 볼륨 암호화되지 않음 해당 사항 없음
아니요 아니요 암호화되지 않은 소유 스냅샷 암호화되지 않음
아니요 아니요 암호화된 소유 스냅샷 동일한 키로 암호화됨
아니요 아니요 암호화되지 않은 공유 스냅샷 암호화되지 않음
아니요 아니요 암호화된 공유 스냅샷 기본 고객 관리형 키로 암호화됨*
아니요 새 볼륨 기본 고객 관리형 키로 암호화됨 지정된 고객 관리형 키로 암호화됨**
아니요 암호화되지 않은 소유 스냅샷 기본 고객 관리형 키로 암호화됨
아니요 암호화된 소유 스냅샷 동일한 키로 암호화됨
아니요 암호화되지 않은 공유 스냅샷 기본 고객 관리형 키로 암호화됨
아니요 암호화된 공유 스냅샷 기본 고객 관리형 키로 암호화됨
아니요 새(빈) 볼륨 기본 고객 관리형 키로 암호화됨 해당 사항 없음
아니요 암호화되지 않은 소유 스냅샷 기본 고객 관리형 키로 암호화됨
아니요 암호화된 소유 스냅샷 동일한 키로 암호화됨
아니요 암호화되지 않은 공유 스냅샷 기본 고객 관리형 키로 암호화됨
아니요 암호화된 공유 스냅샷 기본 고객 관리형 키로 암호화됨
새 볼륨 기본 고객 관리형 키로 암호화됨 지정된 고객 관리형 키로 암호화됨
암호화되지 않은 소유 스냅샷 기본 고객 관리형 키로 암호화됨
암호화된 소유 스냅샷 동일한 키로 암호화됨
암호화되지 않은 공유 스냅샷 기본 고객 관리형 키로 암호화됨
암호화된 공유 스냅샷 기본 고객 관리형 키로 암호화됨

* 이는 AWS 계정 및 리전의 EBS 암호화에 사용되는 기본 고객 관리형 키입니다. 기본적으로 EBS에 고유한 AWS 관리형 키를 사용하거나 고객 관리형 키를 지정할 수 있습니다. 자세한 내용은 EBS 암호화의 KMS 키 기본값 섹션을 참조하세요.

** 이는 시작할 때 볼륨에 지정된 고객 관리형 키입니다. AWS 계정 및 리전에 대한 기본 고객 관리형 키 대신 이 고객 관리형 키가 사용됩니다.

API 및 CLI를 사용한 암호화 기본값 설정

다음 API 작업 및 CLI 명령을 사용하여 암호화 기본 제공과 기본 KMS 키을(를) 관리할 수 있습니다.

API 작업 CLI 명령 설명

DisableEbsEncryptionByDefault

disable-ebs-encryption-by-default

암호화를 기본적으로 비활성화합니다.

EnableEbsEncryptionByDefault

enable-ebs-encryption-by-default

암호화를 기본적으로 활성화합니다.

GetEbsDefaultKmsKeyId

get-ebs-default-kms-key-id

기본 KMS 키을(를) 설명합니다.

GetEbsEncryptionByDefault

get-ebs-encryption-by-default

암호화 기본 제공을 활성화할지 여부를 나타냅니다.

ModifyEbsDefaultKmsKeyId

modify-ebs-default-kms-key-id

EBS 볼륨을 암호화하는 데 사용되는 기본 KMS 키을(를) 변경합니다.

ResetEbsDefaultKmsKeyId

reset-ebs-default-kms-key-id

AWS 관리형 키를 EBS 볼륨을 암호화하는 데 사용되는 KMS 키 기본값으로 재설정합니다.