

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 솔루션 배포
<a name="deploy-the-solution"></a>

이 솔루션은 [AWS CloudFormation 템플릿 및 스택을](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html) 사용하여 배포를 자동화합니다. CloudFormation 템플릿은이 솔루션에 포함된 AWS 리소스와 해당 속성을 지정합니다. CloudFormation 스택은 템플릿에 설명된 리소스를 프로비저닝합니다.

## 배포 프로세스 개요
<a name="deployment-process-overview"></a>

CloudFormation 템플릿을 시작하기 전에이 가이드에서 설명하는 아키텍처 및 구성 고려 사항을 검토하세요. 이 섹션의 step-by-step 지침에 따라 솔루션을 구성하고 계정에 배포합니다.

 **배포 시간:** 약 15분.

**참고**  
이전에이 솔루션을 배포한 경우 [업데이트 지침은 솔루션](update-the-solution.md) 업데이트를 참조하세요.

 [사전 조건](prerequisites.md) 
+ CloudFront 배포 구성
+ ALB 구성

 [1단계. 스택 시작](step-1.-launch-the-stack.md) 
+ AWS 계정으로 CloudFormation 템플릿을 시작합니다.
+ 필요한 파라미터의 값을 입력합니다. **스택 이름** 및 **애플리케이션 액세스 로그 버킷 이름**.
+ 다른 템플릿 파라미터를 검토하고 필요한 경우 조정합니다.

 [2단계. 웹 ACL을 웹 애플리케이션과 연결](step-2.-associate-the-web-acl-with-your-web-application.md) 
+ CloudFront 웹 배포(들) 또는 ALB(들)를이 솔루션이 생성하는 웹 ACL과 연결합니다. 원하는 만큼 배포 또는 로드 밸런서를 연결할 수 있습니다.

 [3단계. 웹 액세스 로깅 구성](step-3.-configure-web-access-logging.md) 
+ CloudFront 웹 배포(들) 또는 ALB(들)에 대한 웹 액세스 로깅을 활성화하고 로그 파일을 적절한 Amazon S3 버킷으로 전송합니다. 사용자 정의 접두사와 일치하는 폴더에 로그를 저장합니다. 사용자 정의 접두사를 사용하지 않는 경우 로그를 AWSLogs에 저장합니다(기본 로그 접두사 `AWSLogs/`). 1단계의 **애플리케이션 액세스 로그 버킷 접두사** 파라미터를 참조하세요. [ 자세한 내용을 보려면 스택을 시작합니다](step-1.-launch-the-stack.md).

# AWS CloudFormation 템플릿
<a name="aws-cloudformation-templates"></a>

이 솔루션에는 기본 AWS CloudFormation 템플릿 1개와 중첩 템플릿 2개가 포함되어 있습니다. 솔루션을 배포하기 전에 CloudFormation 템플릿을 다운로드할 수 있습니다.

## 기본 스택
<a name="main-stack"></a>

 [https://s3.amazonaws.com/solutions-reference/security-automations-for-aws-waf/latest/aws-waf-security-automations.template](https://s3.amazonaws.com/solutions-reference/security-automations-for-aws-waf/latest/aws-waf-security-automations.template) **aws-waf-security-automations.template** -이 템플릿을 진입점으로 사용하여 계정에서 솔루션을 시작합니다. 기본 구성은 사전 구성된 규칙이 있는 AWS WAF 웹 ACL을 배포합니다. 필요에 따라 템플릿을 사용자 지정할 수 있습니다.

## WebACL 스택
<a name="webacl-stack"></a>

 [https://s3.amazonaws.com/solutions-reference/security-automations-for-aws-waf/latest/aws-waf-security-automations-webacl.template](https://s3.amazonaws.com/solutions-reference/security-automations-for-aws-waf/latest/aws-waf-security-automations-webacl.template) **aws-waf-security-automations-webacl.template** -이 중첩 템플릿은 웹 ACL, IP, 세트 및 기타 관련 리소스를 포함한 AWS WAF 리소스를 프로비저닝합니다.

## Firehose Athena 스택
<a name="firehose-athena-stack"></a>

 [https://s3.amazonaws.com/solutions-reference/security-automations-for-aws-waf/latest/aws-waf-security-automations-firehose-athena.template](https://s3.amazonaws.com/solutions-reference/security-automations-for-aws-waf/latest/aws-waf-security-automations-firehose-athena.template) **aws-waf-security-automations-firehose-athena.template** -이 중첩 템플릿은 [AWS Glue](https://aws.amazon.com/glue/), Athena 및 Firehose와 관련된 리소스를 프로비저닝합니다. **스캐너 및 프로브** Athena 로그 파서 또는 **HTTP Flood** Lambda 또는 Athena 로그 파서를 선택하면 생성됩니다.

**참고**  
AWS CloudFormation 리소스는 AWS Cloud Development Kit(AWS CDK) 구문에서 생성됩니다.

이 AWS CloudFormation 템플릿은 AWS Cloud에 AWS WAF용 보안 자동화 솔루션을 배포합니다.

# 사전 조건
<a name="prerequisites"></a>

이 솔루션은 CloudFront 또는 ALB로 배포된 웹 애플리케이션에서 작동하도록 설계되었습니다. 이러한 리소스 중 하나가 아직 구성되지 않은 경우이 솔루션을 시작하기 전에 해당 작업을 완료합니다.

## CloudFront 배포 구성
<a name="configure-a-cloudfront-distribution"></a>

다음 단계를 완료하여 웹 애플리케이션의 정적 및 동적 콘텐츠에 대한 CloudFront 배포를 구성합니다. 자세한 지침은 [Amazon CloudFront 개발자 안내서](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html)를 참조하세요.

1. CloudFront 웹 애플리케이션 배포를 생성합니다. [배포 생성을 참조하세요](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html).

1. 정적 및 동적 오리진을 구성합니다. [CloudFront 배포에서 다양한 오리진 사용을 참조하세요](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html).

1. 배포의 동작을 지정합니다. [배포를 생성하거나 업데이트할 때 지정하는 값을 참조하세요](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html).
**참고**  
엔드포인트`CloudFront`로를 선택하는 경우 미국 동부(버지니아 북부) 리전에서 WAFV2 리소스를 생성해야 합니다.

## ALB 구성
<a name="configure-an-alb"></a>

수신 트래픽을 웹 애플리케이션에 배포하도록 ALB를 구성하려면 [ Application Load Balancer 사용 설명서](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)*의 Application Load Balancer* 생성을 참조하세요.

# 1단계. 스택 시작
<a name="step-1.-launch-the-stack"></a>

이 자동화된 AWS CloudFormation 템플릿은 AWS 클라우드에 솔루션을 배포합니다.

1. [AWS Management Console](https://aws.amazon.com/console)에 로그인하고 솔루션 **시작**을 선택하여 `waf-automation-on-aws.template` CloudFormation 템플릿을 시작합니다.

    [https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=WAFSecurityAutomations&templateURL=https:%2F%2Fs3.amazonaws.com%2Fsolutions-reference%2Fsecurity-automations-for-aws-waf%2Flatest%2Faws-waf-security-automations.template&redirectId=ImplementationGuide](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=WAFSecurityAutomations&templateURL=https:%2F%2Fs3.amazonaws.com%2Fsolutions-reference%2Fsecurity-automations-for-aws-waf%2Flatest%2Faws-waf-security-automations.template&redirectId=ImplementationGuide) 

1. 이 템플릿은 기본적으로 미국 동부(버지니아 북부) 리전에서 시작됩니다. 다른 AWS 리전에서이 솔루션을 시작하려면 콘솔 탐색 모음에서 리전 선택기를 사용합니다. 엔드포인트`CloudFront`로를 선택하는 경우 미국 동부(버지니아 북부)(`us-east-1`) 리전에 솔루션을 배포해야 합니다.
**참고**  
정의한 입력 파라미터 값에 따라이 솔루션에는 다양한 리소스가 필요합니다. 이러한 리소스는 현재 특정 AWS 리전에서만 사용할 수 있습니다. 따라서 이러한 서비스를 사용할 수 있는 AWS 리전에서이 솔루션을 시작해야 합니다. 자세한 내용은 [지원되는 AWS 리전을 참조하세요](plan-your-deployment.md#supported-aws-regions).

1. **템플릿 지정** 페이지에서 올바른 템플릿을 선택했는지 확인하고 **다음을** 선택합니다.

1. **스택 세부 정보 지정** 페이지의 스택 이름 필드에서 AWS WAF 구성에 **이름을** 할당합니다. 템플릿이 생성하는 웹 ACL의 이름이기도 합니다.

1. **파라미터**에서 템플릿의 파라미터를 검토하고 필요에 따라 수정합니다. 특정 기능을 옵트아웃하려면 `no` 해당하는 경우 `none` 또는를 선택합니다. 이 솔루션은 다음과 같은 기본값을 사용합니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/solutions/latest/security-automations-for-aws-waf/step-1.-launch-the-stack.html)

1. **다음**을 선택합니다.

1. **스택 옵션 구성** 페이지에서 스택의 리소스에 대한 태그(키-값 페어)를 지정하고 추가 옵션을 설정할 수 있습니다. **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 설정을 검토하고 확인합니다. 템플릿이 IAM 리소스와 필요한 추가 기능을 생성할 것임을 확인하는 상자를 선택합니다.

1. **제출**을 선택하여 스택을 배포합니다.

   AWS CloudFormation 콘솔의 상태 열에서 스택의 **상태를** 확인합니다. 약 15분 후에 CREATE\$1COMPLETE 상태를 받게 됩니다.
**참고**  
`Log Parser` 및 `IP Lists Parser` AWS Lambda 함수 외에도이 솔루션에는 초기 구성 중에 또는 리소스가 업데이트되거나 삭제될 때만 실행되는 `helper` 및 `custom-resource` Lambda 함수가 포함되어 있습니다.  
이 솔루션을 사용하면 AWS Lambda 콘솔에 모든 함수가 표시되지만 세 가지 기본 솔루션 함수만 정기적으로 활성화됩니다. 다른 두 함수는 삭제하지 마세요. 연결된 리소스를 관리하는 데 필요합니다.

스택 리소스에 대한 세부 정보를 보려면 **출력** 탭을 선택합니다. 여기에는 **BadBotHoneypotEndpoint** 값이 포함됩니다. [웹 애플리케이션의 Honeypot 링크 임베드에 사용되므로이 값을 기억하세요](embed-the-honeypot-link-in-your-web-application-optional.md).

# 2단계. 웹 ACL을 웹 애플리케이션과 연결
<a name="step-2.-associate-the-web-acl-with-your-web-application"></a>

CloudFront 배포(들) 또는 ALB(들)를 업데이트하여 1단계에서 생성한 리소스를 사용하여 AWS WAF 및 로깅을 활성화합니다. [ 스택 시작](step-1.-launch-the-stack.md)을 참조하세요.

1. [AWS WAF 콘솔](https://console.aws.amazon.com/wafv2/)에 로그인합니다.

1. 사용할 웹 ACL을 선택합니다.

1. **Associated AWS resources(연결된 AWS 리소스)** 탭에서 **Add AWS resources(AWS 리소스 추가)**를 선택합니다.

1. **리소스 유형**에서 CloudFront 배포 또는 ALB를 선택합니다.

1. 목록에서 리소스를 선택한 다음 **추가**를 선택하여 변경 사항을 저장합니다.

# 3단계. 웹 액세스 로깅 구성
<a name="step-3.-configure-web-access-logging"></a>

이 데이터를 Log Parser Lambda 함수에 사용할 수 있도록 적절한 Amazon S3 버킷으로 웹 액세스 로그를 보내도록 CloudFront 또는 ALB를 구성합니다.

## CloudFront 배포의 웹 액세스 로그 저장
<a name="store-web-access-logs-from-a-cloudfront-distribution"></a>

1. [Amazon CloudFront 콘솔](https://console.aws.amazon.com/cloudfront/)에 로그인합니다.

1. 웹 애플리케이션의 배포를 선택하고 **배포 설정을 선택합니다.**

1. **General** 탭에서 **Edit**를 선택합니다.

1. **AWS WAF 웹 ACL**에서 생성된 웹 ACL 솔루션(**스택 이름** 파라미터)을 선택합니다.

1. [**Logging**]에서 [**On**]을 선택합니다.

1. **로그용 버킷**에서 웹 액세스 로그를 저장하는 데 사용할 S3 버킷을 선택합니다. 이는 기본 스택에서 사용되고 CloudFront가 로그를 쓸 수 있는 권한이 있는 신규 또는 기존 S3 버킷일 수 있습니다. 드롭다운 목록에는 현재 AWS 계정과 연결된 버킷이 나열됩니다. 자세한 내용은 Amazon [ CloudFront 개발자 안내서의 기본 CloudFront 배포 시작하기](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarted.SimpleDistribution.html)를 참조하세요. *Amazon CloudFront *

1. 로그 접두사를 솔루션 배포에 사용되는 접두사로 설정합니다. 기본 스택, **파라미터** 탭, **AppAccessLogBucketPrefixParam**(기본값 )에서 접두사를 찾을 수 있습니다`AWSLogs/`.

1. [**Yes, edit**]를 선택하여 변경 사항을 저장합니다.

자세한 내용은 *Amazon CloudFront 개발자 안내서*의 [표준 로그(액세스 로그) 구성 및 사용을](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) 참조하세요.

## Application Load Balancer의 웹 액세스 로그 저장
<a name="store-web-access-logs-from-an-application-load-balancer"></a>

1. [Amazon Elastic Compute Cloud(Amazon EC2) 콘솔](https://console.aws.amazon.com/ec2/)에 로그인합니다.

1. 탐색 창에서 **로드 밸런서**를 선택합니다.

1. 웹 애플리케이션의 ALB를 선택합니다.

1. **설명** 탭에서 **속성 편집**을 선택합니다.

1. [**Enable access logs**]를 선택합니다.

1. **S3 위치에** 웹 액세스 로그를 저장하는 데 사용할 S3 버킷의 이름을 입력합니다. 기본 스택에서 사용되고 Application Load Balancer가 로그를 작성할 수 있는 권한이 있는 신규 또는 기존 S3 버킷일 수 있습니다.

1. 로그 접두사를 솔루션 배포에 사용되는 접두사로 설정합니다. 기본 스택, **파라미터** 탭, **AppAccessLogBucketPrefixParam**(기본값 )에서 접두사를 찾을 수 있습니다`AWSLogs/`.

1. **저장**을 선택합니다.

자세한 내용은 *Elastic Load Balancing 사용 설명서*의 [ Application Load Balancer에 대한 액세스 로그](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html)를 참조하세요.