내용으로 건너뛰기

AWS WAF 로깅을 정화하려면 어떻게 해야 합니까?

4분 분량
0

차단된 요청을 AWS WAF에 로깅하고 싶습니다. 하지만 보호 팩에서 분석하는 모든 요청을 로깅하고 싶지는 않습니다.

간략한 설명

AWS WAF 로그 필터링을 사용하면 로깅된 웹 요청을 필터링하여 분석하려는 정보만 유지할 수 있습니다. 검사 후 웹 요청을 로깅할지 아니면 로그에서 삭제할지를 지정할 수 있습니다. 그러면 AWS WAF가 필요한 로그만 게시하기 때문에 로그 전송 및 스토리지 비용을 절약할 수 있습니다.

AWS WAF 로그를 필터링하려면 먼저 AWS WAF 로깅을 켜십시오.

로그를 정화하려면 필드 민감한 정보 삭제 및 로그 필터링을 구현하십시오.

필드 민감한 정보 삭제: 요청에서 로그에 보관하지 않으려는 부분의 민감한 정보를 삭제하십시오. 로그 레코드에서 URI 경로, 쿼리 문자열, 단일 헤더 및 ** HTTP 메서드** 필드를 생략할 수 있습니다. 민감한 정보가 삭제된 필드는 로그에서 REDACTED로 표시됩니다.

로그 필터링: 평가 중에 규칙에 의해 생성된 규칙 작업 또는 레이블을 기반으로 로그 항목을 필터링하는 필터 조건을 지정합니다. AWS WAF 로그에서 레이블이 포함된 모든 요청을 필터링하려면 정규화된 레이블 이름을 사용하는 모든 레이블을 포함합니다. awswaf:account_number:webacl:webacl_name:namespace:label name 형식을 사용하십시오.

참고: AWS 로그 필터링 사용에 따른 추가 요금은 없습니다. 하지만 로깅 대상에는 요금이 부과됩니다. 여기에는 Amazon CloudWatch, Amazon Simple Storage Service(Amazon S3) 버킷, Amazon Data Firehose 전송 스트림이 포함됩니다.

AWS WAF 콘솔을 사용하여 AWS WAF 로그 필터링 켜기

  1. AWS WAF 콘솔을 엽니다.
  2. 리전에서 보호 팩을 생성한 AWS 리전을 선택합니다.
  3. 탐색 창에서 리소스 및 보호 팩을 선택합니다.
  4. 보호 팩 오른쪽에서 리전 이름 옆에 있는 아이콘을 선택하여 보호 팩을 선택합니다.
  5. 선택한 보호 팩에서 로깅을 선택합니다.
  6. 이 보호 팩과 관련된 로깅 구성을 보거나 수정하려면 로깅 옆의 보기 및 편집을 선택합니다.
  7. 데이터 보호 설정에서 활성을 선택합니다.
  8. 범위에서 로깅 대상 전용을 선택합니다.
  9. 대상 유형과 Cloudwatch 로그 그룹을 선택합니다.
  10. 편집된 필드에서는 로그에서 생략할 필드를 선택합니다.
    참고: 단일 헤더 필드에서 민감한 정보를 삭제하려면 사용자 지정 헤더를 지정하십시오.
  11. 필터 조건에서 요청 시 규칙 작업 또는 요청에 레이블이 있음을 선택합니다.
    요청 시 규칙 작업에서 AWS WAF 로그에 필터링 기준으로 사용할 규칙 작업을 선택합니다. 예를 들면 허용, 차단, 카운트, CAPTCHA 또는 챌린지가 있습니다.
    요청에 레이블이 있음에서 요청을 평가하는 동안 AWS WAF에 추가한 레이블을 입력합니다.
  12. 필터 동작에서 로그에 보관 또는 로그에서 삭제를 선택합니다.
  13. ‘로그에 보관’ 또는 ‘로그에서 삭제’에서 기본 로깅 동작을 선택합니다.
  14. 저장을 선택합니다.

AWS Command Line Interface(AWS CLI)를 사용하여 AWS WAF 로그 필터링 켜기

**참고:AWS CLI 명령을 실행할 때 오류가 발생하면, **AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

  1. 현재 로깅 구성을 가져오려면 get-logging-configuration를 실행합니다.
    aws wafv2 get-logging-configuration --region region--resource-arn arn:aws:wafv2:region:account_number:regional/webacl/webacl_name/webacl_id > waf.json
    참고: region을 웹 ACL의 AWS 리전, resource-arn을 웹 ACL의 Amazon 리소스 이름(ARN)으로, webacl_name을 웹 ACL의 이름으로 바꾸십시오.
  2. 로깅 구성 파일을 연 후 다음 JSON 필터를 추가합니다.
    "LoggingFilter": {
        "DefaultBehavior": "string",
        "Filters": [
        {
            "Behavior": "string",
            "Conditions": [
                {
                    "ActionCondition": {
                    "Action": "string"
                    },
                    "LabelNameCondition": {
                    "LabelName": "string"
                    }
                }
            ],
            "Requirement": "string"
        }
    ]
    }
    참고: 필터 및 필터 작업을 필수 필터로 바꾸십시오.
  3. 로깅 구성을 업데이트하려면 put-logging-configuration을 실행합니다.
    aws wafv2 put-logging-configuration --region region --cli-input-json file://waf.json
    참고: region을 웹 ACL의 리전으로 바꾸십시오.

차단된 요청만 로깅

AWS WAF에서 차단한 요청만 로깅하려면 규칙 작업 기반 필터링을 선택한 다음 작업을 차단으로 설정합니다. 차단은 AWS WAF의 종료 작업입니다. AWS WAF 로그 필터는 AWS WAF 로그 항목의 종료 규칙 작업을 확인합니다. 작업이 차단인 경우 AWS WAF 로그 필터가 로그에 항목을 추가합니다.

규칙 그룹의 카운트 요청 로깅

규칙 그룹의 규칙 설정 방식에 따라 로그에서 카운트 요청을 필터링할지 여부가 결정됩니다.

규칙 그룹의 규칙 작업은 카운트로 설정됩니다. 이 규칙과 대조하는 요청에 대한 로그에는 카운트 작업이 포함되지 않습니다. 대신 AWS WAF 로그의 excludedRules 필드 아래에 이 규칙이 표시됩니다. AWS WAF는 이 필드를 확인하지 않습니다. AWS WAF 로그는 카운트로 필터링됩니다. 즉, 이러한 요청은 카운트 작업에 대한 로그 필터링으로 필터링되지 않습니다.

비종료 작업 카운트가 포함된 규칙은 허용 또는 차단과 같은 종료 규칙 작업과 함께 검사됩니다. AWS WAF 로그는 카운트 작업으로 필터링된 로그에 이러한 요청을 포함합니다.

규칙 그룹의 규칙 작업은 카운트로 재정의로 설정됩니다. 이러한 요청의 경우 nonTerminatingMatchingRules 필드에 Count 카운트 작업이 포함됩니다. AWS WAF 로그 필터는 이 필드를 확인하므로 규칙이 Count 작업으로 필터링됩니다.

참고: EXCLUDED_AS_COUNT는 로그 필터링에 유효한 작업 유형입니다. 이 작업을 구성하려면 put-logging-configuration 명령을 실행합니다.

관련 정보

LoggingFilter

업데이트된 콘솔 환경에서 작업하기

AWS WAF 보호 팩 또는 웹 ACL 트래픽 로깅

AWS 공식업데이트됨 일 년 전