Infra/AWS

인프라와 데이터 보호 (feat. AWS Technical Essentials)

minseoki 2026. 1. 27. 21:26

Amazon VPC 구성 요소

ELB는 수신되는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP 주소, AWS Lambda 함수 등 여러 대상에 자동으로 분산한다. ELB는 단일 가용 영역 또는 다중 가용 영역에서 다양한 애플리케이션 트래픽 로드를 처리할 수 있다. ELB는 VPC와 연동되어 통합 인증서 관리, 사용자 인증 및 보안 소켓 계 (SSL)/전송 계층 보안(TLS) 복호화를 비롯한 강력한 보안 기능을 제공한다.

이 두 서비스의 결합으로 TLS 설정을 중앙에서 관리하고 애플리케이션에서 CPU 집약적인 워크로드를 오프로드할 수 있는 유연성이 제공된다.

 

 

AWS ELB(Elastic Load Balancing)

  • 네 가지 로드 밸런서 유형 지원
  • 내결함성 개선
  • 인스턴스의 상태 확인 수행
  • 하나 또는 여러 가용 영역에서 작동
  • 시간에 따른 트래픽 변화에 맞게 크기 조정 가능

 

 

ELB는 수신되는 애플리케이션 트래픽을 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상으로 자동 분산시킨다. 단일 가용 영역 또는 여러 가용 영역에서 애플리케이션 트래픽의 다양한 로드를 처리할 수 있다. 이렇게 하면 애플리케이션의 내결함성이 향상된다. 애플리케이션에 대한 요청의 전체적인 흐름을 방해하지 않고 필요에 따라 로드 밸런서에서 인스턴스를 추가 및 제거할 수 있다.

 

ELB는 시간이 흐르면서 애플리케이션에 대한 트래픽이 변화함에 따라 로드 밸런싱 디바이스를 확장하거나 축소하며, 대다수의 워크로드에 맞춰 자동으로 확장할 수 있다. 로드 밸런서가 비정상 대상을 탐지하면, 해당 대상으로의 트래픽 라우팅을 중단한 후 대상이 정상인 것이 다시 탐지될 때 해당 대상으로의 트래픽 라우팅을 재개한다.

 

 

VPC 보안 기능

VPC 보안 기능으로 서브넷 라우팅, 네트워크 ACL(NACL), 보안 그룹(Security group)을 제공한다.

 

 

여기서 퀴즈. 

NACL과 Securyti group 중 IP를 막는데 즉각적이고, 효율적인 방식은 뭘까? 

NACL은 deny(거부) 룰을 추가할 수 있지만 Security group은 오직 allow(허용) 정책만 추가할 수 있다.
위 그림에서 살펴봤듯이 크기(범위)는 VPC > NACL(서브넷) > 보안 그룹(인스턴스) 순이다.

 

 

서브넷  및 라우팅 테이블

처음에는 기본 라우팅 테이블에 단일 경로 즉, VPC 내에서 통신할 수 있게 해주는 로컬 경로만 포함되어 있다. 이 로컬 경로는 VPC 서브넷용이다. 이 슬라이드의 예제에서 VPC 네트워크는 10.0.0.0/16이므로 '로컬' 트래픽에 대한 각 라우팅 테이블의 네트워크 Classless Inter-Domain Routing(CIDR) 항목이다. 인스턴스가 VPC 서브넷 내에 있으므로 VPC에서 인스턴스를 시작할 때마다 로컬 경로가 해당 인스턴스를 자동으로 처리한다. 기본 라우팅 테이블은 다른 라우팅 테이블과 명시적으로 연결되지 않은 모든 서브넷의 라우팅을 제어한다. 기본 경로 테이블에서 경로를 추가, 제거, 수정할 수는 있지만 기본 경로 테이블을 삭제할 수는 없다.

VPC를 보호하는 한 가지 방법은 기본 라우팅 테이블을 원래 기본 상태(VPC용 로컬 경로만 있는) 그대로 두고, 새로 생성하는 각 서브넷을 사용자가 생성하는 사용자 정의 라우팅 테이블과 명시적으로 연결하는 것이다. 이를 통해 각 서브넷의 아웃바운드 트래픽이 라우팅되는 방법을 명시적으로 제어할 수 있다.

 

 

프라이빗 서브넷 및 인터넷

인터넷에서 리소스를 완전히 격리하는 경우에는 단점이 있다. EC2 인스턴스의 소프트웨어 업데이트 다운로드를 허용하려는 용도로만 인터넷 액세스를 사용하려는 경우를 예로 들 수 있다. 이 경우 또는 프라이빗 서브넷에 있는 리소스가 인터넷에 액세스하도록 선택적으로 허용하려는 경우에는 Network Address Translation(NAT) 디바이스를 사용할 수 있다. 그럼 프라이빗 서브넷은 인터넷에 액세스할 수 있지만, 인터넷에서 인스턴스와의 연결을 시작할 수 없다.

NAT 게이트웨이가 NAT 인스턴스보다 우수한 가용성 및 대역폭을 제공하므로 NAT 게이트웨이를 사용하는 것이 좋다.

 

 

네트워크 ACL (NACL)

VPC 보안을 강화하도록 필터링 계층을 추가하려면 네트워크 ACL을 구성할 수 있다.

네트워크 액세스 제어 목록(ACL)은 서브넷 수준에서 트래픽을 제어하기 위한 방화벽 역할을 하는 VPC의 선택적 보안 계층이다. VPC에는 수정 가능한 기본 네트워크 ACL이 제공된다. 이 ACL은 기본적으로 모든 인바운드, 아웃바운드 IP 트래픽을 허용한다. 트래픽을 제어하려면 특정 ip 주소나 네트워크, 프로토콜 및 포트에 대한 허용 및 거부 규칙을 추가해야 한다. 모든 규칙은 순서대로 처리되므로 규칙 구성 순서가 중요하다.

규칙 번호의 범위는 1~32766이다. 10, 20, 30과 같이 일정하게 증가하는 규칙 번호를 지정하는 것이 좋다. 번호가 가장 낮은 규칙이 먼저 평가된다.

네트워크 ACL(NACL)은 stateless이므로 인바운드 트래픽과 아웃바운드 트래픽을 모두 처리해야 한다.

stateless : 상태 비저장 (과거 기억 x)

 

 

보안 그룹

보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 한다. VPC에서 인스턴스를 시작할 경우 인스턴스의 보안 그룹을 지정해야 한다.

보안 그룹을 생성할 때 인바운드 트래픽을 제어하는 규칙 세트 하나와 아웃바운드 트래픽을 제어하는 별도의 규칙 세트를 인스턴스에 추가한다. but, 보안 그룹은 stateful이므로 아웃바운드 측의 반환 트래픽은 자동으로 허용된다.

허용 규칙만 사용 가능하므로 명시적으로 혀용하지 않는 모든 항목은 거부된다.

 

 

심층 방어를 사용하는 데이터 흐름

 

 

엣지 보안

심층 방어 모델과 AWS Well-Architected Framework 보안 원칙의 설계 방침을 활용하여 AWS 워크로드를 보호하는 것 외에도 엣지에도 특정 보호 기능을 적용할 수 있다. 엣지에서의 보호란 VPC, AWS 엣지 서비스 그리고 디바이스 또는 애플리케이션 내의 오리진 인프라를 보호하는 것이다. 엣지 보호에서는 보통 콘텐츠 전송 보호(예: 웹 애플리케이션), AWS 환경에서 실행되는 애플리케이션과 네트워크에 대한 보호, 분산 서비스 거부(DDoS) 공격 완화 등을 수행한다.

 

AWS WAF

  • 웹 애플리케이션을 대상으로 한 악성 웹 요청을 감지 및 차단
  • 웹 트래픽 필터링 기능 제공
  • 실시간 지표 제공
  • 애플리케이션 계층 보호 기능 제공
  • 통합 대상:
    • Amazon CloudFront
    • Amazon API Gateway
    • Application Load Balancers
    • Amazon Cognito User Pools
    • AWS AppSync

 AWS WAF는 웹 애플리케이션을 대상으로 한 악성 웹 요청을 탐지 및 차단하는 웹 애플리케이션 방화벽이다.

AWS WAF는 커스텀 또는 서트 파티 제공하고 IP 주소, 지리적 위치 등에 대한 세부 정보를 포함하는 원시 요청을 캡처한다. AWS WAF는 실시간 지표를 제공하고 IP 주소, 지리적 위치 등에 대한 세부 정보를 포함하는 원시 요청을 캡처한다. AWS WAF는 Amazon CloudFront, Amazon API Gateway 및 Application Load Balancer와 긴밀하게 통합된다.

 

쉽게 말해 개발자가 블랙리스트 명단을 직접 만들어서 적용하거나 전문 보안 업체에서 만들어둔 전문가용 블랙리스트를 구독해서 사용한다는 것이다. 또한 사용자가 웹사이트에 접속할 때 보내는 가공되지 않은 실제 데이터 덩어리를 IP 주소, 지리적 위치, HTTP 헤더/바디 등 정보를 낱낱이 뒤져본다는 것이다.

 

 

AWS WAF의 작동 방식

웹 ACL을 생성하고 규칙을 추가하여 보호 전략을 정의할 수 있다. 규칙은 웹 요청을 검사하기 위한 기준, 그리고 이 기준과 일치하는 요청을 처리하는 방법을 정의한다. 웹 ACL을 생성한 후에는 하나 이상의 AWS 리소스와 연결할 수 있다. AWS WAF 웹 ACL을 사용하여 보호할 수 있는 리소스 유형은 Amazon CloudFront 배포, Amazon API Gateway 애플리케이션 프로그래밍 인터페이스(API) 및 Application Load Balancer이다.

웹 ACL과 개별 규칙을 사용하면, 웹 요청을 차단할지 아니면 허용할지를 지정할 수 있다. AWS WAF는 웹 ACL에 나열되는 순서대로 규칙을 평가한다. 그런데 트래픽이 구성된 어떤 규칙의 기준도 충족하지 않으면 어떻게 될까? 규칙을 설정할 때는 ACL의 기본 작업을 설정한다. 이 작업은 구성된 어떤 규칙과도 일치하지 않는 요청을 허용할지 아니면 차단할지를 나타낸다. 다른 규칙이 일치하지 않으면 해당 트래픽에는 기본 작업이 적용된다.

또한 AWS WAF에는 웹 사이트가 어떻게 보호되고 있는지 확인할 수 있는 2가지 방법이 있다. Amazon CloudWatch에서 제공하는 1분 지표와 AWS WAF API 또는 관리 콘솔에서 제공하는 샘플링된 웹 요청을 확인하면 된다. 이를 통해 차단, 허용 또는 수가 계산된 요청 및 지정된 요청과 일치한 규칙을 확인할 수 있다. 예를 들어 IP 주소 조건으로 인해 차단된 웹 요청 등을 확인할 수 있다.

 

 

AWS WAF 규칙 및 규칙 그룹

여기에 표시된 웹 ACL에는 차단(거부 목록) 또는 허용(허용 목록)할 IP 주소를 수동으로 삽입할 수 있게 해주는 사용자 정의 규칙 2개가 포함되어 있다. 또한 두 개의 규칙으로 구성된 관리형 규칙 그룹도 포함되어 있다. HTTP flood 규칙은 특정 IP 주소에서 발생하는 다량의 요청으로 구성된 공격(예: 웹 계층 DDoS 공격 또는 브루트 포스 로그인 시도)을 차단한다. SQL 명령어 삽입 규칙은 요청의 Uniform Resource Identifier(URI), 쿼리 문자열 또는 본문에서 일반적인 SQL 명령어 주입 패턴을 차단하도록 설계되었다.

 

규칙 그룹 웹 ACL 모두 규칙을 포함하는데 이 규칙은 두 위치에서 동일한 방식으로 정의되지만 다음과 같은 차이가 있다.

  • 각 웹 ACL에 규칙 그룹 참조 스테이트먼트를 추가하여 여러 웹 ACL에서 단일 규칙 그룹을 재사용할 수 있다. 웹 ACL은 재사용할 수 없다.
  • 규칙 그룹에는 기본 동작이 없다. 웹 ACL에서는 포함하는 각 규칙 또는 규칙 그룹에 대해 기본 작업을 설정한다. 규칙 그룹 또는 웹 ACL 내의 개별 규칙에는 정의된 작업이 있다.
  • 규칙 그룹을 AWS 리소스와 직접 연결하지는 않는다. 규칙 그룹을 사용하여 리소스를 보호하려면 웹 ACL에서 규칙 그룹을 사용해야 한다.

 

DDoS 완화

분산 서비스 거부(DDoS) 공격은 매우 흔히 발생하는 공격 유형이지만 대상 AWS 서비스 조합을 사용해 심층 방어 전략을 구현하면 차단할 수 있다. AWS 서비스에는 기본적인 DDoS 방지 기능이 표준 기능으로 포함되어 있다.

CloudFront, Application Load Balancer, Network Load Balancer, Global Acclerator, 탄력적 IP 주소 또는 Amazon Route 53는 네트워크 및 전송 계층 공격을 대상으로 하는 기본 DDoS 방지 기능이 제공된다.

 

AWS 글로벌 인프라는 DDoS 복원력을 고려하여 설계되어 있다. AWS 글로벌 인프라에는 초과 트래픽을 자동으로 탐지하고 필터링할 수 있는 DDoS 완화 시스템이 포함되어 있다. AWS 글로벌 인프라에서 제공하는 확장성이 뛰어난 다양한 인터넷 연결에 액세스 하면 가용성에 미치는 영향은 최소화하면서 DDoS 공격을 흡수하고 장애를 격리하는 능력을 크게 높일 수 있다. AWS 엣지 로케이션은 웹 애플리케이션에 이러한 이점을 제공하는 추가 네트워크 인프라 계층을 제공한다.

 

 

AWS Shield

  • 상시 작동하는 네트워크 흐름 모니터링 및 AWS 서비스로 들어오는 트래픽 검사
  • 흔히 발생하는 DDoS 공격으로부터 보호
  • AWS WAF와 통합하여 즉각적인 규칙 업데이트 및 앱 취약성 방지 기능 제공

AWS Shield는 DDoS 공격을 방지할 수 있도록 구축된 관리형 서비스이다. AWS Shield는 애플리케이션 가동 중지 및 지연 시간을 최소화하는 상시 탐지 및 자동 인라인 완화 기능을 제공한다. 또한 AWS에서 실행되는 웹 애플리케이션을 가장 일반적이고 빈번히 발생하는 인프라 계층 공격(예: UDP flood)과 상태 고갈 공격(예: TCP SYN flood)으로부터 자동으로 보호한다.

Shield와 AWS WAF를 함께 사용하면 HTTP POST, GET flood와 같은 애플리케이션 계층 공격을 방어할 수 있으므로 DDoS 보호를 강화할 수 있다.

 

 

추가 인프라 완화 서비스

 

 

 

컴퓨팅 리소스 보호

Amazon Machine Image(AMI)는 EC2 인스턴스를 시작하는 데 필요한 정보를 제공한다. 또한 소프트웨어와 함께 인스턴스를 부팅하는 데 필요한 모든 정보(예: 운영체제와 소프트웨어→Linux, Apache, 웹 사이트)가 포함되어 있다.

 

 

Amazon Inspector

  • 자동화된 리소스 검색 기능 제공
  • EC2 인스턴스 및 Amazon Elastic Container Registry(Amazon ECR) 및 AWS Lambda 워크로드에서 자동화된 연속 보안 평가 실행
  • 광범위하게 배포된 AWS System Manager 에이전트(SSM 에이전트)를 스캔에 사용
  • AWS Organizations, AWS Security Hub 및 AWS EventBridge와 통합
  • 보안 표준 및 모범 사례 적용 지원

Amazon Inspector를 사용하면 리소스를 배포되기 전과 프로덕션 환경에서 실행되는 동안 모두 보안 취약성 및 보안 모범 사례와의 차이점을 파악할 수 있다. 애플리케이션에 대한 표준 및 모범 사례를 정의하고 이러한 표준을 준수하는지 검증하여 보안 문제가 프로덕션 애플리케이션에 영향을 끼치기 전에 해당 문제를 미리 관리할 수 있다.

Amazon Inspector는 널리 배포된 AWS Systems Manager 에이전트(SSM 에이전트)를 사용하여 실행 중인 모든 EC2 인스턴스, Amazon Elastic 컨테이너 레지스트리(Amazon ECR) 리포지토리, AWS Lambda 함수를 자동으로 검색하고 취약점을 검사한다.

 

 

Amazon Inspector를 사용하는 샘플 워크플로

 

 

추가 컴퓨팅 보호 서비스

AWS Systems Managers는 AWS 인프라에 대한 가시성과 제어를 제공한다. 여기에는 관리 작업을 자동화할 수 있는 기능이 포함되어 있다. 이러한 작업에는 시스템 인벤토리 수집, 운영 체제 패치 적용, 최신 바이러스 백신 정의 유지 관리, 대규모로 운영 체제 및 애플리케이션 구성 등이 있다.