Amazon S3에 로그를 저장하도록 AWS WAF 포괄적인 로깅을 구성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 11월 19일

AWS WAF를 설정했으며 이제 Amazon Simple Storage Service(Amazon S3)에 로그를 저장하도록 포괄적인 로깅을 구성해야 합니다. 어떻게 해야 합니까?

간략한 설명

동일한 리전의 Amazon S3 버킷으로 향하는 Amazon Kinesis Data Firehose 스트림을 사용하여 웹 ACL(액세스 제어 목록)에 대한 포괄적인 로깅을 활성화할 수 있습니다. 이렇게 하려면 세 가지 AWS 서비스를 사용해야 합니다.

  • 로그를 생성할 AWS WAF
  • 로그를 수신할 Kinesis Data Firehose
  • 로그를 저장할 Amazon S3

참고: AWS WAF, Kinesis Data Firehose 및 Amazon S3는 동일한 리전에서 실행되어야 합니다.

해결 방법

Kinesis Data Firehose 생성

  1. Kinesis 콘솔을 엽니다.
  2. 탐색 모음에서 웹 ACL이 저장된 [Region]을 선택합니다.
  3. 탐색 창에서 [Data Firehose]를 선택합니다.
  4. [Create Delivery Stream]을 선택합니다.
  5. [Delivery stream name]에 전송 스트림의 이름을 입력합니다. 이름은 aws-waf-logs-로 시작하고 선택한 접미사로 끝나야 합니다. 예: aws-waf-logs-demo.
  6. [Source]에서 기본 [Direct PUT or other sources]이 선택된 상태를 유지합니다. 그리고 [Next]를 선택합니다.
  7. 다음 설정에 대한 기본 옵션을 유지합니다.
    레코드 변환 (비활성화됨)
    레코드 형식 변환 (비활성화됨)
  8. [Next]를 선택합니다.
  9. [Destination]에서 [Amazon S3]를 선택합니다.
  10. [S3 destination] 섹션에서 [Create new]를 선택합니다.
  11. [S3 bucket name]에 이름을 입력합니다. 균일성을 위해 4단계에서 생성한 전송 스트림에 사용한 것과 동일한 이름을 사용할 수 있습니다.
  12. AWS WAF 로그를 저장할 [Region]을 선택합니다.
  13. [Create S3 bucket]을 선택합니다.
  14. (선택 사항) S3 접두사와 오류 접두사를 구성합니다.
    참고: 사용자 지정 접두사는 버킷이 다른 로그와 공유될 때 유용합니다.
  15. [Next]를 선택합니다.
  16. 다음 설정에 대한 기본 옵션을 유지할 수 있습니다.
    버퍼 크기 (5)
    버퍼 간격 (300)
    S3 압축 (비활성화됨)
    S3 암호화 (비활성화됨)
  17. (선택 사항) 필요한 경우 태그를 구성합니다.
  18. [IAM role]에서 [Create new or choose]를 선택합니다.
  19. [Role Name]에 설명이 포함된 이름을 입력합니다. 예: firehose_to_s3-waflogs-demo.
  20. [Allow]를 선택한 후 [Next]를 선택합니다.
  21. 구성을 검토한 다음 [Create delivery stream]을 선택합니다.

AWS WAF를 Kinesis Data Firehose와 연결

  1. AWS WAF 콘솔을 엽니다.
  2. 탐색 창에서 [웹 ACL]을 선택합니다.
  3. [Filter]에서 웹 ACL이 생성된 리전을 선택합니다.
  4. 결과 목록에서 관련 웹 ACL을 선택한 다음 [Logging]을 선택합니다.
  5. [Enable Logging]를 선택합니다.
  6. [Amazon Kinesis Data Firehose]에서 생성한 전송 스트림을 선택합니다.
  7. (선택 사항) 로그에서 수정해야 하는 필드를 구성합니다.
  8. [Create]를 선택합니다. 모든 AWS WAF 로그는 분석을 위해 Amazon S3 버킷에 저장됩니다.

참고: 하나의 AWS WAF 로그는 하나의 Kinesis Data Firehose 레코드와 동등한 역할을 합니다. 일반적으로 초당 10,000개의 요청을 수신하는 경우 Kinesis Data Firehose에서 초당 10,000개의 레코드 제한을 설정하여 전체 로깅을 활성화합니다. 그렇지 않으면 AWS WAF가 모든 로그를 기록하지 않습니다. 자세한 내용은 Amazon Kinesis Data Firehose 제한을 참조하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?