Amazon EC2의 데이터 보호 - Amazon Elastic Compute Cloud

Amazon EC2의 데이터 보호

AWS 공동 책임 모델은 Amazon Elastic Compute Cloud의 데이터 보호에 적용됩니다. 이 모델에서 설명하는 것처럼 AWS는 모든 AWS 클라우드를 실행하는 글로벌 인프라를 보호할 책임이 있습니다. 사용자는 인프라에서 호스팅되는 콘텐츠를 관리해야 합니다. 사용하는 AWS 서비스의 보안 구성과 관리 작업에 대한 책임도 사용자에게 있습니다. 데이터 프라이버시에 대한 자세한 내용은 데이터 프라이버시 FAQ를 참조하세요. 유럽의 데이터 보호에 대한 자세한 내용은 AWS 보안 블로그AWS 공동 책임 모델 및 GDPR 블로그 게시물을 참조하세요.

데이터를 보호하려면 AWS 계정보안 인증 정보를 보호하고 AWS IAM Identity Center또는 AWS Identity and Access Management(IAM)를 통해 개별 사용자 계정을 설정하는 것이 좋습니다. 이렇게 하면 개별 사용자에게 자신의 직무를 충실히 이행하는 데 필요한 권한만 부여됩니다. 또한 다음과 같은 방법으로 데이터를 보호하는 것이 좋습니다.

  • 각 계정에 멀티 팩터 인증 설정(MFA)을 사용하세요.

  • SSL/TLS를 사용하여 AWS 리소스와 통신하세요. TLS 1.2는 필수이며 TLS 1.3을 권장합니다.

  • AWS CloudTrail로 API 및 사용자 활동 로깅을 설정하세요. AWS 활동 캡처에 CloudTrail 추적을 사용하는 방법에 대한 자세한 내용은 AWS CloudTrail 사용 설명서CloudTrail 추적 작업을 참조하세요.

  • AWS 암호화 솔루션을 AWS 서비스 내의 모든 기본 보안 컨트롤과 함께 사용하세요.

  • Amazon S3에 저장된 민감한 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용하세요.

  • 명령행 인터페이스 또는 API를 통해 AWS에 액세스할 때 FIPS 140-3 검증된 암호화 모듈이 필요한 경우, FIPS 엔드포인트를 사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 내용은 Federal Information Processing Standard(FIPS) 140-3을 참조하세요.

고객의 이메일 주소와 같은 기밀 정보나 중요한 정보는 태그나 이름 필드와 같은 자유 양식 필드에 입력하지 않는 것이 좋습니다. 여기에는 Amazon EC2 또는 기타 AWS 서비스에서 콘솔, API, AWS CLI 또는 AWS SDK를 사용하여 작업하는 경우가 포함됩니다. 이름에 사용되는 태그 또는 자유 형식 텍스트 필드에 입력하는 모든 데이터는 청구 또는 진단 로그에 사용될 수 있습니다. 외부 서버에 URL을 제공할 때 해당 서버에 대한 요청을 검증하기 위해 보안 인증 정보를 URL에 포함시켜서는 안 됩니다.

Amazon EBS 데이터 보안

Amazon EBS 볼륨은 포맷되지 않은 원시 블록 디바이스로 제공됩니다. 이러한 디바이스는 EBS 인프라에서 생성되는 논리적 디바이스이며 Amazon EBS 서비스는 고객이 사용하거나 재사용하기 전에 디바이스가 논리적으로 비어 있는지(즉, 원시 블록이 0이 되거나 암호화된 의사 난수 데이터를 포함하는지) 확인합니다.

DoD 5220.22-M(국가 산업 보안 프로그램 운영 매뉴얼) 또는 NIST 800-88(미디어 삭제 지침)에 자세히 설명된 것과 같이 사용 후, 사용 전 또는 사용 전후에 특정 방법을 사용하여 모든 데이터를 지워야 하는 절차가 있는 경우 Amazon EBS에서 해당 작업을 수행할 수 있습니다. 해당 블록 수준 활동은 Amazon EBS 서비스 내의 기본 스토리지 미디어에 반영됩니다.

저장 중 암호화

EBS 볼륨

Amazon EBS 암호화는 EBS 볼륨과 스냅샷에 대한 암호화 솔루션입니다. 이는 AWS KMS keys을(를) 사용합니다. 자세한 내용은 Amazon EBS 사용 설명서Amazon EBS encryption을 참조하세요.

[Windows 인스턴스] 또한 폴더 및 파일 수준 암호화에 Microsoft EFS 및 NTFS 권한을 사용할 수도 있습니다.

인스턴스 스토어 볼륨

인스턴스의 하드웨어 모듈에 구현된 XTS-AES-256 암호를 사용하여 NVMe 인스턴스 스토어 볼륨의 데이터를 암호화합니다. 로컬로 연결된 NVMe 스토리지 디바이스에 기록된 데이터를 암호화하는 데 사용되는 키는 고객별 및 볼륨별입니다. 키는 AWS 직원이 액세스할 수 없는 하드웨어 모듈에 의해 생성되고 그 안에만 상주합니다. 인스턴스가 중지되거나 종료되면 암호화 키가 손상되어 복구가 불가능해집니다. 이 암호화를 비활성화할 수 없으며, 사용자 자신의 암호화 키를 제공할 수 없습니다.

H1, D3 및 D3en 인스턴스의 HDD 인스턴스 스토어 볼륨에 저장되는 데이터는 XTS-AES-256 및 일회용 키를 사용하여 암호화됩니다.

인스턴스를 중지하거나 최대 절전 모드로 전환하거나 종료하면 인스턴스 스토어 볼륨의 모든 스토리지 블록이 재설정됩니다. 따라서 다른 인스턴스의 인스턴스 스토어를 통해 데이터를 액세스할 수 없습니다.

메모리

메모리 암호화는 다음 인스턴스에서 활성화됩니다.

  • AWS Graviton 프로세서가 탑재된 인스턴스. AWS Graviton2, AWS Graviton3 및 AWS Graviton3E는 상시 메모리 암호화를 지원합니다. 암호화 키는 호스트 시스템 내에서 안전하게 생성되고 호스트 시스템을 벗어나지 않으며 호스트를 재부팅하거나 전원을 끌 때 삭제됩니다. 자세한 내용은 AWS Graviton 프로세서를 참조하세요.

  • 3세대 인텔 제온 스케일러블 프로세서(Ice Lake)가 있는 인스턴스(예: M6i 인스턴스)와 4세대 인텔 제온 스케일러블 프로세서(Sapphire Rapids)가 있는 인스턴스(예: M7i 인스턴스)입니다. 이 프로세서는 인텔 전체 메모리 암호화(TME)를 사용한 상시 메모리 암호화를 지원합니다.

  • 3세대 AMD EPYC 프로세서(Milan)가 있는 인스턴스(예: M6a 인스턴스)와 4세대 AMD EPYC 프로세서(Genoa)가 있는 인스턴스(예: M7a 인스턴스)입니다. 이러한 프로세서에서는 AMD SME(Secure Memory Encryption)를 사용하는 상시 메모리 암호화를 지원합니다. 3세대 AMD EPYC 프로세서(Milan)가 있는 인스턴스에서는 AMD Secure Encrypted Virtualization-Secure Nested Paging(SEV-SNP)도 지원합니다.

전송 중 암호화

물리적 계층에서의 암호화

AWS 글로벌 네트워크를 통해 AWS 리전으로 흐르는 모든 데이터는 AWS 보안 시설을 떠나기 전에 물리적 계층에서 자동으로 암호화됩니다. AZ 간에 전송되는 모든 트래픽은 암호화됩니다. 이 섹션에 나열된 암호화 계층을 비롯한 추가 암호화 계층은 추가적인 보호 기능을 제공할 수 있습니다.

Amazon VPC 피어링 및 전송 게이트웨이 리전 간 피어링에서 제공하는 암호화

Amazon VPC 피어링 및 전송 게이트웨이 피어링을 사용하는 모든 리전 간 트래픽은 리전을 종료하면 자동으로 대량 암호화됩니다. 앞서 이 섹션에서 설명한 것처럼 AWS 보안 시설에서 나가기 전에 모든 트래픽에 대한 추가 암호화 계층이 물리적 계층에서 자동으로 제공됩니다.

인스턴스 간 암호화

AWS는 모든 유형의 EC2 인스턴스 간 보안 프라이빗 연결을 제공합니다. 또한 일부 인스턴스 유형은 기본 Nitro 시스템 하드웨어의 오프로드 기능을 사용하여 인스턴스 간 전송 중 트래픽을 자동으로 암호화합니다. 이 암호화는 256비트 암호화와 함께 관련 데이터로 인증된 암호화(AEAD) 알고리즘을 사용합니다. 네트워크 성능에는 영향을 미치지 않습니다. 인스턴스 간에 이러한 전송 중 트래픽 암호화를 추가로 지원하려면 다음 요구 사항을 충족해야 합니다.

  • 이러한 인스턴스는 다음 인스턴스 유형을 사용합니다.

    • 범용: M5dn, M5n, M5zn, M6a, M6i, M6id, M6idn, M6in, M7a, M7g, M7gd, M7i, M7i-flex, M8g

    • 컴퓨팅 최적화: C5a, C5ad, C5n, C6a, C6gn, C6i, C6id, C6in, C7a, C7g, C7gd, C7gn, C7i, C7i-flex, C8g

    • 메모리 최적화: R5dn, R5n, R6a, R6i, R6idn, R6in, R6id, R7a, R7g, R7gd, R7i, R7iz, R8g, U-3tb1, U-6tb1, U-9tb1, U-12tb1, U-18tb1, U-24tb1, U7i-12tb, U7in-16tb, U7in-24tb, U7in-32tb, X2idn, X2iedn, X2iezn, X8g

    • 스토리지 최적화: D3, D3en, I3en, I4g, I4i, Im4gn, Is4gen

    • 가속 컴퓨팅: DL1, DL2q, G4ad, G4dn, G5, G6, G6e, Gr6, Inf1, Inf2, P3dn, P4d, P4de, P5, P5e, Trn1, Trn1n, VT1

    • 고성능 컴퓨팅: Hpc6a, Hpc6id, Hpc7a, Hpc7g

  • 인스턴스가 동일한 리전에 있습니다.

  • 인스턴스가 동일한 VPC 또는 피어링된 VPC에 있으며, 트래픽이 로드 밸런서나 전송 게이트웨이 같은 가상 네트워크 디바이스 또는 서비스를 통과하지 않습니다.

앞서 이 섹션에서 설명한 것처럼 AWS 보안 시설에서 나가기 전에 모든 트래픽에 대한 추가 암호화 계층이 물리적 계층에서 자동으로 제공됩니다.

AWS CLI를 사용하여 인스턴스 간에 전송 중인 트래픽을 암호화하는 인스턴스 유형을 보려면

다음 describe-instance-types 명령을 사용합니다.

aws ec2 describe-instance-types \ --filters Name=network-info.encryption-in-transit-supported,Values=true \ --query "InstanceTypes[*].[InstanceType]" \ --output text | sort
AWS Outposts로의 암호화

Outposts는 AWS 홈 리전에 대한 서비스 링크라는 특정 네트워크 연결을 생성하고 선택적으로 사용자가 지정한 VPC 서브넷에 대한 프라이빗 연결을 생성합니다. 이러한 연결을 통한 모든 트래픽은 완전히 암호화됩니다. 자세한 내용은 AWS Outposts 사용 설명서에서 서비스 링크를 통한 연결전송 중 암호화를 참조하세요.

원격 액세스 암호화

SSH 및 RDP 프로토콜은 직접 또는 EC2 인스턴스 연결을 통해 인스턴스에 원격으로 액세스할 수 있는 보안 통신 채널을 제공합니다. AWS Systems Manager Session Manager 및 Run Command를 사용하는 인스턴스에 대한 원격 액세스는 TLS 1.2를 사용하여 암호화되며, 연결을 생성하기 위한 요청은 SigV4를 사용하여 서명되고 AWS Identity and Access Management에 의해 인증되고 권한이 부여됩니다.

전송 계층 보안(TLS)과 같은 암호화 프로토콜을 사용하여 클라이언트와 Amazon EC2 인스턴스 간에 전송 중인 민감한 데이터를 암호화할 책임은 사용자에게 있습니다.

(Windows 인스턴스) EC2 인스턴스와 AWS API 엔드포인트 또는 기타 중요한 원격 네트워크 서비스 간에는 암호화된 연결만 허용해야 합니다. 아웃바운드 보안 그룹 또는 Windows 방화벽 규칙을 통해 이를 적용할 수 있습니다.