본문 바로가기

AWS

[AWS] VPC Encryption Controls 구성 가이드

반응형

Amazon VPC에 새 기능 VPC Encryption Controls 가 추가되었습니다. 이 기능은 VPC 내부 및 VPC 간 트래픽을 자동으로 암호화하고, 암호화 상태를 중앙에서 모니터링 및 강제 적용할 수 있게 해줍니다.

 

[AWS] VPC Encryption Controls 구성 가이드
[AWS] VPC Encryption Controls 구성 가이드

기능 개요 및 모드

VPC Encryption Controls는 다음 두 가지 모드를 제공합니다.

  • Monitor Mode
    • VPC Flow Logs에 encryption-status 필드가 추가됩니다. 이 필드를 통해 해당 트래픽이 하드웨어 암호화(Nitro 기반), 애플리케이션-층 암호화 (예: TLS), 또는 둘 다인지, 혹은 암호화되지 않은 상태인지 확인할 수 있습니다.
    • 먼저 모니터링을 활성화하여 “어디에서 평문 트래픽이 발생하고 있는지” 파악할 수 있습니다.
  • Enforce Mode
    • 암호화가 보장되지 않는 리소스(Nitro 미지원 EC2 인스턴스, 암호화 불가 인터넷 게이트웨이/ NAT 게이트웨이 등)는 생성이 제한되며, 평문 트래픽은 거부됩니다.
    • 새로운 VPC 생성 시 처음부터 Enforce Mode로 설정할 수 있고, 기존 VPC는 먼저 Monitor Mode로 시작해, 모든 리소스를 암호화 지원 상태로 전환한 뒤 Enforce로 전환해야 합니다.
  • 지원 리소스
    • Nitro 기반 EC2, NLB/ALB, Fargate, EKS 등 주요 AWS 서비스 리소스는 자동으로 암호화 지원 인프라로 마이그레이션되거나 암호화 적용이 보장됩니다.
    • 일부 레거시 인스턴스나, 암호화 적용이 어려운 인터넷 게이트웨이 등은 예외로 처리하며, 리소스별 제외(exclusion) 구성을 지정할 수 있습니다.

설정 단계 — 기존 VPC에 적용하기

기존 환경이 있다면 다음 절차로 Encryption Controls를 적용할 수 있습니다.

1. Monitor Mode로 암호화 감시 시작

  1. AWS 콘솔에서 VPC → 대상 VPC 선택
  2. “VPC Encryption Controls” 탭 선택 → Create encryption control 클릭
  3. 모드를 Monitor로 설정하고 저장

이제 VPC Flow Logs를 새로 생성하거나 기존 Flow Logs 설정을 업데이트하여, 로그에 encryption-status 필드를 포함해야 합니다.

aws ec2 create-flow-logs \
  --resource-type VPC \
  --resource-ids vpc-12345678 \
  --traffic-type ALL \
  --log-group-name my-vpc-flow-logs \
  --deliver-logs-permission-arn arn:aws:iam::<account>:role/flowLogsRole \
  --log-format '${encryption-status} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${traffic-path} ${flow-direction}'
 
  1. 로그를 통해 어떤 리소스/경로가 평문 트래픽을 발생시키는지 분석

2. 암호화 미지원 리소스 점검 및 마이그레이션

Monitor 결과를 보고 다음을 확인합니다.

  • Nitro 비지원 EC2 인스턴스 사용 여부
  • 기존 로드밸런서, Fargate, EKS, 데이터베이스, 캐시 등 리소스가 암호화 지원 여부
  • 인터넷 게이트웨이 / NAT 게이트웨이 / Virtual Private Gateway 등, 암호화 불가 리소스

필요하다면:

  • EC2 인스턴스를 Nitro 기반으로 변경
  • 애플리케이션 레이어에서 TLS 적용 (예: 내부 API 통신)
  • 로드밸런서, Fargate, EKS 등은 AWS가 자동 마이그레이션 지원하므로 별도 작업이 필요 없을 수 있습니다.

3. Enforce Mode 전환

모든 리소스가 암호화-준수 상태가 되었다면, 다음 절차로 Enforce 모드로 전환할 수 있습니다.

aws ec2 modify-vpc-encryption-control \
  --vpc-encryption-control-id <control-id> \
  --mode enforce \
  --internet-gateway-exclusion disable \
  --nat-gateway-exclusion disable \
  --virtual-private-gateway-exclusion disable
 
필요에 따라 암호화 예외(exclusion)를 지정할 수 있습니다.

이제 해당 VPC에서는 암호화가 보장되지 않는 리소스 생성이 차단되고, 평문 트래픽은 거부됩니다.

Transit Gateway 연동 환경에서 주의할 점

만약 AWS Transit Gateway (TGW)를 사용 중이라면, 다음을 반드시 고려해야 합니다.

  • TGW에 연결된 모든 VPC에 먼저 Encryption Controls (Monitor or Enforce)가 적용되어야 합니다.
  • TGW 자체에 Encryption Support를 활성화해야 VPC 간 트래픽도 암호화되며, 이 작업은 다운타임 없이 가능하다고 명시되어 있습니다.
  • 보안 그룹 참조(Security group references), 멀티캐스트, Peering, Connect attachments 등 일부 TGW 기능은 Encryption Support 활성화 시 제약이 있으므로, 현재 사용 중인 기능이 있는지 반드시 확인해야 합니다.

실제 활용 사례

  • 규제 준수가 중요한 산업 (금융, 헬스케어 등)
    • TLS뿐 아니라 네트워크 백본 레벨 암호화까지 보장해야 할 경우, Encryption Controls + Nitro 암호화만으로 컴플라이언스 기준을 만족 가능
  • 서비스 간 내부 통신이 많은 마이크로서비스 아키텍처
    • 내부 API, 데이터베이스, 캐시, 메시징 등 VPC 내/간 모든 통신을 자동 암호화하고, 평문이 남아있는지 로그로 확인 가능
  • 멀티 VPC, 멀티 리전, TGW 기반 복잡한 네트워크 구조
    • 전체 트래픽 경로가 암호화되도록 중앙에서 통제 가능 → 보안 정책 단순화 + 감사(log) 확보

참고 및 제한 사항

  • 기존 VPC는 반드시 Monitor 모드로 시작해야 하며, 바로 Enforce로 넘어갈 수 없습니다.
  • 암호화가 불가능한 리소스(인터넷 게이트웨이, NAT 게이트웨이, 일부 외부 통신 등)는 예외 설정이 필요합니다.
  • Enforce 모드에서는 암호화 미지원 리ソ스가 있을 경우 리소스 생성이 거부되거나 트래픽이 차단될 수 있으므로, 기존 리소스 점검 및 테스트가 반드시 필요합니다.
  • 일부 AWS 서비스 또는 구성에서는 별도의 마이그레이션 또는 TLS 설정이 필요할 수 있습니다.

마무리

VPC Encryption Controls는 AWS 네트워크 보안과 컴플라이언스 요구사항을 만족시키기 위해 매우 의미 있는 기능입니다.
설정은 비교적 간단하며 Monitor 모드로 먼저 활성화하고, 로그를 검토한 뒤 문제 리소스를 교체/마이그레이션 → Enforce 모드로 전환하는 순서로 운영하면 됩니다.

특히 Nitro 기반 인프라, TGW, PrivateLink, 내부 API가 많은 환경에서는 “네트워크 전 구간 암호화 + 중앙 통제 + 감사 로그 확보”라는 보안 체계를 손쉽게 구축할 수 있습니다.

반응형