Ghi nhật ký request

Tình huống

Cửa hàng Nước ép của bạn đang phát triển nhanh chóng. Tuyệt vời! Bây giờ, bạn đang có một tập các rule, bạn dần dần cảm thấy khó nhận ra rule nào chịu trách nhiệm ngăn chặn các request. Như vậy, việc ghi nhận log trở nên hữu ích vào lúc này. Để làm việc này, bạn cần phải bật tính năng ghi nhật ký cho Web ACL của bạn vào S3 bucket. Log của bạn chứa những header, named cookie nhạy cảm. Bạn không muốn nội dung này được ghi nhận lại. Vì vậy bạn cần phải cấu hình loại bỏ các header trong log.

Ghi nhật ký request

WAF sử dụng Amazon Kinesis Firehose để ghi nhật ký. Điều này cho phép các bản ghi được chuyển đến bất kỳ kho Kinesis Firehose nào, chẳng hạn như Amazon S3, Amazon Redshift hoặc Amazon Elastic Search. Để ghi nhật ký các yêu cầu trong Web ACL của bạn, bạn phải tạo một Kinesis Data Firehose.

  1. Truy cập Amazon Kinesis Console.
  • Click Amazon Data Firehose.
  • Click Create Firehose stream.

Testing new rule

Testing new rule

Bạn cần chắc rằng sẽ tạo trong region us-east-1. Đây là yêu cầu bắt buộc để ghi nhận log cho CloudFront.

2. Trong phần Choose source and destination.

  • Tại mục Source Chọn Direct PUT.
  • Tại mục Destination Chọn Amazon S3.
  • Tại mục Firehose stream name, điền aws-waf-logs-workshop-26.

Testing new rule

Tên của Kinesis Data Firehose sẽ bắt đầu với aws-waf-logs-workshop-26. Đây là yêu cầu bắt buộc của dịch vụ WAF.

  1. Trong phần Destination settings.
  • Click Browse.

  • Chọn S3 bucket đã tạo trước đó là nơi lưu trữ đích.

  • Click Choose.

Testing new rule

Testing new rule 4. Kéo màn hình xuống dưới, Click Create delivery stream.

Testing new rule 5. Truy cập AWS WAF Console

  • Click Web ACLs của bạn.
  • Chọn Configure logging sampled requests.

Testing new rule 6. Ở trang thông tin Configure logging.

  • Chọn Edit
  • Chọn tab Logging destination.

Testing new rule

  1. Trong phần Logging destination.
  • Chọn Amazon Data Firehose stream.
  • Tại mục Amazon Kinesis Data Firehose delivery stream Chọn aws-waf-logs-workshop-26.

Testing new rule 8. Trong phần Redacted fields.

  • Tại mục Redacted headers, click Add header
  • Thêm vào giá trị header Cookie.
  • Click Save

Testing new rule 9. Chạy lần lượt các lệnh

curl "<Your Juice Shop URL>?username=admin"
curl "<Your Juice Shop URL>?milkshake=banana&favourite-topping=sauce"
curl -H "x-milkshake: chocolate" "<Your Juice Shop URL>"

Testing new rule

Testing new rule

Testing new rule 10. Truy cập vào S3 bucket của bạn theo đường dẫn như hình và tải tập tin log ghi nhận vào S3.

Testing new rule 11. Tìm từ khóa Cookie trong tập tin, bạn sẽ thấy các giá trị đều là REDACTED.

Testing new rule

Kết luận

WAF cho phép bạn ghi nhận các nhật kí request và lưu trữ trong nơi lưu trữ đích của Kinesis Data Firehose. Nhật ký cung cấp thông tin về request. Nhật ký đồng thời cung cấp hành động và rule đã tác động lên request. Thông tin này có thể không giá trị khi bạn chạy WAF. Sử dụng tính năng điều chỉnh các vùng nội dung để loại bỏ các thông tin nhạy cảm.