ตั้งค่าแจ้งเตือนเมื่อข้อมูล Cloud Storage ถูกตั้งค่าเป็นสาธารณะ ด้วย Cloud Monitoring

การใช้งาน Cloud นั้น เป็นการใช้พลังประมวลผล และพื้นที่เก็บข้อมูลอันมหาศาลของผู้ให้บริการ เช่น Google, AWS หรือ Azure โดยมีข้อดีคือ เราสามารถเข้าถึงทรัพยากรเหล่านั้นได้ทันที ไม่ต้องสร้างโครงสร้างพื้นฐานต่างๆ เองทั้งหมด ส่วนเรื่องความปลอดภัยนั้น ผู้ให้บริการแต่ละรายก็มีมาตรฐานสากล และมีการตรวจสอบจากผู้ตรวจสอบภายนอก เพื่อแสดงให้เห็นถึงความปลอดภัยทั้งจากการดำเนินงานของผู้ให้บริการ และมาตรการความปลอดภัยในทุกๆ ขั้นตอนของบริการนั้นๆ

สิ่งหนึ่งที่ยังเป็นจริงอยู่ก็คือ แม้ว่าบริการนั้นจะปลอดภัยแค่ไหน แต่ถ้าเราเผลอเรอ ตั้งค่าการเข้าถึงไว้หละหลวม ก็มีสิทธิ์ที่ข้อมูลจะรั่วไหลได้เช่นกัน เช่นข่าวนี้ การป้องกันสามารถทำได้โดยการกำหนดสิทธิ์ของผู้ที่เข้าถึงตามความจำเป็น และจำกัดขอบเขต แต่ถึงอย่างนั้น ความผิดพลาดจากการตั้งค่าก็ยังคงเกิดได้อยู่

นอกจากแนวทางการระวังไม่ให้เกิดความผิดพลาดขึ้น และการตรวจสอบความผิดปกติจาก log แล้ว การรู้ตัวอย่างรวดเร็วเมื่อเกิดปัญหา ทำให้ปัญหาถูกแก้ไขอย่างรวดเร็ว และจำกัดขอบเขตความเสียหายได้ เป็นอีกแนวทางหนึ่งที่ช่วยให้ผู้ดูแลระบบสามารถรับมือกับปัญหานั้นได้ดียิ่งขึ้น

บทความนี้จะยกตัวอย่างการตั้งค่าบน Google Cloud Platform เพื่อแจ้งเตือนทันทีที่มีการ "เปิด" ถังข้อมูลออกสู่สาธารณะ ไม่ว่าจะโดยตั้งใจหรือไม่ ก็ตาม (หากในอนาคตมีระบบที่วัดระดับความตั้งใจของคนได้ ก็เป็นไปได้ที่จะกำหนดเงื่อนไขให้แจ้งเตือนแค่กรณีเผลอเรอด้วยความสะเพร่า)

สิ่งที่เราใช้เป็นตัวอย่างเพื่อตรวจสอบ คือ Google Cloud Storage และเหตุการณ์ที่เราจะเฝ้าระวังคือ การเปิดให้ทุกคนเข้าถึงได้

หากตั้งค่าแบบนี้ ก็เท่ากับเปิดให้ทุกคนเข้าถึงข้อมูลบน bucket ได้

เมื่อมีการตั้งค่า bucket เป็นสาธารณะ สิ่งที่เกิดขึ้นบน log จะมีข้อมูลดังนี้

ไล่ดูจาก log ก็จะเจอ event ที่มีการตั้ง permission บน bucket

กดเข้าไปดูรายละเอียด จะพบกับข้อมูลที่สามารถนำมาใช้ตรวจจับ event ได้

อะไรก็ตามที่ log มองเห็น จะสามารถตรวจจับ และวัดค่าได้ ในที่นี้เราจะกำหนด metric เพื่อตรวจจับเหตุการณ์ที่ bucket ถูกแก้ไข permission เป็น allUsers

ค่อยๆ เติมส่วนที่ต้องการตรวจจับ โดยระบบจะมี autocomplete คอยช่วยให้สะดวกมากยิ่งขึ้น

ตัวอย่างในที่นี้ จะตรวจจับเหตุการณ์ที่เกิดขึ้นบน bucket ที่เกี่ยวข้องกับ allUsers (ไม่ว่าจะเพิ่มหรือลบสิทธิ์ใดๆ ก็ตาม) เสร็จแล้วกด CREATE METRIC

ตั้งชื่อ metric กำหนดประเภทที่ต้องการ (ในที่นี้คือ Counter) และกด Create Metric

เมื่อตรวจจับได้แล้ว เราจะมาตั้งค่าแจ้งเตือน เมื่อระบบเจอสิ่งผิดปกติเกินค่าที่กำหนด และสามารถสั่งแจ้งเตือนไปยังผู้เกี่ยวข้องได้ทันที

metric ที่เพิ่งสร้างขึ้นมา สามารถกดที่เมนูทางขวา และเลือก Create alert from metric

ระบบจะตั้งค่า Resource Type และ Metric ให้ ให้เรากำหนดชื่อ condition ที่ด้านบน และเลือก Aggregator (ในที่นี้เลือกเป็น count)

ตั้งเงื่อนไขที่จะแจ้งเตือน (ในที่นี้คือมี event เกิดขึ้น ก็ให้แจ้งเตือนเลย)

กด ADD NOTIFICATION CHANNEL และเลือกช่องทางที่จะให้ระบบการแจ้งเตือนเข้ามา และกด SAVE

หากมี event ที่ตรวจจับไว้ ตรงกับ policy ก็จะมีการแจ้งเตือนตามช่องทางที่กำหนดไว้ทันที พร้อมรายละเอียดและปุ่มสำหรับกดเข้าไปดู incident

เมื่อแก้ไขปัญหาเรียบร้อยแล้ว สามารถมา update สถานะของ incident ได้ จะได้ไม่ปนกับ incident ใหม่ในอนาคต และช่วยให้จัดการ incident ได้อย่างเหมาะสมต่อไป

ที่หน้า incident จะแสดงรายละเอียดของสิ่งที่ตรวจจับได้ สามารถ update สถานะของ incident ได้ โดยการกดที่ ACKNOWLEDGE INCIDENT

ที่หน้า Alerting จะแสดง Incidents ทั้งหมดที่เกิดขึ้น และยังไม่ได้แก้ไข สามารถใช้เป็นส่วนเฝ้าระวังเหมือนห้อง monitor กล้องวงจรปิดของ รปภ. ตามอาคารสำนักงานได้

เท่านี้ ผู้ดูแลระบบก็เปรียบเสมือนมีคนช่วยตรวจตราความเรียบร้อยให้อยู่ตลอดเวลา อย่างขยันขันแข็ง สิ่งที่ต้องทำต่อคือ การกำหนดขั้นตอนดำเนินงาน เมื่อเกิดเหตุการณ์ดังกล่าวขึ้น ผู้เกี่ยวข้องในแต่ละส่วนจะได้ปฏิบัติตัวได้เหมาะสม และเป็นทิศทางเดียวกันครับ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การเรียกใช้งาน Google Apps Script

ลดเวลาการเรียก API ใน Apps Script ด้วย fecthAll

ออกแบบระบบให้คุยข้าม module กันได้ ด้วย Pub/Sub