AWS WAF พร้อมใช้งานใน Thailand region แล้ว (โดยใช้งานร่วมกับ ELB)
เมื่อวันที่ 5 มีนาคมที่ผ่านมา AWS ได้ประกาศเปิดใช้งานบริการ AWS WAF ให้กับ Thailand region แล้วเรียบร้อย
ดังนั้นในบทความนี้ เราจะมาทดลองใช้งาน AWS WAF ใน Thailand Region กัน
ตัวอย่าง Diagram ที่จะสร้างในบทความนี้
สิ่งที่ต้องมีก่อนเริ่มใช้งาน WAF ใน Thailand Region
สร้าง EC2 โดยดูวิธีการสร้างได้จากบทความด้านล่าง
จากนั้นทำการติดตั้ง PHP และ Apache เพื่อให้สามารถใช้งานเว็บไซต์บน EC2 ได้
ตั้งค่า Load balancer
สร้าง Target group
เข้ามาที่หน้าคอนโซลของ EC2 จากนั้นไปที่หัวข้อ Target Groups และคลิก "Create target group"
ทำการตั้งชื่อ target group จากนั้นคลิก "Next"
เลือก instance ที่เราสร้างไว้เพื่อใช้งานเว็บไซต์ จากนั้นคลิกที่ "Include as pending below"
instance ที่เราเลือกจะมาอยู่ที่ Targets จากนั้นให้คลิก "Create target group"
เพียงเท่านี้การสร้าง Target group ก็จะเสร็จเรียบร้อย
สร้าง Load balancer
ไปที่หัวข้อ Load balancers จากนั้นคลิก "Create load balancer"
ในบทความนี้จะใช้เป็น Application Load Balancer
ตั้งชื่อ ALB
ทำการเลือก subnet โดยในบทความนี้จะขอเลือกทั้ง 3 AZ
ทำการเลือก Security groups โดยในบทความนี้จะทำการสร้าง security group ขึ้นมาใหม่ตามรูปด้านล่าง
และในส่วนของ Listeners and routing ก็ให้เลือก target group ที่เราเพิ่งสร้างมา
จากนั้นให้คลิกที่ "Create load balancer"
เมื่อสร้างเสร็จแล้ว ให้ลองนำ URL ของ ALB ไปใช้งาน
เมื่อลองใช้งาน URL ก็จะสามารถเข้าไปยังเว็บไซต์ได้ โดยที่ไม่ต้องใช้ IP ของ EC2
ตั้งค่า WAF
สร้าง IP set
เข้ามาที่ console ของ WAF & Shield และเลือกหัวข้อ IP sets ทำการเลือก Region เป็น Thailand จากนั้นคลิก “Create IP set”
จากนั้นตั้งชื่อ IP set และกำหนด IP ซึ่งในบทความนี้ผมจะทดสอบด้วย IP ของตัวเอง
เมื่อตั้งค่าเรียบร้อยคลิก “Create IP set”
สร้าง Web ACL
เข้ามาที่ console ของ WAF & Shield และคลิก “Create web ACL”
ตั้งชื่อ Web ACL จากนั้นคลิกที่ "Add AWS resources"
เลือก ALB ที่เราได้สร้างไว้ จากนั้นคลิก “Add” และตามด้วยคลิก "Next"
ทำการเพิ่ม rule โดยในบทความนี้จะเลือกเป็น “Add my own rules and rule groups”
สามารถดูรายละเอียดเกี่ยวกับ AWS WAF rule ได้ที่
เราจะทำการสร้าง rule สำหรับ block การเข้าถึงโดย
เลือก IP set โดยเลือกอันที่เพิ่งสร้างไป (หัวข้อ Action ได้มีการเลือก Block ไว้อยู่แล้ว)
จากนั้นคลิก “Add rule”
จากนั้นคลิก “Next” ไปจนถึงหน้ารีวิว
หลังจากตรวจสอบแล้ว ให้คลิก “Create web ACL”
ทดสอบการเชื่อมต่อ
เมื่อลองเชื่อมต่อผ่าน ALB ด้วย IP ตัวเองก็จะได้ผลลัพธ์ตามภาพด้านล่าง
แต่เมื่อลองใช้ IP อื่นที่ไม่ได้อยู่ใน IP set ที่เราตั้งค่าไว้ ก็ยังคงสามารถเชื่อมต่อได้
ค่าใช้จ่าย
สำหรับค่าใช้จ่ายของ AWS WAF จะแบ่งออกเป็น 3 ส่วน อ้างอิงราคาจาก Thailand region
ประเภททรัพยากร | ราคา |
---|---|
Web ACL | USD 5.00 ต่อเดือน (คิดตามสัดส่วนรายชั่วโมง) |
Rule | USD 1.00 ต่อเดือน (คิดตามสัดส่วนรายชั่วโมง) |
คำขอ | USD 0.60 ต่อ 1 ล้านคำขอ (สำหรับการตรวจสอบ WCU สูงสุด 1500 รายการและขนาดเนื้อหาเริ่มต้น*) |
สามารถดูรายละเอียดเพิ่มเติมได้ที่
สรุป
หากเราใช้งาน CloudFront โดยปกติเราจะไม่สามารถกำหนด IP เข้า-ออกที่เชื่อมต่อเข้ามาได้เหมือน Security group ซึ่ง AWS WAF สามารถทำหน้าที่เหมือน Security group ได้และทำได้มากกว่าการกำหนด IP ด้วย