요청을 차단하거나 403 Forbidden 오류로 응답하는 AWS WAF 규칙을 확인하고 싶습니다.
간략한 설명
기본적으로 AWS WAF는 차단 작업이 지정된 AWS WAF 규칙과 일치하는 요청에 대해 "403 Forbidden" 오류를 반환합니다. 차단 작업에 대한 사용자 지정 응답을 설정하면 AWS WAF가 구성된 응답을 반환합니다.
"403 Forbidden" 오류를 해결하려면 샘플링된 요청 또는 AWS WAF 로그를 사용하여 요청을 차단하는 AWS WAF 규칙 또는 규칙 그룹을 식별하십시오. 그런 다음, 요청을 허용하도록 규칙을 수정합니다.
해결 방법
샘플링된 요청 사용
AWS WAF가 지난 3시간 이내에 요청을 차단한 경우 차단된 웹 요청의 샘플을 볼 수 있습니다. AWS WAF가 3시간 이상 전에 요청을 차단한 경우, 동일한 요청을 다시 전송하여 샘플링된 새 요청을 생성하십시오.
샘플링된 요청 테이블에서 다음 열을 검토하십시오.
- 요청을 식별하려면 소스 IP 및 URI 열을 검토하십시오.
- 요청과 일치하는 규칙 또는 규칙 그룹을 식별하려면 지표 이름 열을 검토하십시오. 규칙 그룹이 요청을 차단하는 경우 규칙 그룹 내 규칙 열을 사용하여 규칙을 식별하십시오.
- 규칙이 차단으로 설정되었는지 확인하려면 작업 열을 검토하십시오.
AWS WAF 로그 사용
참고: 요청 시점에 AWS WAF 로깅을 활성화하지 않은 경우 AWS WAF 로깅을 활성화하고 동일한 요청을 재전송하십시오.
AWS WAF 로그의 쿼리를 사용하여 차단된 요청을 식별합니다. Amazon CloudWatch Logs에 저장한 AWS WAF 로그를 쿼리하려면 Amazon CloudWatch Logs Insights 쿼리를 사용하십시오. Amazon Simple Storage Solution(Amazon S3)에 저장한 AWS WAF 로그를 쿼리하려면 Amazon Athena 쿼리를 사용하십시오.
CloudWatch Logs Insights 쿼리 예시
상위 10개 종료 규칙을 가져오려면 다음 쿼리를 실행합니다.
fields terminatingRuleId
| stats count() as requestCount by terminatingRuleId
| sort requestCount desc
| limit 10
AWS WAF가 차단한 요청을 클라이언트 IP 주소, 국가, URI 및 규칙별로 요약하려면 다음 쿼리를 실행합니다.
fields httpRequest.clientIp as ClientIP, httpRequest.country as Country, httpRequest.uri as URI, terminatingRuleId as Rule
| filter action = "BLOCK"
| stats count() as RequestCount by Country, ClientIP, URI, Rule
| sort RequestCount desc
참고: 출력에서 terminatingRuleId 필드는 요청을 차단하는 AWS WAF 규칙 또는 규칙 그룹을 식별합니다.
Athena 쿼리 예시
Amazon S3 버킷에 저장하는 AWS WAF 로그의 경우, Athena를 사용하여 로그를 쿼리하고 세부 정보를 필터링하는 AWS WAF 테이블을 만드십시오. 자세한 내용은 AWS WAF 로그 쿼리를 참조하십시오. 그런 다음 테이블에서 쿼리를 실행합니다.
예를 들어 클라이언트 IP 주소 및 국가를 기준으로 AWS WAF가 차단한 요청 수를 보려면 다음 쿼리를 실행합니다.
SELECT "httprequest"."clientip"
,"count"(*) "count"
, "httprequest"."country"
FROM
waf_logs
WHERE ("action" LIKE 'BLOCK')
GROUP BY "httprequest"."clientip", "httprequest"."country"
ORDER BY "count" DESC
요청을 허용하도록 AWS WAF 규칙 수정
차단 규칙이 AWS Managed Rules 규칙 그룹에 속하는 경우 규칙 동작을 사용자 지정합니다.
차단 규칙이 사용자 지정 규칙인 경우 요청을 허용하는 규칙 문을 사용하도록 규칙 파라미터를 업데이트합니다.
관련 정보
AWS WAF 로깅을 활성화하고 CloudWatch, Amazon S3 또는 Firehose로 로그를 보내려면 어떻게 해야 합니까?
CloudWatch에서 AWS WAF 로그를 분석하려면 어떻게 해야 합니까?