전송 중 VPC 암호화 적용 - Amazon Virtual Private Cloud

전송 중 VPC 암호화 적용

VPC 암호화 제어는 트래픽 흐름의 암호화 상태를 모니터링하기 위한 신뢰할 수 있는 중앙 집중식 제어를 제공하고, 일반 텍스트 통신을 허용하는 리소스를 식별하고, 최종적으로 리전의 VPC 내부 및 전체에서 전송 중 암호화를 적용하는 메커니즘을 제공하는 보안 및 규정 준수 기능입니다.

VPC 암호화 제어는 애플리케이션 계층 암호화와 AWS Nitro System 하드웨어의 내장 전송 중 암호화 기능을 모두 사용하여 암호화 적용을 보장합니다. 또한 이 기능은 기본 하드웨어 계층 암호화를 최신 Nitro 인스턴스를 넘어 Fargate, Application Load Balancer, Transit Gateways 등의 다른 AWS 서비스로 확장합니다.

이 기능은 모든 트래픽의 암호화 상태를 파악하고 제어하려는 사용자를 위해 설계되었습니다. 특히 HIPAA, FedRamp, PCI DSS와 같은 규정 준수 표준을 충족하기 위해 데이터 암호화가 중요한 산업에서 유용합니다. 보안 관리자와 클라우드 아키텍트는 이를 사용하여 AWS 환경 전체에서 전송 중 암호화 정책을 중앙에서 적용할 수 있습니다.

이 기능은 모니터링 모드와 적용 모드의 두 가지 모드에서 사용할 수 있습니다.

암호화 제어 모드

모니터링 모드

모니터링 모드에서 암호화 제어는 VPC 내부 및 VPC 전체 AWS 리소스 간 트래픽 흐름의 암호화 상태에 대한 가시성을 제공합니다. 또한 전송 중 암호화를 적용하지 않는 VPC 리소스를 식별하는 데도 도움이 됩니다. 트래픽이 암호화되었는지 여부를 알려주는 보강 필드(encryption-status)를 내보내도록 VPC 흐름 로그를 구성할 수 있습니다. 콘솔 또는 GetVpcResourcesBlockingEncryptionEnforcement 명령을 사용하여 전송 중 암호화를 적용하지 않는 리소스를 식별할 수도 있습니다.

참고

기존 VPC는 먼저 모니터링 모드에서만 활성화할 수 있습니다. 이를 통해 일반 텍스트 트래픽을 허용하거나 허용할 수 있는 리소스를 파악할 수 있습니다. 이러한 리소스가 암호화를 적용하기 시작(또는 해당 리소스에 대한 제외 항목을 생성)한 후에만 VPC에서 적용 모드를 켤 수 있습니다.

적용 모드

적용 모드에서는 VPC 암호화 제어가 VPC 경계 내에서 암호화되지 않은 트래픽을 허용하는 기능 또는 서비스를 사용하지 못하도록 합니다. 기존 VPC에서는 적용 모드에서 암호화 제어를 직접 활성화할 수 없습니다. 먼저 모니터링 모드에서 암호화 제어를 켜고, 규정을 준수하지 않는 리소스를 식별 및 수정하여 전송 중 암호화를 적용한 다음 적용 모드를 켜야 합니다. 그러나 새 VPC의 경우 생성 중에 적용 모드에서 암호화 제어를 켤 수 있습니다.

적용 모드가 활성화되면 기본 내장 암호화 또는 인터넷 게이트웨이 등을 지원하지 않는 이전 EC2 인스턴스와 같이 암호화되지 않은 VPC 리소스를 생성하거나 연결할 수 없습니다. 암호화가 적용된 VPC에서 규정을 준수하지 않는 리소스를 실행하려면 해당 리소스에 대한 제외 항목을 생성해야 합니다.

트래픽 흐름의 암호화 상태 모니터링

VPC 흐름 로그의 encryption-status 필드를 사용하여 VPC 내 트래픽 흐름의 암호화 상태를 감사할 수 있습니다. 다음과 같은 값을 가질 수 있습니다.

  • 0 = 암호화되지 않음

  • 1 = Nitro로 암호화됨(VPC 암호화 제어에서 관리)

  • 2 = 애플리케이션으로 암호화됨

    • AWS 서비스에 대한 인터페이스 엔드포인트의 TCP 포트 443에서의 흐름 *

    • 게이트웨이 엔드포인트의 TCP 포트 443에서의 흐름 *

    • VPC 엔드포인트를 통해 암호화된 Redshift 클러스터로의 흐름 **

  • 3 = Nitro와 애플리케이션 모두로 암호화됨

  • (-) = 암호화 상태 알 수 없음 또는 VPC 암호화 제어 꺼짐

참고:

* 인터페이스 및 게이트웨이 엔드포인트의 경우 AWS는 암호화 상태를 확인하기 위해 패킷 데이터를 살펴보지 않고, 대신 사용된 포트를 기반으로 암호화 상태를 추정합니다.

** 지정된 AWS 관리형 엔드포인트의 경우 AWS는 서비스 구성의 TLS 요구 사항에 따라 암호화 상태를 확인합니다.

VPC 흐름 로그 제한 사항

  • VPC 암호화 제어에 대한 흐름 로그를 활성화하려면 encryption-status 필드가 포함된 새 흐름 로그를 수동으로 생성해야 합니다. encryption-status 필드는 기존 흐름 로그에 자동으로 추가되지 않습니다.

  • 흐름 로그에 더 자세한 내용을 포함하려면 흐름 로그에 ${traffic-path} 및 ${flow-direction} 필드를 추가하는 것이 좋습니다.

    예시:

    aws ec2 create-flow-logs \ --resource-type VPC \ --resource-ids vpc-12345678901234567 \ --traffic-type ALL \ --log-group-name my-flow-logs \ --deliver-logs-permission-arn arn:aws:iam::123456789101:role/publishFlowLogs --log-format '${encryption-status} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${traffic-path} ${flow-direction} ${reject-reason}'

VPC 암호화 제어 제외 항목

VPC 암호화 제어 적용 모드에서는 VPC의 모든 리소스에 암호화를 적용해야 합니다. 이렇게 하면 리전의 AWS 내에서 암호화가 보장됩니다. 그러나 사용자가 종단 간 암호화를 구성하고 유지 관리하는 AWS의 네트워크 외부에서 연결을 허용하는 인터넷 게이트웨이, NAT 게이트웨이 또는 가상 프라이빗 게이트웨이와 같은 리소스가 있을 수 있습니다. 암호화가 적용된 VPC에서 이러한 리소스를 실행하기 위해 리소스 제외 항목을 생성할 수 있습니다. 제외 항목은 고객이 암호화 유지 관리(일반적으로 애플리케이션 계층)를 담당하는 리소스에 대해 감사 가능한 예외를 생성합니다.

VPC 암호화 제어에서 지원되는 제외 항목은 단 8개입니다. VPC에 이러한 리소스가 있고 적용 모드로 전환하려는 경우, 모니터링 모드에서 적용 모드로 전환할 때 이러한 제외 항목을 추가해야 합니다. 다른 리소스는 제외할 수 없습니다. 이러한 리소스에 대한 제외 항목을 생성하여 VPC를 적용 모드로 마이그레이션할 수 있습니다. 이러한 리소스 간 트래픽 흐름의 암호화에 대한 책임은 사용자에게 있습니다.

  • 인터넷 게이트웨이

  • NAT 게이트웨이

  • 외부 전용 인터넷 게이트웨이

  • 암호화가 적용되지 않은 VPC에 대한 VPC 피어링 연결(자세한 시나리오는 VPC 피어링 지원 섹션 참조)

  • 가상 프라이빗 게이트웨이

  • VPC 내 Lambda 함수

  • VPC Lattice

  • Elastic File System

워크플로 구현

  1. 모니터링 활성화 - 모니터링 모드에서 VPC 암호화 제어를 생성합니다.

  2. 트래픽 분석 - 흐름 로그를 검토하여 트래픽 흐름의 암호화 상태를 모니터링합니다.

  3. 리소스 분석 - 콘솔 또는 GetVpcResourcesBlockingEncryptionEnforcement 명령을 사용하여 전송 중 암호화를 적용하지 않는 리소스를 식별합니다.

  4. 준비 [선택 사항] - 적용 모드를 켜려는 경우 리소스 마이그레이션 및 필수 제외 항목을 계획합니다.

  5. 적용 [선택 사항] - 필수 제외 항목이 구성된 적용 모드로 전환합니다.

  6. 감사 - 흐름 로그를 통해 지속적인 규정 준수 모니터링을 수행합니다.

자세한 설정 지침은 블로그 VPC 암호화 제어 기능 소개: 리전 내 VPC 간 및 VPC 내 전송 중 암호화 적용을 참조하세요.

VPC 암호화 제어 상태

VPC 암호화 제어는 다음 상태 중 하나일 수 있습니다.

creating

VPC 암호화 제어가 VPC에서 생성되고 있습니다.

modify-in-progress

VPC 암호화 제어가 VPC에서 수정되고 있습니다.

deleting

VPC 암호화 제어가 VPC에서 삭제되고 있습니다.

available

VPC 암호화 제어가 VPC에 모니터링 모드 또는 적용 모드를 성공적으로 구현했습니다.

AWS 서비스 지원 및 호환성

암호화 규정을 준수하려면 리소스가 하드웨어 계층 또는 애플리케이션 계층에서 전송 중 암호화를 항상 적용해야 합니다. 대부분의 리소스의 경우 별도의 조치가 필요하지 않습니다.

자동 규정 준수를 제공하는 서비스

PrivateLink에서 지원하는 대부분의 AWS 서비스(교차 리전 PrivateLinks 포함)는 애플리케이션 계층에서 암호화된 트래픽을 허용합니다. 이러한 리소스를 변경할 필요는 없습니다. AWS는 애플리케이션 계층 암호화되지 않은 트래픽을 자동으로 차단합니다. Redshift 클러스터(프로비저닝 및 서버리스 모두 - 기본 리소스를 수동으로 마이그레이션해야 함) 등 몇 가지 예외가 있습니다.

자동으로 마이그레이션되는 리소스

Network Load Balancer, Application Load Balancer, Fargate 클러스터, EKS 컨트롤 플레인은 모니터링 모드를 켜면 암호화를 기본적으로 지원하는 하드웨어로 자동으로 마이그레이션됩니다. 이러한 리소스를 수정할 필요는 없습니다. AWS는 마이그레이션을 자동으로 처리합니다.

수동 마이그레이션이 필요한 리소스

특정 VPC 리소스 및 서비스에서는 기본 인스턴스 유형을 선택해야 합니다. 모든 최신 EC2 인스턴스는 전송 중 암호화를 지원합니다. 서비스에서 이미 최신 EC2 인스턴스를 사용하는 경우 변경할 필요가 없습니다. 콘솔 또는 GetVpcResourcesBlockingEncryptionEnforcement 명령을 사용하여 이러한 서비스에서 이전 인스턴스를 사용하고 있는지 확인할 수 있습니다. 이러한 리소스를 확인한 경우 Nitro System 하드웨어의 기본 암호화를 지원하는 최신 EC2 인스턴스로 업그레이드해야 합니다. 이러한 서비스에는 EC2 인스턴스, Auto Scaling 그룹, RDS(모든 데이터베이스 및 Document-DB), 프로비저닝된 Elasticache, Amazon Redshift 프로비저닝 클러스터, EKS, ECS-EC2, 프로비저닝된 OpenSearch, EMR이 포함됩니다.

호환되는 리소스:

다음 리소스는 VPC 암호화 제어와 호환됩니다.

  • Nitro 기반 EC2 인스턴스

  • Network Load Balancer(제한 있음)

  • Application Load Balancers

  • AWS Fargate 클러스터

  • Amazon Elastic Kubernetes Service(EKS)

  • Amazon EC2 Auto Scaling 그룹

  • Amazon Relational Database Service(RDS - 모든 데이터베이스)

  • Amazon ElastiCache 노드 기반 클러스터

  • Amazon Redshift 프로비저닝된 클러스터 및 서버리스 클러스터

  • Amazon Elastic Container Service(ECS) - EC2 컨테이너 인스턴스

  • Amazon OpenSearch Service

  • Amazon Elastic MapReduce(EMR)

  • Amazon Managed Streaming for Apache Kafka(Amazon MSK)

  • VPC 암호화 제어는 PrivateLink를 통해 액세스하는 모든 AWS 서비스에 대해 애플리케이션 계층에서 암호화를 적용합니다. 애플리케이션 계층에서 암호화되지 않은 모든 트래픽은 적용 모드에서 암호화 제어를 사용하여 VPC 내에서 호스팅되는 PrivateLink 엔드포인트에 의해 차단됩니다.

서비스별 제한 사항

Network Load Balancer 제한 사항

TLS 구성: 포함된 VPC에서 암호화 제어를 적용하는 경우, TLS 리스너를 사용하여 암호화 및 복호화 작업을 로드 밸런서로 오프로드할 수 없습니다. 그러나 TLS 암호화 및 복호화를 수행하도록 대상을 구성할 수는 있습니다.

Redshift 프로비저닝 및 서버리스

고객은 기존 클러스터/엔드포인트가 있는 VPC에서 적용 모드로 이동할 수 없습니다. Redshift에서 VPC 암호화 제어를 사용하려면 스냅샷에서 클러스터 또는 네임스페이스를 복원해야 합니다. 프로비저닝된 클러스터의 경우 기존 Redshift 클러스터의 스냅샷을 생성한 다음 클러스터 스냅샷에서 복원 작업을 사용하여 스냅샷에서 복원하세요. 서버리스의 경우 기존 네임스페이스의 스냅샷을 생성한 다음 서버리스 작업 그룹에서 스냅샷에서 복원 작업을 사용하여 스냅샷에서 복원하세요. 스냅샷 및 복원 프로세스를 수행하지 않으면 기존 클러스터 또는 네임스페이스에서 VPC 암호화 제어를 활성화할 수 없습니다. 스냅샷 생성에 대해서는 Amazon Redshift documentation을 참조하세요.

Amazon MSK(Managed streaming for Apache Kafka)

이 기능은 자체 VPC 내 4.1 버전의 새 클러스터에서 지원됩니다. 다음 단계는 MSK에서 VPC 암호화를 사용하는 데 도움이 됩니다.

  • 고객이 다른 MSK 클러스터가 없는 VPC에서 VPC 암호화를 활성화합니다.

  • 고객이 Kafka 버전이 4.1이고 instancetype이 M7g인 클러스터를 생성합니다.

리전 및 영역 제한 사항

  • 로컬 영역 서브넷: 적용 모드에서 지원되지 않으므로 VPC에서 삭제해야 합니다.

VPC 피어링 지원

두 VPC 간의 VPC 피어링을 통한 전송 중 암호화를 보장하려면 두 VPC가 동일한 리전에 있어야 하며 제외 사항 없이 적용 모드에서 암호화 제어가 켜져 있어야 합니다. 암호화가 적용된 VPC를 다른 리전에 상주하거나 적용 모드(제외 항목 없음)에서 암호화 제어가 활성화되지 않은 다른 VPC와 피어링하려면 피어링 제외 항목을 생성해야 합니다.

두 VPC가 적용 모드이고 서로 피어링하는 경우 모드를 적용에서 모니터링으로 변경할 수 없습니다. VPC 암호화 제어 모드를 모니터링으로 수정하기 전에 먼저 피어링 제외 항목을 생성해야 합니다.

Transit Gateway 암호화 지원

암호화 제어가 켜져 있는 VPC 간의 트래픽을 암호화하려면 Transit Gateway에서 암호화 지원을 명시적으로 활성화해야 합니다. 기존 Transit Gateway에서 암호화를 활성화해도 기존 트래픽 흐름은 중단되지 않으며 VPC 연결은 암호화된 경로로 원활하게 자동으로 마이그레이션됩니다. Transit Gateway를 통해 적용 모드(제외 항목 없음)에 있는 두 VPC 간의 트래픽은 100% 암호화된 경로를 통과합니다. 또한 Transit Gateway의 암호화를 사용하면 서로 다른 암호화 제어 모드에 있는 두 VPC도 연결할 수 있습니다. 암호화가 적용되지 않은 VPC에 연결된 VPC에서 암호화 제어를 적용하려는 경우 이를 사용해야 합니다. 이러한 시나리오에서는 암호화가 적용된 VPC 내의 모든 트래픽(VPC 간 트래픽을 포함)이 암호화됩니다. VPC 간 트래픽은 암호화가 적용된 VPC의 리소스와 Transit Gateway 간에 암호화됩니다. 그 외에도 암호화는 미적용 VPC에서 트래픽이 전송되는 리소스에 따라 달라지며 암호화가 보장되지 않습니다(VPC가 적용 모드가 아니기 때문). 모든 VPC는 동일한 리전에 있어야 합니다(여기에서 세부 정보 참조).

암호화 제어 상태가 다른 VPC 간의 트래픽 흐름
  • 이 다이어그램에서 VPC 1, VPC 2, VPC3은 암호화 제어가 적용 모드로 설정되어 있으며, 모니터링 모드에서 실행되는 암호화 제어가 있는 VPC 4에 연결되어 있습니다.

  • VPC1, VPC2, VPC3 간의 모든 트래픽은 암호화됩니다.

  • 자세히 설명하면, VPC 1의 리소스와 VPC 4의 리소스 간의 모든 트래픽은 Nitro System 하드웨어에서 제공하는 암호화를 사용하여 Transit Gateway까지 암호화됩니다. 그 외에도 암호화 상태는 VPC 4의 리소스에 따라 달라지며 암호화가 보장되지 않습니다.

Transit Gateway 암호화 지원에 대한 자세한 내용은 Transit Gateway 설명서를 참조하세요.

가격 책정

요금에 관한 자세한 내용은 Amazon VPC 요금을 참조하세요.

AWS CLI 명령 참조

설정 및 구성

모니터링 및 문제 해결

정리

추가 리소스

자세한 설정 지침은 블로그 VPC 암호화 제어 기능 소개: 리전 내 VPC 간 및 VPC 내 전송 중 암호화 적용을 참조하세요.

API에 대한 자세한 내용은 EC2 API 참조 안내서를 참조하세요.