trusty — Website Trust Platform
Data Governance

วิธีวางระบบ Data Retention สำหรับธุรกิจ SaaS สตาร์ทอัพ และบริษัทเทคโนโลยีแบบเป็นขั้นตอน

หลายทีม SaaS ตั้ง auto-delete ในโค้ดแล้วคิดว่าครบเรื่อง Data Retention ทั้งที่ backup, log และระบบพาร์ตเนอร์ยังเก็บข้อมูลเดิมอยู่เป็นปี บทความนี้ไล่ขั้นตอนวางระบบให้ครบจริง

📅 เผยแพร่ 27 กรกฎาคม 2569อัปเดตล่าสุด 27 กรกฎาคม 2569✍️ เขียนโดย trusty Editorial Team⏱ อ่าน 9 นาที
Steel framework cabinets housing servers networking devices and cables in contemporary equipped data center
ภาพโดย Brett Sayles จาก Pexels

💬 สรุปสั้น ๆ

การวางระบบ Data Retention สำหรับ SaaS ต้องเริ่มจากจัดกลุ่มข้อมูลตามประเภทและอายุงานที่จำเป็น กำหนดระยะเวลาเก็บต่อกลุ่มโดยอ้างอิงข้อกำหนดทางกฎหมายและความจำเป็นทางธุรกิจ ผูกกลไกลบ/anonymize เข้ากับระบบจริงทั้ง production database, backup และ log ไม่ใช่แค่ชั้นแอปพลิเคชัน แล้วบันทึกหลักฐานทุกรอบว่าลบจริงที่ไหนเมื่อไหร่ เพื่อให้ตรวจสอบย้อนหลังได้

สารบัญ
การวางระบบ Data Retention สำหรับ SaaS ต้องเริ่มจากจัดกลุ่มข้อมูลตามประเภทและอายุงานที่จำเป็น กำหนดระยะเวลาเก็บต่อกลุ่มโดยอ้างอิงข้อกำหนดทางกฎหมายและความจำเป็นทางธุรกิจ ผูกกลไกลบ/anonymize เข้ากับระบบจริงทั้ง production database, backup และ log ไม่ใช่แค่ชั้นแอปพลิเคชัน แล้วบันทึกหลักฐานทุกรอบว่าลบจริงที่ไหนเมื่อไหร่ เพื่อให้ตรวจสอบย้อนหลังได้

ทีม Engineering ของ SaaS จำนวนมากเชื่อว่าการตั้ง TTL (Time To Live) หรือ cron job ลบแถวที่หมดอายุในฐานข้อมูลหลัก เท่ากับมี Data Retention Policy ที่ใช้งานได้จริงแล้ว ความเชื่อนี้พังทันทีที่ลูกค้าองค์กรถามระหว่างรอบ security review ว่า "ข้อมูลที่ลบจากแอปแล้ว ยังอยู่ใน snapshot backup ของเมื่อ 8 เดือนก่อนหรือเปล่า" ทีมส่วนใหญ่ตอบไม่ได้ทันที เพราะ retention ที่แท้จริงต้องครอบคลุมทุกที่ที่ข้อมูลสำเนาไปตกอยู่ ไม่ใช่แค่ตารางที่แอปมองเห็น

ทำไม TTL อย่างเดียวไม่พอสำหรับ SaaS

สถาปัตยกรรม SaaS ทั่วไปมีข้อมูลชุดเดียวกันกระจายอยู่หลายที่โดยธรรมชาติ ได้แก่ production database, read replica, data warehouse ที่ sync เข้าไปทำ analytics, log จาก application server และ error tracking, และ backup snapshot ที่ทำรอบวันหรือรอบสัปดาห์ การลบแถวใน production table เพียงจุดเดียวจึงแก้ปัญหาได้แค่ส่วนเดียวของภาพรวม ทีมที่วางระบบ retention จริงจังต้องไล่ดูทุกปลายทางที่ข้อมูลไปถึง ก่อนจะพูดได้ว่า "ลบแล้ว"

ขั้นตอนที่ 1: จัดกลุ่มข้อมูลตามความจำเป็นในการเก็บ

เริ่มจากไล่ดูข้อมูลลูกค้าที่ระบบเก็บทั้งหมด แล้วจัดเป็นกลุ่มตามเหตุผลที่ต้องเก็บ เช่น ข้อมูลบัญชีผู้ใช้ที่ต้องเก็บตลอดอายุสัญญา ข้อมูลใบแจ้งหนี้ที่ผูกกับกฎหมายบัญชี ข้อมูล usage log ที่ใช้ debug ปัญหาแต่ไม่มีเหตุผลเก็บเกินไม่กี่เดือน และข้อมูล session/token ชั่วคราวที่ควรหมดอายุเร็ว การจัดกลุ่มนี้ต้องอ้างอิงงานที่ทำไว้ในขั้น data mapping หรือ inventory มาก่อน เพราะ retention ตอบคำถามว่า "เก็บนานแค่ไหน" ได้ก็ต่อเมื่อรู้แล้วว่า "มีข้อมูลอะไรอยู่ที่ไหนบ้าง" หลักฐานที่ควรเก็บในขั้นนี้คือตาราง mapping ระหว่างประเภทข้อมูลกับเหตุผลที่ต้องเก็บ เซ็นชื่อผู้รับผิดชอบแต่ละแถว

ขั้นตอนที่ 2: กำหนดระยะเวลาเก็บต่อกลุ่มโดยมีเหตุผลรองรับ

แต่ละกลุ่มข้อมูลต้องมีตัวเลขระยะเวลาที่จับต้องได้ พร้อมเหตุผลว่าทำไมถึงเป็นตัวเลขนั้น เช่น ใบแจ้งหนี้เก็บ 5 ปีตามข้อกำหนดบัญชี บันทึกการยินยอมเก็บตลอดอายุความสัมพันธ์บวกระยะเวลาที่กฎหมายเปิดช่องให้โต้แย้งได้ ส่วน usage log ที่ไม่มีข้อบังคับทางกฎหมายเฉพาะ ทีมควรตั้งจากหลักการ "เก็บเท่าที่จำเป็นต่อธุรกิจจริง" เช่น 90 วันสำหรับ debug แล้วค่อยพิจารณาต่อว่าจำเป็นเก็บยาวกว่านั้นหรือไม่ ทีมที่ตั้งตัวเลขแบบเดา ๆ โดยไม่มีเอกสารอ้างอิงมักตอบไม่ได้เมื่อ auditor ถามว่า "ทำไมถึงเป็น 90 วัน ไม่ใช่ 30 หรือ 180"

ขั้นตอนที่ 3: ผูกกลไกลบเข้ากับระบบจริงทุกชั้น ไม่ใช่แค่แอป

เมื่อกำหนดระยะเวลาแล้ว ขั้นตอนถัดไปคือทำให้การลบเกิดขึ้นจริงในทุกที่ที่ข้อมูลอยู่ ไม่ใช่แค่ query ลบแถวในตารางหลัก ทีมต้องตรวจสอบว่า data warehouse ที่ sync ข้อมูลเข้าไปมี pipeline ลบตามหรือไม่ log aggregator เก็บข้อมูลลูกค้านานแค่ไหนก่อนหมุนเวียนออก และที่สำคัญที่สุดคือ backup snapshot รอบเก่ายังมีข้อมูลที่ลบจาก production ไปแล้วติดอยู่หรือเปล่า จุดนี้คือช่องว่างที่พบบ่อยที่สุดในทีม SaaS เพราะ backup มักตั้งรอบเก็บยาว เช่น 30 หรือ 90 วัน โดยไม่มีใครไปตรวจว่าข้อมูลที่ลบจากแอปไปแล้วยังหลงเหลืออยู่ในสำเนาสำรองอีกกี่ชุด

ขั้นตอนที่ 4: เลือกวิธีกำจัดที่เหมาะกับแต่ละกลุ่ม

ไม่ใช่ทุกกลุ่มข้อมูลควรลบทิ้งแบบเดียวกัน ข้อมูลบางประเภทควรลบถาวรทันทีเมื่อหมดอายุ เช่น token การเข้าสู่ระบบ บางประเภทควร anonymize แทนการลบ เช่น ข้อมูล usage ที่ทีมยังอยากเก็บ pattern เชิงสถิติไว้ทำ product analytics แต่ไม่จำเป็นต้องรู้ว่าเป็นของใคร และบางประเภทควร archive แยกไปเก็บในที่ที่เข้าถึงได้จำกัดกว่าปกติ เช่น ข้อมูลที่อยู่ระหว่างข้อพิพาททางกฎหมายที่ยังต้องเก็บไว้เป็นหลักฐาน การเลือกวิธีที่เหมาะกับบริบทของแต่ละกลุ่ม สำคัญกว่าการมีนโยบายเดียวที่ใช้กับข้อมูลทุกชนิด

ขั้นตอนที่ 5: บันทึกหลักฐานทุกรอบการลบ

เมื่อ automation ลบหรือ anonymize ข้อมูลรอบหนึ่งเสร็จ ระบบควรบันทึก log แยกไว้ว่า ลบข้อมูลกลุ่มไหน จำนวนกี่รายการ จากระบบใด เมื่อไหร่ และใครหรือ job ไหนเป็นคนสั่ง หลักฐานชุดนี้คือสิ่งที่ทีม Privacy หรือ DPO ใช้ตอบ auditor หรือใช้ตรวจสอบว่ากระบวนการทำงานตามที่ตั้งใจไว้จริง หากไม่มี log ชุดนี้ ต่อให้ automation ทำงานถูกต้องทุกวัน ทีมก็ไม่มีทางพิสูจน์ย้อนหลังได้ว่าเกิดขึ้นจริง

ตัวอย่างตารางระยะเวลาเก็บที่ทีม SaaS มักใช้เป็นจุดตั้งต้น

ประเภทข้อมูลระยะเวลาเก็บที่พบบ่อยเหตุผลหลัก
ใบแจ้งหนี้และหลักฐานการชำระเงิน5 ปีข้อกำหนดทางบัญชีและภาษี
บันทึกการให้ความยินยอม (consent log)ตลอดอายุความสัมพันธ์ + ระยะเวลาที่โต้แย้งได้ต้องพิสูจน์ย้อนหลังได้ว่าเคยได้รับความยินยอมจริง
Session token / refresh tokenไม่กี่ชั่วโมงถึงไม่กี่สัปดาห์ไม่มีเหตุผลทางธุรกิจให้เก็บนานกว่านั้น
Usage log สำหรับ debug60-90 วันพอสำหรับสืบสวนปัญหาที่เกิดขึ้นย้อนหลัง
ข้อมูลบัญชีที่ลูกค้าปิดการใช้งานแล้วกำหนดช่วงพัก (grace period) แล้วลบ/anonymizeเผื่อลูกค้าเปลี่ยนใจกลับมาใช้งานในช่วงสั้น ๆ

ตารางนี้เป็นเพียงจุดตั้งต้นสำหรับหารือภายในทีม ไม่ใช่ตัวเลขตายตัวที่ใช้ได้กับทุกธุรกิจ แต่ละ SaaS ควรปรับตัวเลขตามข้อบังคับกฎหมายเฉพาะอุตสาหกรรมของลูกค้าตัวเองและสัญญาที่ทำไว้กับลูกค้าองค์กรแต่ละราย

พร้อมตรวจสอบความน่าเชื่อถือของเว็บไซต์คุณหรือยัง?

ทดลองใช้งาน trusty ฟรี ไม่ต้องใช้บัตรเครดิต เริ่มสแกนได้ทันที

ทดลองใช้งานระบบฟรี

กรณีที่พบบ่อย: ลูกค้าขอปิดบัญชีแล้วข้อมูลควรเกิดอะไรขึ้น

เมื่อลูกค้าขอปิดบัญชี ทีมมักเจอสองแรงดึงที่ขัดกัน ฝั่งหนึ่งคือทีม Growth อยากเก็บข้อมูลไว้เผื่อ win-back campaign ในอนาคต อีกฝั่งคือภาระผูกพันที่ต้องลบข้อมูลเมื่อไม่มีเหตุผลเก็บต่อแล้ว แนวทางที่ใช้ได้จริงคือกำหนด grace period ที่ชัดเจน เช่น 30 วันหลังปิดบัญชีให้ข้อมูลยังอยู่ในสถานะ soft-delete เพื่อกู้คืนได้หากลูกค้าเปลี่ยนใจ พ้นช่วงนั้นแล้วให้ automation ลบหรือ anonymize ข้อมูลส่วนบุคคลจริง โดยอาจเก็บเฉพาะข้อมูลสรุปที่ไม่ระบุตัวตันไว้ทำ analytics ต่อได้ กระบวนการนี้ต้องเขียนเป็นเอกสารและมี log รองรับเช่นเดียวกับ retention ปกติ ไม่ใช่ข้อยกเว้นที่ทำแบบไม่มีร่องรอย

การผูก retention เข้ากับ pipeline และ CI/CD ที่มีอยู่แล้ว

ทีม Engineering ที่มี data pipeline หรือ ETL job อยู่แล้วมักผูก retention job เข้าไปเป็นส่วนหนึ่งของ scheduled job ที่มีอยู่ แทนที่จะสร้างระบบแยกต่างหาก วิธีนี้ลดความเสี่ยงที่ retention job จะถูกลืมหรือหยุดทำงานเงียบ ๆ โดยไม่มีใครรู้ ทีมควรตั้ง monitoring หรือ alert แยกสำหรับ retention job โดยเฉพาะ เพราะถ้า job ที่ลบข้อมูลหยุดทำงานแล้วไม่มีใครสังเกต ข้อมูลที่ควรถูกลบไปแล้วจะสะสมเกินระยะเวลาที่ประกาศไว้โดยไม่มีใครรู้จนกว่าจะถูกตรวจสอบ ซึ่งเป็นสถานการณ์ที่อธิบายยากกว่าการไม่มีระบบเลยด้วยซ้ำ เพราะแปลว่านโยบายที่ประกาศไว้กับผลที่เกิดขึ้นจริงไม่ตรงกัน

ข้อผิดพลาดที่พบบ่อยในทีม SaaS

  • ตั้ง TTL เฉพาะตาราง production แต่ลืมตรวจ backup snapshot ที่หมุนเวียนแยกต่างหาก
  • เขียนนโยบาย retention ไว้เป็นเอกสารสวยงาม แต่ไม่มี automation จริงรองรับ ทำให้ต้องลบมือทุกครั้งแล้วมักถูกลืม
  • ใช้ retention period เดียวกันกับข้อมูลทุกประเภท ทั้งที่ใบแจ้งหนี้กับ session token มีเหตุผลเก็บต่างกันโดยสิ้นเชิง
  • ลืมตรวจ third-party vendor เช่น email/SMS provider หรือ analytics tool ที่รับข้อมูลลูกค้าไปแล้ว ไม่มีใครไปยืนยันว่าเขาลบตามรอบเดียวกันหรือไม่
  • ไม่มี log การลบ ทำให้เมื่อถูกถามย้อนหลังว่าลบจริงหรือเปล่า ตอบได้แค่ "ระบบน่าจะลบให้" ซึ่งไม่ใช่หลักฐานที่ใช้ยืนยันอะไรได้

การตรวจสอบ third-party vendor ที่รับข้อมูลลูกค้าไปแล้ว

SaaS ทั่วไปส่งข้อมูลลูกค้าออกไปหา vendor ภายนอกหลายเจ้าโดยไม่รู้ตัวว่าเยอะขนาดนี้ เช่น payment gateway ที่เก็บประวัติการชำระเงิน email/SMS provider ที่เก็บ log การส่งข้อความ customer support tool ที่เก็บบทสนทนา และ analytics platform ที่เก็บ event ผู้ใช้ แต่ละเจ้ามีนโยบาย retention ของตัวเองซึ่งอาจไม่ตรงกับที่ทีมประกาศไว้กับลูกค้า ทีมที่จริงจังกับเรื่องนี้ควรไล่รายชื่อ vendor ทั้งหมดที่รับข้อมูลส่วนบุคคลไป แล้วถามตรง ๆ ว่าเขาเก็บนานแค่ไหนและมีกลไกลบตามคำขอหรือไม่ หากสัญญาที่ทำกับ vendor ไม่ได้ระบุเรื่อง retention ไว้ชัดเจน นี่คือจุดที่ควรแก้ไขสัญญาหรือ Data Processing Agreement ให้ครอบคลุมก่อนที่จะถูกลูกค้าองค์กรถามในระหว่าง vendor security review

เมื่อไหร่ควรทบทวนตารางระยะเวลาเก็บใหม่

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

สรุป: retention ที่ใช้งานได้จริงต้องตามข้อมูลไปทุกที่

การวางระบบ Data Retention ของ SaaS ที่ทนต่อการตรวจสอบ ไม่ใช่แค่การตั้งค่าลบอัตโนมัติในโค้ดชั้นเดียว แต่คือการไล่ตามข้อมูลไปทุกจุดที่มันถูกสำเนาไป กำหนดระยะเวลาที่มีเหตุผลรองรับต่อกลุ่ม และเก็บหลักฐานทุกรอบที่ลบจริง ทีมที่เริ่มจากงาน mapping ที่ทำไว้ก่อนหน้า แล้วต่อยอดมาเป็นระบบ retention ที่มี log รองรับ จะตอบคำถามจาก auditor หรือลูกค้าองค์กรได้ทันทีโดยไม่ต้องไล่หาข้อมูลทีหลัง

ใครควรเป็นเจ้าของนโยบาย retention ในทีม SaaS ขนาดเล็ก

ทีม SaaS ระยะแรกมักไม่มีตำแหน่ง DPO เต็มเวลา ในทางปฏิบัติจึงต้องมีคนหนึ่งรับผิดชอบเรื่องนี้อย่างชัดเจน ไม่ว่าจะเป็น Engineering Lead ที่ดูแลสถาปัตยกรรมข้อมูล หรือ Head of Product ที่เข้าใจว่าข้อมูลแต่ละส่วนใช้ทำอะไรบ้าง สิ่งสำคัญคือมีคนคนเดียวที่ auditor หรือลูกค้าองค์กรถามได้ตรง ๆ ว่านโยบาย retention ปัจจุบันคืออะไรและปรับปรุงล่าสุดเมื่อไหร่ แทนที่จะกระจายความรับผิดชอบจนไม่มีใครตอบได้ชัดเจนสักคน เมื่อทีมโตขึ้นค่อยส่งต่อความรับผิดชอบนี้ให้ตำแหน่งที่เป็นทางการมากขึ้น แต่ในช่วงเริ่มต้น การมีเจ้าของที่ชัดเจนสำคัญกว่าการรอจนมีตำแหน่งที่ "ถูกต้อง" ครบก่อน

แหล่งข้อมูลอ้างอิง

บทความนี้อ้างอิงแนวคิดจาก NIST Privacy Framework ซึ่งวางหลักการจัดการวงจรชีวิตข้อมูลไว้เป็นแนวทางกลาง ทีมควรตรวจสอบรายละเอียดกฎหมายเฉพาะประเทศหรือข้อบังคับอุตสาหกรรมของตัวเองเพิ่มเติมเสมอ เพราะระยะเวลาเก็บที่กฎหมายกำหนดอาจต่างกันไปตามประเภทธุรกิจ ดูภาพรวมเพิ่มเติมได้ที่ คลังความรู้ Data Governance และหน้าคู่มือรวมของหัวข้อนี้ที่ Data Retention สำหรับ SaaS

คำถามที่พบบ่อย

ตั้ง TTL ในฐานข้อมูลแล้ว ยังต้องทำอะไรเพิ่มอีกไหม

ต้องตรวจว่าข้อมูลชุดเดียวกันสำเนาไปอยู่ที่ backup, data warehouse หรือ log ระบบอื่นหรือไม่ เพราะ TTL ในตารางหลักลบได้แค่จุดเดียว ไม่ครอบคลุมสำเนาที่กระจายอยู่ที่อื่น

ข้อมูลใน backup เก่าที่เกินระยะเวลาเก็บแล้ว ต้องไปลบด้วยไหม

ควรมีนโยบายหมุนเวียนหรือทำลาย backup ตามรอบที่สอดคล้องกับ retention period ที่ตั้งไว้ ไม่เช่นนั้นข้อมูลที่ลบจาก production แล้วจะยังหลงเหลืออยู่ในสำเนาสำรองเป็นช่องว่างที่ตรวจพบบ่อยที่สุด

ทุกประเภทข้อมูลต้องลบถาวรเมื่อหมดระยะเวลาหรือไม่

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

ทีมเล็กที่ไม่มี DPO เต็มเวลาควรเริ่มวางระบบ retention จากตรงไหนก่อน

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

เนื้อหานี้จัดทำขึ้นเพื่อให้ข้อมูลทั่วไปเท่านั้น ไม่ถือเป็นคำแนะนำทางกฎหมาย กรุณาปรึกษาผู้เชี่ยวชาญด้านกฎหมายหรือ Data Protection Officer ของหน่วยงานท่านก่อนนำไปปฏิบัติจริง

พร้อมตรวจสอบความน่าเชื่อถือของเว็บไซต์คุณหรือยัง?

ทดลองใช้งาน trusty ฟรี ไม่ต้องใช้บัตรเครดิต เริ่มสแกนได้ทันที