สืบเนื่องจากเหตุข้อมูลสำเนาบัตรประจำตัวประชาชนหลุดจาก iTrueMart และ Truemove H รวมถึง Tweet ของท่านผู้ใหญ่ที่อ่านแล้วทำให้ทนไม่ไหว ต้องมาขอเขียนระบายความในใจหน่อย ถ้าสภาพเป็นแบบนี้ต่อไปเห็นที Data Privacy ประเทศไทยจะต้องเละแน่นอน
การเขียนโปรแกรมที่ Cloud Storage อยู่คนละที่กับ Application Server แล้วต้องการให้คนใช้เว็บหรือแอป อัพโหลดได้ “อย่างปลอดภัย” ขั้นแรกจะต้องเซท Bucket ที่ใช้เก็บไฟล์เป็น Private ห้ามเข้าถึงจากภายนอกโดยไม่ได้รับสิทธิ์ จากนั้นตั้งค่าสิทธิ์และสร้าง Access Key (หรือ Password ที่โปรแกรมใช้คุยกัน) บน Cloud Storage แล้วนำมาวางบน Application Server โดยต้องเก็บเป็นความลับให้ใช้ได้เฉพาะผ่านโปรแกรมที่สร้างขึ้นมาเท่านั้น ระบบ Cloud Storage ที่ดี (โดยเฉพาะ Amazon S3 ที่เป็นข่าวอยู่) จะมี API (ช่องทางโปรแกรมใช้คุยกัน) สำหรับให้ฝั่งผู้ใช้บริการ หรือ Application Server โดยที่ฝั่งผู้ใช้บริการสามารถเรียกใช้งานได้ผ่าน API ตั้งแต่ อัพโหลด ดาวน์โหลด ลบไฟล์ รวมไปถึงดูรายการของไฟล์ โดยทุกครั้งที่มีการสั่งคำสั่งจะต้องส่ง Access Key ที่ถูกต้องแนบไปด้วยเสมอ ไม่เช่นนั้นจะไม่สามารถใช้งาน Cloud Storage ดังกล่าวได้ แล้วโปรแกรมเมอร์ฝั่ง Application Server ก็ค่อยเขียนโปรแกรมสำหรับจัดการไฟล์บนโปรแกรมของตนเองเพื่อเชื่อมกับไฟล์บน Cloud Storage เข้ากับฐานข้อมูลที่ใช้ การเรียกใช้งานไฟล์บน Cloud Storage จะถูกเรียกผ่าน Application Server ทั้งหมด ทำให้สามารถควบคุมการเข้าถึงจากทางฝั่ง Application Server ได้ และผู้ใช้โปรแกรมรวมถึงบุคคลภายนอกจะมองไม่เห็นเลยว่ามีการใช้ Cloud Storage ที่ส่วนไหนของโปรแกรม
ระดับนี้แล้ว ใครเขามาใช้ FTP กัน มันคนละเรื่องคนละราวกันเลยครับ
สรุปเป็นขั้นตอน
1. ผู้ใช้ระบบ ต้องมี Username/Password ถึงจะเข้าใช้งานระบบของ App Server ได้
2. เมื่อมีการใช้งานไฟล์บน Cloud Storage ตัว App Server จะเป็นคนต่อไปหา Cloud Storage ให้ โดยจะแนบ Access Key ไปกับคำสั่งใช้งาน Cloud Storage โดย Access Key จะถูกเก็บเป็นความลับบน App Server
3. Cloud Storage “ที่ถูกเซทเป็น Private” จะตรวจสอบความถูกต้องของ Access Key ที่ App Server ส่งมา ถ้าถูกต้องจึงอนุญาตให้ทำงานได้
Q: ถ้าจะซับซ้อนขนาดนี้ทำไมยังต้องใช้ Cloud Storage ทำไมไม่เก็บใน App Server ไปเลย?
A: เพราะ Cloud Storage ช่วยอำนวยความสะดวกในการเก็บไฟล์ และยังมีระบบสำรองข้อมูล ช่วยไฟล์ที่เก็บปลอดภัยมากกว่า ไม่จำเป็นต้องทำระบบสำรองข้อมูลเอง และยังมีราคาไม่แพงด้วยเมื่อเทียบกับประโยชน์ที่ได้รับ
Q: ถ้าเซทเป็น Private แล้วจะใช้งาน Cloud Storage ได้หรือ?
A: ใช้งานได้ โดยการสร้าง Access Key แล้วแนบไปในทุกคำสั่งที่จะใช้งาน Cloud Storage
Q: แล้วเซทเป็น Public มีประโยชน์อย่างไร?
A: ช่วยให้สามารถเข้าถึงไฟล์ได้ง่ายโดยไม่จำเป็นต้องใช้ Access Key รวมถึงประหยัดค่า Traffic ที่วิ่งผ่าน App Server แต่ทำให้ไฟล์ดังกล่าวเข้าถึงได้จากทุกคนทุกที่เพียงแค่รู้ URL วิธีการนี้ถึงไม่ควรใช้กับข้อมูลที่มีความเป็นส่วนตัว