2024 SWLUG/클라우드

AWS WAF와 AWS Cloud Formation 개념

un_plugged 2024. 9. 23. 21:48

AWS

아마존에서 제공하는 클라우드 서비스로 네트워킹을 기반으로 가상 컴퓨터와 스토리지, 네트워크 인프라 등 다양한 서비스를 제공하고 있다. 


용어 정리

 

클라우드: 광대한 네트워크를 통하여 접근할 수 있는 가상화된 서버와 서버에서 작동하는 프로그램과 데이터베이스를 제공하는 IT 환경. 클라우드를 이용하면 필요한 컴퓨팅 자원을 인터넷으로 쉽게 이용할 수 있다. 

 

클라우드 컴퓨팅: 클라우드를 이용하여 컴퓨팅 자원을 사용하는 기술적인 방법. 서버, 스토리지, 네트워크 등의 자원을 가상화하여 사용자에게 제공하며, 필요에 따라 이를 확장하거나 축소할 수 있다.

 

클라우드 서비스: 클라우드 컴퓨팅을 기반으로 제공되는 서비스. 대표적으로  SaaS(Software as a Service, 소프트웨어 기반 서비스), PaaS(Platform as a Service, 플랫폼 기반 서비스), IaaS(Infrastructure as a Service, 인프라 기반 서비스) 등의 형태로 제공된다. 


 

 

 

AWS WAF(AWS Web Application Firewall)

다양한 AWS 서비스를 통해 제공되는 웹서비스에 연결되어 외부로부터 유입되는 각종 위협을 모니터링하거나 차단할 수 있는 웹 어플리케이션 레벨 방화벽이다. 

 

일반 방화벽(FW과의 차이점)

 

단순 방화벽(FW)은 TCP/IP 레벨에 포함된 정보들을 기반으로 차단 룰을 설정한다. (네트워크 계층에서 들어오거나 나가는 트래픽을 필터링)

하지만 웹 방화벽은 웹 프로토콜 HTTP 정보를 바탕으로 차단 룰을 설정한다. 

위의 그림은 일반 방화벽과 웹 방화벽의 차이를 정리한 표이다.

즉, WAF는 웹 해킹 공격으로부터 웹 서비스를 전문적으로 보호하기 위해 탄생한 정보보호 시스템인 것이다.

 

※WAF가 탐지하지 못하는 공격 영역 

WAF가 모든 웹 보안 공격을 막는 것은 아니다. WAF가 막지 못하는 공격에는 논리적 취약점이 있다.

일반 사용자에게는 노출되지 않아야 할 페이지가 보이는 잘못된 권한부여나, 불충분한 세션 관리, 서버 정보 노출 그리고 우회를 목적으로 한 파라미터 변조 등이 이에 해당한다. 

 

AWS에서 제공하는 WAF

 

AWS는 외부 업체(3rd Party)가 아닌 자체 AWS WAF 서비스를 사용하여 빌링(서비스 제공)과 운영 관리를 한 곳에서 할 수 있어 편리하다. 

AWS 사용자는 계정 전체의 방화벽 규칙을 중앙 관리하는 AWS Firewall Manager를 통해 AWS WAF를 관리할 수 있다. 사전에 규칙을 만들어 각 계정에 배포할 수 있으며, 새롭게 생성된 계정이나 리소스에도 간편하게 적용이 가능하다.

 

AWS WAF를 통해 보호받을 수 있는 AWS 서비스

 

1. Amazon CloudFront distribution

  • Amazon CloudFront 배포를 생성하여 CloudFront에 어디로부터 콘텐츠를 전송하고자 하는지와 이러한 콘텐츠 전송을 추적 및 관리하는 방법에 대한 세부 정보를 알림
  • Amazon CloudFront: .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스

2. Amazon API Gateway REST API

  • 백엔드 HTTP 엔드포인트, Lambda 함수 또는 기타 AWS 서비스와 통합되어 있는 리소스 및 메서드의 모음

3. Application Load Balancer

  • 개방형 시스템 간 상호 연결(OSI) 모델의 일곱 번째 계층인 애플리케이션 계층에서 작동
  • 요청을 받으면 우선 순위에 따라 리스너 규칙을 평가하여 적용할 규칙을 결정한 다음, 규칙 작업의 대상 그룹에서 대상을 선택

4. AWS AppSync GraphQL API

  • AWS AppSync로 구축된 GraphQL API를 통해 프런트엔드 개발자는 단일 GraphQL 엔드포인트에서 여러 데이터베이스, 마이크로서비스 및 API를 쿼리할 수 있다.
  • GraphQL: API를 위한 쿼리 언어(Query Language)이며 타입 시스템을 사용하여 쿼리를 실행하는 서버사이드 런타임
  • 쿼리 언어: 정보를 얻기 위해 보내는 질의문(Query)를 만들기 위해 사용되는 컴퓨터 언어. (EX. SQL)
  • SQL이 데이터베이스 시스템으로부터 데이터를 가져오는 목적을 가진다면, GraphQL은 클라이언트가 데이터를 서버로부터 가져오는 것을 목적으로 한다.

5. Amazon Cognito user pool

  • User Pool을 사용하면 웹과 모바일 SaaS 애플리케이션, 게임 등에서 가입 및 로그인에 자세한 제어가 가능하다. 

 

AWS WAF를 통해 얻을 수 있는 점

  • 악성일 수 있는 SQL 코드와 스크립트를 사전에 차단
  • 지정한 기준을 충족하는 웹 요청은 허용
  • 지정한 기준을 위반하는 요청은 차단 또는 카운트

 

 

 

AWS Cloud Formation

 AWS에서 제공하는 대표적인 IaC기반의 서비스. CloudFormation을 사용하면 VPC, EC2, Lambda 등과 같은 리소스를 수동으로 생성할 필요 없이 리소스들을 템플릿(코드)으로 구성하고 Stack을 생성하여 인프라를 구성할 수 있다. 

 

장점

  • 인프라 관리 간소화
  • 신속하게 인프라 복제
  • 인프라 변경 사항을 쉽게 제어 및 추적

※IT 인프라: 조직의 IT 환경을 구성하는 모든 소프트웨어, 하드웨어, 네트워크 및 연결된 서비스의 집합

 

Cloud Formation 구성

탬플릿

  • AWS의 리소스를 코드로 정의
  • JSON 또는 YAML 형식을 사용

스택

  • 해당 템플릿을 읽고 실제 리소스를 생성하고 인프라를 관리
  • 하나의 단위로 관리할 수 있는 AWS 리소스 모음
  • 스택의 모든 리소스는 템플릿을 통해 정의
  • 스택을 삭제하면 스택이 관리하는 모든 리소스 삭제

 

Cloud Formation 작동 방식

스택 생성

1. YAML 또는 JSON 포맷으로 원하는 인프라에 대한 정보 CloudFormation 템플릿으로 작성

 

2. CloudFormation 템플릿을 로컬에 저장하거나, S3 Bucket에 저장

*S3 bucket: Amazon S3에 저장된 객체에 대한 컨테이너

 

3. 템플릿 파일의 위치(예: 로컬 컴퓨터의 경로 또는 Amazon S3 URL)를 지정하여 CloudFormation 스택을 생성

 

4. 템플릿에 지정된 스택(Stack)을 통해 AWS 리소스에 대한 프로비저닝 및 구성 작업을 진행

*프로비저닝: 서비스에 필요한 여러 시스템을 준비해두고 제공하는 것

 

스택 업데이트

1. AWS CloudFormation Designer 또는 텍스트 편집기를 사용하여 AWS CloudFormation 스택 템플릿을 수정

 

2. CloudFormation 템플릿을 로컬에 저장하거나, S3 Bucket에 저장

 

3. 업데이트하려는 스택과 수정된 템플릿의 위치(예: 로컬 컴퓨터의 경로 또는 Amazon S3 URL)를 지정하여 변경 세트를 생성

 

4. 변경 세트를 보고 기대하는 변경을 AWS CloudFormation에서 수행할지 확인

 

5. 스택에 적용하려는 변경 세트를 실행

 

 

 

참고 자료

https://yoo11052.tistory.com/188

 

[AWS] CloudFormation이란

CloudFormation AWS CloudFormation은 AWS에서 제공하는 대표적인 IaC기반의 서비스입니다. CloudFormation을 사용하면 VPC, EC2, Lambda 등과 같은 리소스를 수동으로 생성할 필요 없이 리소스들을 템플릿(코드)으

yoo11052.tistory.com

https://nearhome.tistory.com/117

 

[AWS] AWS CloudFormation 의 개념

AWS CloudFormation 이란? AWS CloudFormation 구성요소 템플릿(Template) 스택(Stack) CloudFormation AWS CloudFormation 작동 방식 스택 생성 워크플로우 스택 업데이트 워크플로우 템플릿(Template) 구성 사항 포맷 버전 D

nearhome.tistory.com

https://www.samsungsds.com/kr/cloud-glossary/what-is-cloud.html

 

클라우드(Cloud)란? | 클라우드 용어집 | 삼성SDS

클라우드를 한마디로 정의하면 무엇인가요? 클라우드(Cloud)란, 광대한 네트워크를 통하여 접근할 수 있는 가상화된 서버와 서버에서 작동하는 프로그램과 데이터베이스를 제공하는 IT 환경을 의

www.samsungsds.com

https://catalog.us-east-1.prod.workshops.aws/workshops/bbaefbc2-bb4b-4332-aa36-4047e31c4972/ko-KR/01-overview/01-waf-introduction

 

AWS WAF Configuration A to Z

This workshop is designed to let customer know how to manage AWS WAF Rule to mitigate attack against web services. This workshop includes topics below - Most common web attack method - How to configure AWS WAF customer managed rule to mitigate most common

catalog.us-east-1.prod.workshops.aws

https://techblog.woowahan.com/2699/

 

AWS WAF 운영에 대한 이야기 | 우아한형제들 기술블로그

안녕하세요. 우아한형제들 정보보안팀에서 근무하고 있는 이주호라고 합니다. 퍼블릭 클라우드 환경에서의 보안을 책임지는 보안팀은 클라우드 환경에서의 보안 수준을 IDC 환경 보안 수준과

techblog.woowahan.com

https://library.gabia.com/contents/13451/

 

가비아 라이브러리

IT 콘텐츠 허브

library.gabia.com

 

'2024 SWLUG > 클라우드' 카테고리의 다른 글

Command Injection  (0) 2024.10.29
SQL Injection  (0) 2024.10.28
Stored XSS  (0) 2024.09.30
Reflected XSS  (0) 2024.09.30
AWS WAF 실습 환경 구성  (0) 2024.09.23