기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Terraform을 사용하여 AWS WAF의 보안 자동화 솔루션 배포
작성자: Dr. Rahul Sharad Gaikwad(AWS) 및 Tamilselvan P(AWS)
환경: PoC 또는 파일럿 | 기술: 보안, ID, 규정 준수, 인프라, 콘텐츠 제공, DevOps | |
워크로드: 기타 모든 워크로드 | AWS 서비스: AWS WAF |
요약
AWS WAF는 웹 액세스 제어 목록(ACL)에서 정의하고 배포하는 사용자 지정 가능한 규칙을 사용하여 일반적인 공격으로부터 애플리케이션을 보호하는 데 도움이 되는 웹 애플리케이션 방화벽입니다. AWS WAF 규칙을 구성하는 것은 어려울 수 있으며, 특히 전담 보안 팀이 없는 조직의 경우 더욱 그렇습니다. 이 프로세스를 단순화하기 위해 Amazon Web Services(AWS)는 AWS WAF의 보안 자동화
AWS WAF용 보안 자동화 솔루션은 AWS WAF용 보안 자동화 구현 가이드의 지침에 따라 CloudFormation AWS를 사용하여 배포할 수 있습니다. 이 패턴은 HashiCorp Terraform을 선호하는 IaC (코드형 인프라) 도구로 사용하여 클라우드 인프라를 프로비저닝하고 관리하는 조직에 대체 배포 옵션을 제공합니다. 이 솔루션을 배포할 때 Terraform은 클라우드에 변경 사항을 자동으로 적용하고 AWS WAF 설정 및 보호 기능을 배포하고 구성합니다.
사전 조건 및 제한 사항
사전 조건
활성 상태의 AWS 계정.
AWS Command Line Interface(AWS CLI)가 설치되고 필요한 권한으로 구성되었습니다. 자세한 내용은 시작하기(AWS CLI 설명서)를 참조하세요.
Terraform이 설치 및 구성되어 있습니다. 자세한 내용은 Terraform 설치
(Terraform 설명서)를 참조하세요.
제품 버전
AWS CLI 버전 2.4.25 이상
Terraform 버전 1.1.9 이상
아키텍처
대상 아키텍처
이 패턴은 AWS WAF의 보안 자동화 솔루션을 배포합니다. 대상 아키텍처에 대한 자세한 내용은 AWS WAF의 보안 자동화 구현 가이드의 아키텍처 개요를 참조하세요. 이 배포에서의 AWS Lambda 자동화, 애플리케이션 로그 파서, AWS WAF 로그 파서, IP 목록 파서, 액세스 핸들러에 대한 자세한 내용은 AWS WAF의 보안 자동화 구현 가이드의 구성 요소 세부 정보를 참조하세요.
Terraform 배포
terraform apply
를 실행하면 Terraform이 다음과 같은 작업을 수행합니다.
Terraform은 testing.tfvars 파일의 입력을 기반으로 IAM 역할 및 Lambda 함수를 생성합니다.
Terraform은 testing.tfvars 파일의 입력을 기반으로 AWS WAF ACL 규칙 및 IP 세트를 생성합니다.
Terraform은 testing.tfvars 파일의 입력을 기반으로 아마존 심플 스토리지 서비스 (Amazon S3) 버킷 EventBridge , 아마존 규칙, AWS Glue 데이터베이스 테이블, 아마존 아테나 작업 그룹을 생성합니다.
Terraform은 AWS CloudFormation 스택을 배포하여 사용자 지정 리소스를 프로비저닝합니다.
Terraform은 testing.tfvars 파일의 지정된 입력을 기반으로 Amazon API Gateway 리소스를 생성합니다.
자동화 및 규모 조정
이 패턴을 사용하여 여러 AWS 계정 및 AWS 리전에 대한 AWS WAF 규칙을 생성하여 AWS 클라우드 환경 전체에 AWS WAF의 보안 자동화 솔루션을 배포할 수 있습니다.
도구
서비스
AWS Command Line Interface(AWS CLI)는 명령줄 쉘에서 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구입니다.
AWS WAF는 보호되는 웹 애플리케이션 리소스로 전달되는 HTTP 및 HTTPS 요청을 모니터링할 수 있게 해주는 웹 애플리케이션 방화벽입니다.
기타 서비스
Git
은 오픈 소스 분산 버전 제어 시스템입니다. HashiCorp Terraform은
코드를 사용하여 클라우드 인프라 및 리소스를 프로비저닝하고 관리하는 데 도움이 되는 명령줄 인터페이스 애플리케이션입니다.
코드 리포지토리
이 패턴의 코드는 Terraform을 사용한 GitHub AWS WAF 자동화
모범 사례
정적 파일을 별도의 S3 버킷에 넣습니다.
변수를 하드 코딩하지 않습니다.
사용자 지정 스크립트의 사용을 제한합니다.
명명 규칙을 채택합니다.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
Git을 설치합니다. | 시작하기 | DevOps 엔지니어 |
리포지토리를 복제합니다. | 로컬 워크스테이션에서 코드 리포지토리를 복제하려면 다음 명령을 입력합니다. 리포지토리 URL을 포함한 전체 명령을 복사하려면 이 패턴의 추가 정보 섹션을 참조하세요.
| DevOps 엔지니어 |
변수를 업데이트합니다. |
| DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
Terraform 구성을 초기화합니다. | 다음 명령을 입력하여 Terraform 구성 파일이 포함된 작업 디렉토리를 초기화합니다.
| DevOps 엔지니어 |
Terraform 계획을 미리 보기합니다. | 다음 명령을 입력합니다. Terraform은 구성 파일을 평가하여 선언된 리소스의 목표 상태를 결정합니다. 그런 다음 목표 상태를 현재 상태와 비교하고 계획을 구성합니다.
| DevOps 엔지니어 |
계획을 확인합니다. | 계획을 검토하고 대상 AWS 계정에 필요한 아키텍처가 구성되어 있는지 확인합니다. | DevOps 엔지니어 |
솔루션을 배포합니다. |
| DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
변경 사항을 확인합니다. |
| DevOps 엔지니어 |
(선택 사항) 인프라를 정리합니다. | 이 솔루션으로 수행한 모든 리소스 및 구성의 변경 내용을 제거하려면 다음을 수행합니다.
| DevOps 엔지니어 |
문제 해결
문제 | Solution |
---|---|
|
|
관련 리소스
AWS 참조
AWS WAF의 보안 자동화
(AWS Solutions Library)
Terraform 참조
테라폼 AWS 공급자
(GitHub 리포지토리)
추가 정보
다음 명령은 이 패턴의 GitHub 리포지토리를 복제합니다.
git clone https://github.com/aws-samples/aws-waf-automation-terraform-samples.git