AWS WAF 그리고 WAF Security Automations
AWS의 서비스
AWS의 서비스는 몇 가지 형태로 나뉜다.
- VPC, EC2, EBS처럼 온프라미스 환경을 그대로 재연하는 서비스
- Lambda처럼 인프라 기반을 배제하고 필요한 기능에 집중하는 서비스
- IAM, Cloudwatch처럼 클라우드 환경을 관리하기 위해 만들어지는 서비스
- Storage-Gateway, DX 처럼 기존 환경과 새로운 환경을 연결해주는 서비스
AWS WAF
AWS WAF는 인프라 기반을 배제하고 필요한 기능에 집중하는 서비스이다.
AWS WAF는 가용성에 영향을 주거나, 보안을 위협하거나, 리소스를 과도하게 사용하는 일반적인 웹 공격으로부터 웹 애플리케이션이나 API를 보호하는 데 도움이 되는 웹 애플리케이션 방화벽입니다.
AWS WAF에서는 SQL 주입 또는 사이트 간 스크립팅과 같은 일반적인 공격 패턴을 차단하는 보안 규칙 및 사용자가 정의한 특정 트래픽 패턴을 필터링하는 규칙을 생성하도록 지원하여 애플리케이션에 트래픽이 도달하는 방법을 제어할 수 있습니다.
AWS 또는 AWS Marketplace 셀러가 관리하는 사전 구성된 규칙 세트인 AWS WAF용 관리형 규칙 사용을 빠르게 시작할 수 있습니다. WAF용 관리형 규칙은 OWASP의 상위 10개 보안 위험과 같은 문제를 처리합니다. 이러한 규칙은 새 문제가 나타나면 정기적으로 업데이트됩니다. AWS WAF에는 보안 규칙의 생성, 배포 및 유지보수를 자동화하는 데 사용할 수 있는 모든 기능을 갖춘 API가 포함되어 있습니다.
AWS WAF를 사용하면 사용한 만큼만 비용을 지불합니다. 요금은 배포한 규칙 수와 애플리케이션이 수신한 웹 요청 수를 기준으로 부과됩니다. 사전 약정은 없습니다.
CDN 솔루션의 일부인 Amazon CloudFront, EC2에서 실행되는 웹 서버 또는 오리진 서버의 전방에 배치된 Application Load Balancer 또는 API의 Amazon API Gateway에 AWS WAF를 배포할 수 있습니다
※ AWS 가이드 문서 내용 발취 (https://aws.amazon.com/ko/waf/)
AWS 가이드 문서에서 설명해주는 기능 또한 전통적인 웹방화벽의 기능과 동일함을 알 수 있다.
AWS WAF Security Automations
AWS WAF Security Automations 구성하기
AWS WAF를 구성하다 보면 해당 서비스 단독으로 온전한 기능을 처리하지 못함을 알 수 있다.
- 요청(request)에 대한 로그를 저장하는: S3
- 표준 SQL을 사용해 S3에 저장된 데이터를 간편하게 분석할 수 있는 대화식 쿼리 서비스: Athena
- Athena을 쿼리 서비스를 가능하도록 S3 데이터를 로드하는 완전 관리형 ETL(추출, 변환 및 로드) 서비스: Glue
- 분석된 내용을 토대로 차단, 허용 등을 수행하는 서비스: Lambda
그 외 필요에 따라 또 다른 서비스의 구동이 필요할 수 있으며 이러한 환경을 구성하는데 많은 작업이 필요하고 일괄적인 관리(갱신, 삭제 등)에도 어려움이 있다.
CloudFormation을 통해 연관되는 서비스를 론칭하고 관리할 수 있는 방법을 AWS에서는 AWS WAF Security Automations라는 이름으로 제공하고 있다
메뉴얼: https://aws.amazon.com/ko/solutions/implementations/aws-waf-security-automations/
주의사항
"AWS 서비스를 사용할 때 가장 고민되는 부분은 언제나 사용량과 과금이다."
온프라미스 환경은 구성된 환경 이상의 리소스를 사용할 수 없으며 서비스에 문제가 발생할지언정 리소스 사용에 따른 금액이 기하급수적으로 늘어날 수 없다.
그러나 클라우드 환경의 경우 거대한 인프라에서 사용한 만큼 금액이 발생하기 때문에 리소스 사용에 대한 제약이 줄어든 반면 사용금액이 기하급수적으로 늘어날 수 있다.
또한 서비스의 종류마다 과금 정책이 다르고 구조를 정확히 파악하지 못하면 사용되고 있으나 관리되지 못하는 서비스도 발생하게 된다.
접근방법(대응전략)
CloudFormation을 적극 활용하면 리소스의 갱신, 삭제를 관리하는데 편리하다.
▶ CloudFormation은 Stack형태로 하나의 작업을 구성하며 Resourece메뉴에서 생성된 리소스를 확인할 수 있다.
▶ CloudFormation의 하나의 Stack 작업이 순차적으로 진행되며 진행 중 문제가 발생하면 실행 전 단계로 되돌아 간다.(Events메뉴에서 진행 내용 파악 가능)
Tagging규칙을 만들고 리소스에 Tagging을 진행한다.(일부 Tagging이 지원되지 않는 경우도 있지만 대부분의 경우 지원한다)