Amazon VPC에 새 기능 VPC Encryption Controls 가 추가되었습니다. 이 기능은 VPC 내부 및 VPC 간 트래픽을 자동으로 암호화하고, 암호화 상태를 중앙에서 모니터링 및 강제 적용할 수 있게 해줍니다.
![[AWS] VPC Encryption Controls 구성 가이드](https://blog.kakaocdn.net/dna/zFMvw/dJMcachivDQ/AAAAAAAAAAAAAAAAAAAAABNz8N4fSecyJA93wdPW3U1NqhrlYHgR411LPLKdLOUZ/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1767193199&allow_ip=&allow_referer=&signature=PCiCX27SYKa8bbPgdZM9LGEQRRA%3D)
기능 개요 및 모드
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로 암호화 감시 시작
- AWS 콘솔에서 VPC → 대상 VPC 선택
- “VPC Encryption Controls” 탭 선택 → Create encryption control 클릭
- 모드를 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}'
- 로그를 통해 어떤 리소스/경로가 평문 트래픽을 발생시키는지 분석
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
이제 해당 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가 많은 환경에서는 “네트워크 전 구간 암호화 + 중앙 통제 + 감사 로그 확보”라는 보안 체계를 손쉽게 구축할 수 있습니다.
'AWS' 카테고리의 다른 글
| [AWS] Amazon CloudFront TLS 1.3 적용 방법 (0) | 2025.12.07 |
|---|---|
| [AWS] ALB Health Check Logs 구성 방법 (0) | 2025.12.07 |
| [AWS] AWS Transit Gateway 비용 나누기 (0) | 2025.12.06 |
| [AWS] Site-to-Site VPN BGP 로그 활성화 방법 (0) | 2025.12.06 |
| [AWS] Amazon CloudFront mTLS 구성 방법 (0) | 2025.12.04 |