기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
웹 ACL 트래픽 정보 로깅
주의
AWS WAF 클래식 지원은 2025년 9월 30일에 종료됩니다.
참고
이것은 AWS WAF Classic 설명서입니다. 2019년 11월 AWS WAF 이전에에서 규칙 및 웹 ACLs과 같은 리소스를 생성하고 AWS WAF 아직 최신 버전으로 마이그레이션하지 않은 경우에만이 버전을 사용해야 합니다. 웹 ACL 마이그레이션하려면 AWS WAF Classic 리소스를 로 마이그레이션 AWS WAF 섹션을 참조하세요.
의 최신 버전은 AWS WAF 섹션을 참조하세요AWS WAF.
참고
Amazon Security Lake를 사용하여 AWS WAF Classic 데이터를 수집할 수 없습니다.
로깅을 활성화하여 웹 ACL에서 분석한 트래픽에 대한 자세한 정보를 기록할 수 있습니다. 로그에 포함된 정보에는 AWS WAF Classic이 AWS 리소스로부터 요청을 받은 시간, 요청에 대한 자세한 정보, 각 요청이 일치하는 규칙에 대한 작업이 포함됩니다.
시작하려면 Amazon Kinesis Data Firehose를 설정합니다. 이 과정에서 로그를 저장할 대상 위치를 선택합니다. 그런 다음 로깅을 활성화하려는 웹 ACL을 선택합니다. 로깅을 활성화한 후는 Firehose를 통해 스토리지 대상으로 로그를 AWS WAF 전달합니다.
Amazon Kinesis Data Firehose를 생성하고 저장된 로그를 검토하는 방법에 대한 자세한 내용은 Amazon Data Firehose란 무엇인가요? 섹션을 참조하세요. Kinesis Data Firehose 구성에 필요한 권한을 이해하려면 Amazon Kinesis Data Firehose를 사용한 액세스 제어를 참조하세요.
로깅을 활성화하려면 다음 권한이 있어야 합니다.
iam:CreateServiceLinkedRole
firehose:ListDeliveryStreams
waf:PutLoggingConfiguration
서비스 연결 역할 및 iam:CreateServiceLinkedRole
권한에 대한 자세한 내용은 AWS WAF Classic에 서비스 연결 역할 사용 섹션을 참조하세요.
웹 ACL에 대해 로깅을 활성화하려면
"aws-waf-logs-" 접두사로 시작하는 이름(예:
aws-waf-logs-us-east-2-analytics
)을 사용하여 Amazon Kinesis Data Firehose를 생성합니다. 작업하려는 리전에서PUT
소스를 사용하여 Data Firehose를 생성합니다. Amazon CloudFront에 대한 로그를 캡처하고 있는 경우, 미국 동부(버지니아 북부)에서 Firehose를 생성합니다. 자세한 내용은 Creating an Amazon Data Firehose Delivery Stream 섹션을 참조하세요.중요
Kinesis stream
을 소스로 선택하지 마십시오.AWS WAF Classic 로그 하나는 Firehose 레코드 하나와 동일합니다. 일반적으로 초당 10,000개의 요청을 받는데 전체 로그를 활성화하는 경우, Firehose에는 초당 10,000개의 레코드가 설정되어 있어야 합니다. Firehose를 올바르게 구성하지 않으면 AWS WAF Classic은 모든 로그를 기록하지 않습니다. 자세한 내용은 Amazon Kinesis Data Firehose 할당량을 참조하세요.
에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/wafv2/
AWS WAF 콘솔을 엽니다. 탐색 창에 AWS WAF 클래식으로 전환이 표시되면 선택합니다.
탐색 창에서 웹 ACL을 선택합니다.
로깅을 활성화하려는 웹 ACL의 이름을 선택합니다. 이렇게 하면 오른쪽 창에 웹 ACL의 세부 정보가 있는 페이지가 열립니다.
로깅 탭에서 로깅 활성화를 선택합니다.
첫 단계에서 생성한 Kinesis Data Firehose를 선택합니다. "aws-waf-logs-"로 시작하는 Firehose를 선택해야 합니다.
(선택 사항) 로그에 포함된 특정 필드와 그 값이 필요하지 않은 경우 해당 필드를 삭제합니다. 삭제할 필드를 선택한 후 추가를 선택합니다. 필요에 따라 이 작업을 반복하여 추가 필드를 삭제합니다. 삭제된 필드는 로그에서
REDACTED
(으)로 표시됩니다. 예를 들어 cookie 필드를 삭제한 경우 로그에서 cookie 필드가REDACTED
(으)로 나타납니다.로깅 활성화를 선택합니다.
참고
로깅을 성공적으로 활성화하면 AWS WAF Classic은 Amazon Kinesis Data Firehose에 로그를 쓰는 데 필요한 권한이 있는 서비스 연결 역할을 생성합니다. 자세한 내용은 AWS WAF Classic에 서비스 연결 역할 사용 단원을 참조하십시오.
웹 ACL에 대한 로깅 비활성화
탐색 창에서 웹 ACL을 선택합니다.
로깅을 비활성화하려는 웹 ACL의 이름을 선택합니다. 이렇게 하면 오른쪽 창에 웹 ACL의 세부 정보가 있는 페이지가 열립니다.
로깅 탭에서 로깅 비활성화를 선택합니다.
대화 상자에서 로깅 비활성화를 선택합니다.
예 로그 예
{ "timestamp":1533689070589, "formatVersion":1, "webaclId":"385cb038-3a6f-4f2f-ac64-09ab912af590", "terminatingRuleId":"Default_Action", "terminatingRuleType":"REGULAR", "action":"ALLOW", "httpSourceName":"CF", "httpSourceId":"i-123", "ruleGroupList":[ { "ruleGroupId":"41f4eb08-4e1b-2985-92b5-e8abf434fad3", "terminatingRule":null, "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b169-2083-4a91-bbd4-08851a9aaf74"} ], "excludedRules": [ {"exclusionType" : "EXCLUDED_AS_COUNT", "ruleId" : "5432a230-0113-5b83-bbb2-89375c5bfa98"} ] } ], "rateBasedRuleList":[ { "rateBasedRuleId":"7c968ef6-32ec-4fee-96cc-51198e412e7f", "limitKey":"IP", "maxRateAllowed":100 }, { "rateBasedRuleId":"462b169-2083-4a93-bbd4-08851a9aaf30", "limitKey":"IP", "maxRateAllowed":100 } ], "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b181-2011-4a91-bbd4-08851a9aaf52"} ], "httpRequest":{ "clientIp":"192.10.23.23", "country":"US", "headers":[ { "name":"Host", "value":"127.0.0.1:1989" }, { "name":"User-Agent", "value":"curl/7.51.2" }, { "name":"Accept", "value":"*/*" } ], "uri":"REDACTED", "args":"usernam=abc", "httpVersion":"HTTP/1.1", "httpMethod":"GET", "requestId":"cloud front Request id" } }
다음은 이러한 로그에 나열되는 각 항목에 대한 설명입니다.
- 타임스탬프
밀리초 단위의 타임스탬프.
- formatVersion
로그의 포맷 버전.
- webaclId
웹 ACL의 GUID.
- terminatingRuleId
요청을 종료한 규칙의 ID. 요청을 종료하는 규칙이 없으면 이 값은
Default_Action
입니다.- terminatingRuleType
요청을 종료한 규칙의 유형. 가능한 값: RATE_BASED, REGULAR 및 GROUP.
- 작업
작업. 종료 규칙의 가능한 값: ALLOW 및 BLOCK. COUNT는 종료 규칙의 유효한 값이 아닙니다.
- terminatingRuleMatchDetails
-
요청과 일치하는 종료 규칙에 대한 자세한 정보입니다. 종료 규칙에는 웹 요청에 대한 검사 프로세스를 종료하는 작업이 포함되어 있습니다. 종료 규칙에 가능한 작업은 ALLOW 및 BLOCK입니다. 이는 SQL 명령어 삽입 및 크로스 사이트 스크립팅(XSS) 일치 규칙 문에 대해서만 채워집니다. 두 개 이상의 항목을 검사하는 모든 규칙 문과 마찬가지로 AWS WAF 에서는 첫 번째 일치하는 항목에 작업을 적용하고 웹 요청 검사를 중지합니다. 종료 작업을 포함하고 있는 웹 요청에는 로그에 보고된 위협 외에 다른 위협이 있을 수 있습니다.
- httpSourceName
요청의 소스. 가능한 값: CF(소스가 Amazon CloudFront인 경우), APIGW(소스가 Amazon API Gateway인 경우) 및 ALB(소스가 Application Load Balancer인 경우).
- httpSourceId
소스 ID. 이 필드에는 연결된 Amazon CloudFront 배포의 ID, API Gateway에 대한 REST API, 또는 Application Load Balancer의 이름이 표시됩니다.
- ruleGroupList
이 요청에 작용하는 규칙 그룹의 목록. 위의 코드 예제에서는 하나만 있습니다.
- ruleGroupId
규칙 그룹의 ID. 규칙에서 요청을 차단한 경우
ruleGroupID
의 ID는terminatingRuleId
의 ID와 동일합니다.- terminatingRule
요청을 종료한 규칙 그룹 내의 규칙. 이 항목이 null이 아닌 값인 경우 ruleid 및 action도 포함됩니다. 이 경우 이 작업은 항상 BLOCK입니다.
- nonTerminatingMatchingRules
요청에 부합되는 규칙 그룹의 규칙 목록. 이 항목은 항상 COUNT 규칙입니다(일치하는 비 종료 규칙).
- action(nonTerminatingMatchingRules group)
이 항목은 항상 COUNT입니다(일치하는 비 종료 규칙).
- ruleId(nonTerminatingMatchingRules group)
규칙 그룹에서 요청에 부합되는 비 종료 규칙의 ID. 즉. COUNT 규칙입니다.
- excludedRules
규칙 그룹에서 제외한 규칙의 목록입니다. 이 규칙에 대한 작업은 COUNT로 설정됩니다.
- exclusionType(excludedRules 그룹)
제외된 규칙에 COUNT 작업이 있음을 나타내는 유형입니다.
- ruleId(excludedRules 그룹)
규칙 그룹 내에서 제외된 규칙의 ID입니다.
- rateBasedRuleList
요청에 작용하는 속도 기반 규칙의 목록.
- rateBasedRuleId
요청에 작용하는 비율 기반 규칙의 ID입니다. 이 규칙이 요청을 종료한 경우
rateBasedRuleId
의 ID는terminatingRuleId
의 ID와 동일합니다.- limitKey
가 단일 소스에서 요청이 도착할 가능성이 높으며 따라서 속도 모니터링이 적용되는지 여부를 결정하는 데 AWS WAF 사용하는 필드입니다. 가능한 값: IP.
- maxRateAllowed
5분 기간 동안 허용되는 요청의 최대 수입니다. 이 항목의 값은
limitKey
을(를) 통해 지정된 필드의 값과 동일합니다. 요청 수가를 초과maxRateAllowed
하고 규칙에 지정된 다른 조건자도 충족되면는이 규칙에 지정된 작업을 AWS WAF 트리거합니다.- httpRequest
요청에 대한 메타데이터.
- clientIp
클라이언트가 요청을 보내는 IP 주소.
- country
요청의 출처 국가. AWS WAF 가 오리진 국가를 확인할 수 없는 경우이 필드는 로 설정됩니다
-
.- 헤더
헤더 목록.
- uri
요청의 URI. 위의 코드 예제는 이 필드가 삭제된 경우 값이 어떻게 되는지를 보여 줍니다.
- args
쿼리 문자열.
- httpVersion
HTTP 버전.
- httpMethod
요청의 HTTP 메서드.
- requestId
요청의 ID입니다.