Amazon Web Services 한국 블로그

AWS Network Firewall — VPC 기반 새로운 관리형 방화벽 서비스 출시

AWS 고객은 클라우드에서 가상 네트워크를 보호하기 위해 가용성과 확장성이 뛰어난 방화벽 서비스를 원합니다. AWS는 보안을 최우선으로 하며, Amazon Elastic Compute Cloud(EC2) 인스턴스를 보호하는 보안 그룹, Amazon Virtual Private Cloud(VPC) 서브넷을 보호하는 네트워크 ACL, Amazon CloudFront에서 실행되는 웹 애플리케이션을 보호하는 AWS 웹 애플리케이션 방화벽(WAF), Application Load Balancer(ALB) 또는 Amazon API Gateway, DDoS(분산 서비스 거부) 공격으로부터 보호하는 AWS Shield 등 AWS에서 특정한 보안 요구 사항을 해결하는 다양한 방화벽 기능을 제공합니다.

사용하는 AWS 서비스에 관계없이 워크로드의 모든 리소스에서 네트워크 보안을 보다 쉽게 확장할 수 있는 방법을 원한다는 고객들의 요구가 많았습니다. 또한 고객들은 고유한 워크로드를 보호하거나 정부 규정 또는 상업 규정을 준수하기 위해 맞춤형 보호 기능을 원합니다. 이러한 고객은 아웃바운드 흐름에 대한 URL 필터링, IP/포트/프로토콜 이외의 패킷 데이터에 대한 패턴 일치, HTTP/S 이외의 프로토콜에 대한 특정 취약성에 대해 경고하는 기능 등을 사용할 수 있어야 합니다.

오늘 Virtual Private Cloud(VPC)를 위한 고가용성 관리형 네트워크 방화벽 서비스인 AWS Network Firewall을 출시합니다. 상태 저장 검사, 침입 차단 및 탐지, 웹 필터링 기능을 쉽게 배포하고 관리하여 AWS에서 가상 네트워크를 보호할 수 있습니다. Network Firewall은 트래픽에 따라 자동으로 확장되므로 보안 인프라에 대한 추가 고객 투자 없이 고가용성을 보장합니다.

AWS Network Firewall을 사용하면 사용자 지정 규칙을 구현하여 VPC가 승인되지 않은 도메인에 액세스하지 못하도록 하거나, 알려진 악성 IP 주소를 수천 개 차단하거나, 시그니처 기반 탐지를 사용하여 악의적인 활동을 식별할 수 있습니다. AWS 네트워크 방화벽은 CloudWatch 지표을 통해 방화벽 작업을 실시간으로 확인할 수 있게 하고 로그를 S3, CloudWatchKinesis Firehose로 전송하여 네트워크 트래픽에 대한 가시성을 높입니다. Network Firewall은 AWS Firewall Manager와 통합되므로 AWS Organizations를 사용하는 고객이 한곳에서 모든 VPC 및 AWS 계정의 방화벽 작업을 활성화하고 모니터링할 수 있습니다. Network Firewall은 CrowdStrike, Palo Alto Networks, Splunk 등의 AWS 파트너를 비롯한 기존 보안 에코시스템과 상호 운용할 수 있습니다. 커뮤니티에서 유지 관리하는 Suricata 규칙 세트에서 기존 규칙을 가져올 수도 있습니다.

Network Firewall의 개념
Network Firewall은 상태 비저장 및 상태 저장 트래픽 검사 규칙 엔진을 실행합니다. 이 엔진은 방화벽 정책 내에 구성하는 규칙 및 기타 설정을 사용합니다.

VPC에서 가용 영역별로 방화벽을 사용합니다. 각 가용 영역에 대해 트래픽을 필터링하는 방화벽 엔드포인트를 호스팅할 서브넷을 선택합니다. 가용 영역의 방화벽 엔드포인트는 해당 엔드포인트가 위치한 서브넷을 제외한 모든 서브넷을 보호할 수 있습니다.

다음과 같은 중앙 구성 요소를 사용하여 AWS 네트워크 방화벽을 관리할 수 있습니다.

  • 방화벽 — 방화벽은 보호 대상 VPC를 방화벽 정책에 정의된 보호 동작에 연결합니다. 사용자는 보호할 각 가용 영역에 대해 방화벽 엔드포인트 전용의 퍼블릭 서브넷을 네트워크 방화벽에 제공합니다. 방화벽을 사용하려면 방화벽 엔드포인트를 통해 수신 및 발신 트래픽을 전송하도록 VPC 라우팅 테이블을 업데이트합니다.
  • 방화벽 정책 — 방화벽 정책은 상태 비저장 및 상태 저장 규칙 그룹 및 기타 설정의 모음에 방화벽의 동작을 정의합니다. 각 방화벽은 하나의 방화벽 정책에만 연결할 수 있지만 둘 이상의 방화벽에 방화벽 정책을 사용할 수 있습니다.
  • 규칙 그룹 — 규칙 그룹은 네트워크 트래픽을 검사하고 처리하는 방법을 정의하는 상태 비저장 또는 상태 저장 규칙의 모음입니다. 규칙 구성에는 5 튜플과 도메인 이름 필터링이 포함됩니다. Suricata 오픈 소스 규칙 사양을 사용하여 상태 저장 규칙을 제공할 수도 있습니다.

AWS 네트워크 방화벽 — 시작하기
AWS 관리 콘솔, AWS 명령줄 인터페이스(CLI)AWS SDK에서 AWS 네트워크 방화벽을 시작하여 방화벽을 만들고 관리할 수 있습니다. VPC 콘솔의 탐색 창에서 [AWS Network Firewall]을 펼친 다음 [방화벽(Firewalls)] 메뉴에서 [방화벽 생성(Create firewall)]을 선택합니다.

새 방화벽을 생성하려면 해당 방화벽을 식별하는 데 사용할 이름을 입력하고 드롭다운에서 VPC를 선택합니다. AWS 네트워크 방화벽을 사용하려는 각 가용 영역(AZ)별로 방화벽 엔드포인트에 사용할 퍼블릭 서브넷을 생성합니다. 이 서브넷에는 하나 이상의 사용 가능한 IP 주소와 0보다 큰 용량이 있어야 합니다. 이 방화벽 서브넷은 네트워크 방화벽에서 사용하도록 예약된 상태로 유지합니다.

연결된 방화벽 정책을 만들려면 빈 [방화벽 정책 생성 및 연결(Create and associate an empty firewall policy)]을 선택하고 [방화벽 생성(Create firewall)]을 선택합니다.

새 방화벽이 [방화벽(Firewalls)] 페이지에 나열됩니다. 방화벽에 빈 방화벽 정책이 있습니다. 다음 단계에서는 정책에 방화벽 동작을 지정합니다. [방화벽 정책(Firewall policies)] 메뉴에서 새로 만든 방화벽 정책을 선택합니다.

정책 내에서 처리 순서를 정의하는 우선 순위 설정과 네트워크 방화벽이 상태 비저장 규칙 그룹과 일치하지 않는 패킷을 처리하는 방법을 정의하는 상태 비저장 기본 작업을 사용하여 0개 이상의 방화벽 규칙 모음으로 이루어진 새 상태 비저장 또는 상태 저장 규칙 그룹을 만들거나 추가할 수 있습니다.

상태 비저장 기본 작업의 경우, 방화벽 정책을 사용하여 전체 패킷과 패킷 조각에 서로 다른 기본 설정을 지정할 수 있습니다. 작업 옵션은 방화벽 정책의 상태 비저장 규칙 그룹에 사용하는 상태 비저장 규칙의 옵션과 동일합니다.

다음 옵션 중 하나를 지정해야 합니다.

  • 허용 — 패킷에 대한 모든 검사를 중단하고 패킷이 의도한 대상으로 전송되도록 허용합니다.
  • 삭제 — 패킷에 대한 모든 검사를 중단하고 패킷이 의도한 대상으로 전송되지 않도록 차단합니다.
  • 상태 저장 규칙 그룹으로 전달 — 패킷의 상태 비저장 검사를 중단하고 검사를 위해 상태 저장 규칙 엔진으로 전달합니다.

또한 원하는 경우, 적용할 명명된 사용자 지정 작업을 지정할 수 있습니다. 이 작업의 경우 네트워크 방화벽은 사용자가 지정한 값과 함께 CustomAction이라는 CloudWatch 지표 측정 기준을 보냅니다. 명명된 사용자 지정 작업을 정의한 후 해당 작업을 정의한 컨텍스트와 동일한 컨텍스트에서 이름을 기준으로 사용할 수 있습니다. 사용자 지정 작업 설정은 규칙 그룹의 규칙 간에, 그리고 방화벽 정책의 두 기본 상태 비저장 사용자 지정 작업 설정 간에 재사용할 수 있습니다.

방화벽 정책을 정의한 후 방화벽을 포함하도록 VPC 라우팅 테이블을 업데이트하여 VPC 트래픽 흐름에 방화벽을 삽입할 수 있습니다.

규칙 그룹을 설정하는 방법
[네트워크 방화벽 규칙 그룹(Network Firewall rule groups)] 메뉴에서 규칙 그룹 생성(Create rule group)을 선택하여 새 상태 비저장 또는 상태 저장 규칙 그룹을 생성할 수 있습니다. 상태 저장 규칙 그룹을 선택하면 1) 소스 IP, 소스 포트, 대상 IP, 대상 포트 및 프로토콜을 지정하고 일치하는 트래픽에 대해 수행할 작업을 지정하는 [5 튜플 형식(5-tuple format)], 2) 도메인 이름 목록을 지정하고 도메인 중 하나에 액세스하려고 하는 트래픽에 대해 수행할 작업을 지정하는 [도메인 목록(Domain list)], 3) Suricata 규칙 구문을 사용하여 고급 방화벽 규칙을 제공하는 [Suricata 호환 IPS 규칙(Suricata compatible IPS rules)]의 세 가지 옵션 중 하나를 선택할 수 있습니다.

네트워크 트래픽 검사를 위한 표준 상태 비저장 “5 튜플” 규칙 사양을 지원합니다. 이 사양에는 네트워크 방화벽은 규칙 그룹 내에서 상태 비저장 규칙의 처리 순서를 나타내는 우선 순위 번호가 있습니다.

마찬가지로, 상태 저장 5 튜플 규칙에는 다음과 같은 일치 설정이 있습니다. 이러한 설정은 네트워크 방화벽 상태 저장 규칙 엔진이 패킷에서 검사하는 항목을 지정합니다. 패킷이 일치하려면 모든 일치 설정을 충족해야 합니다.

도메인 이름을 사용한 규칙 그룹에는 도메인 이름, 일치 기준으로 사용할 도메인 이름을 지정하는 문자열 목록, 검사할 트래픽 흐름의 방향인 트래픽 방향 등의 일치 설정이 있습니다. 다음 JSON은 도메인 이름 규칙 그룹에 대한 규칙 정의의 예를 보여 줍니다.

{
  "RulesSource": {
    "RulesSourceList": {
      "TargetType": "FQDN_SNI","HTTP_HOST",
      "Targets": [
        "test.example.com",
        "test2.example.com"
      ],
      "GeneratedRulesType": "DENYLIST"
    }
  } 
}

Suricata 호환 IPS 규칙을 사용한 상태 저장 규칙 그룹에는 Suricata 호환 사양 내에 정의된 모든 설정이 있습니다. 예를 들어 다음과 같이 SSH 프로토콜 이상을 감지합니다. Suricata에 대한 자세한 내용은 Suricata 홈 페이지를 참조하세요.

alert tcp any any -> any 22 (msg:"ALERT TCP port 22 but not SSH"; app-layer-protocol:!ssh; sid:2271009; rev:1;)

원시 데이터를 수집하여 읽기 가능한 실시간에 가까운 지표로 처리하는 CloudWatch와 AWS 네트워크 방화벽에 대한 사용자, 역할 또는 AWS 서비스의 API 호출 기록을 제공하는 서비스인 AWS CloudTrail을 사용하여 네트워크 방화벽을 모니터링할 수 있습니다. CloudTrail은 네트워크 방화벽에 대한 모든 API 호출을 이벤트로 캡처합니다. 로깅 및 모니터링에 대한 자세한 내용은 설명서를 참조하세요.

Network Firewall 파트너
이번 출시에서 네트워크 방화벽은 여러 AWS 파트너와 통합됩니다. 파트너들은 수많은 유용한 피드백을 제공했습니다. 파트너의 경험을 공유하기 위해 파트너가 작성한 블로그 게시물 중 일부를 소개합니다(블로그 게시물이 게시되는 대로 링크와 함께 이 문서를 업데이트하고 있습니다).

정식 출시
AWS Network Firewall은 현재 미국 동부(버지니아 북부), 미국 서부(오레곤)EU(아일랜드) 리전에서 사용할 수 있습니다. 자세한 내용은 제품 페이지, 요금설명서를 참조하세요. 이 기능을 사용해보시고 AWS Support 담당자 또는 AWS 포럼을 통해 Amazon VPC에 대한 피드백을 보내주세요.

AWS Network Firewall에 대한 모든 세부 정보를 알아보고 지금 바로 새로운 기능을 시작해 보세요.

Channy