Posts

ทำ dashboard บน Data Studio ให้ผู้ใช้ เห็นข้อมูลบน BigQuery เฉพาะส่วนของตัวเอง

Image
หลายๆ องค์กร มีการใช้งาน BigQuery เป็น data warehouse ที่เก็บข้อมูลส่วนกลางขนาดใหญ่ การออกแบบ data warehouse ให้รองรับการใช้งานจากผู้ใช้หลายกลุ่ม สามารถทำได้หลายวิธี เช่นการกำหนดสิทธิ์ที่ระดับ dataset หรือการสร้าง view เพื่อให้ผู้ใช้ เห็นเฉพาะผลลัพธ์ของ view นั้นๆ โดยไม่สามารถเข้าถึงข้อมูลทั้ง table ได้
อีกกรณีหนึ่งก็คือ การทำ dashboard ให้ผู้ใช้แต่ละคนเข้ามาใช้งาน dashboard เดียวกัน แต่ข้อมูลที่แสดงนั้น จะถูกดึงตามผู้ใช้งานที่กำลังเปิด dashboard อยู่ คือเห็นเฉพาะข้อมูลที่เกี่ยวข้องกับตัวเองเท่านั้น วิธีนี้มีข้อดีคือ เราจะสร้างและดูแล dashboard แค่ตัวเดียว โดยที่ผู้ใช้ก็จะเห็นข้อมูลของตัวเองเท่านั้น ไม่เห็นข้อมูลของผู้อื่น ไม่ต้องทำ dashboard แยกสำหรับผู้ใช้แต่ละกลุ่ม หรือแต่ละคน
การ implement ในลักษณะนี้ อธิบายได้ด้วยแผนภาพนี้ครับ


ในตัวอย่าง เรามีข้อมูลอยู่ 2 table คือ data_by_region (d) เป็นตัวอย่างข้อมูลที่แสดงเคสผู้ป่วย COVID-19 ในอิตาลี มี schema คือdate: วันที่เจอเคสregion_name: ภูมิภาคที่เจอเคสregion_acl_table (a) เป็นตารางที่ใช้ระบุว่า user ไหนสามารถดูข้อมูลจาก region ไหนได้บ้าง ม…

การย้ายข้อมูลจาก Google Drive ไป Cloud Storage

Image
Google Drive เป็นพื้นที่เก็บข้อมูลใน cloud ที่ผู้ใช้ทั่วไปสามารถเข้าไป สร้างเอกสาร, upload และแชร์เอกสารให้เพื่อนได้ โดยสะดวก ด้วยความง่าย และมี feature ครอบคลุมการใช้งานทั่วๆ ไป แค่สมัคร account แล้วก็เริ่มใช้งานได้เลย มันจึงเหมาะกับการเป็นที่รับ-ส่ง ไฟล์ แบบเร็วๆ

Google Cloud Storage เป็นบริการเก็บข้อมูลบน cloud อีกตัวหนึ่งจาก Google อยู่ในกลุ่มบริการของ Google Cloud Platform ที่มีออกแบบมาสำหรับงานระบบหรือ application ในการใช้งาน Google Cloud Storage นอกจากการสมัคร account แล้ว จะต้องตั้ง project สร้าง bucket ซึ่งต้องตั้งชื่อ เลือก location ของข้อมูล เลือก class ของ storage จึงจะเริ่มใช้งานได้ ด้วยการจัดการที่มีเรื่องต้องเข้าใจเยอะ Cloud Storage จึงเหมาะกับการเก็บข้อมูลสำหรับ application มากกว่าที่จะให้ user ทั่วไปเข้ามาใช้งาน

ในกรณีของผม ที่มีลูกค้าต้องการส่งไฟล์จำนวนประมาณ 1.3 แสน ไฟล์ มาให้เพื่อทำงานอย่างหนึ่ง ผมจึงสร้าง folder บน Google Drive และให้ลูกค้า upload ไฟล์เข้ามาให้ (ในกรณีนี้ ลูกค้าที่เป็นคน upload จะใช้งาน Google Drive ได้ง่ายกว่า Cloud Storage) แต่งานที่จะทำนั้น จะเรี…

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

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

การทดสอบ SMTP connection กับ G Suite SMTP relay service

Image
ลูกค้า G Suite นอกจากจะได้อีเมลให้ผู้ใช้ในองค์กรแล้ว หากต้องการส่งอีเมลออกจากระบบอื่นๆ เช่น เครื่อง printer หรือ app ภายใน สามารถตั้งค่าให้ส่งผ่าน G Suite SMTP relay service ได้ด้วย โดยไม่ต้องเสีย license user แต่อย่างใด
โควต้าที่ Google ให้ลูกค้า G Suite ใช่ส่งอีเมลผ่าน SMTP relay นั้น คือ 130 เท่าของจำนวน G Suite license โดยโควต้านี้จะนับในช่วงเวลา 24 ชม. ตัวอย่างเช่น หากองค์กรของเรามี G Suite user 100 license ก็จะสามารถส่งอีเมลผ่าน SMTP relay ได้ 13,000 ฉบับ ในทุกๆ 24 ชม. (อ่านเพิ่มเติมได้ที่ SMTP relay: Route outgoing non-Gmail messages through Google)
การตั้งค่าเพื่อให้ printer/app ส่งอีเมลด้วย SMTP relay ได้นั้น ก่อนอื่น ต้องให้ G Suite Admin เข้าไปเพิ่ม IP ขาออกของ printer/app ที่ Admin console ซะก่อน 

เมื่อเราเพิ่ม IP ใน Admin console เรียบร้อยแล้ว ก็ตั้งค่าให้ printer/app เชื่อมต่อด้วยค่าตามตารางด้านล่าง


หากทุกอย่างเรียบร้อยดี printer/app ที่เราตั้งค่าไว้ ก็จะสามารถส่งอีเมลออก ผ่านทาง SMTP relay ของ Google ได้ แต่หากรอสักพักแล้ว อีเมลยังส่งออกไม่ได้ การ troubleshoot อย่างหนึ่งคือ…

ตั้ง Active Directory แบบไม่ต้องดูแล server เอง ด้วย Managed Service for Microsoft Active Directory

Image
Microsoft Active Directory (MS AD) เป็นบริการจัดเก็บข้อมูลทั้ง user, group, computer และอื่นๆ ที่มีการใช้งานอย่างแพร่หลายในองค์กรขนาดกลางและขนาดใหญ่ ประโยชน์ที่ได้รับคือ องค์กรสามารถจัดการ directory ส่วนกลาง ว่าตอนนี้มีใครได้สิทธิ์อะไรบ้าง รวมถึง policy ต่างๆ ที่จะถูกกระจายไปที่เครื่องปลายทาง เมื่อมีการ join domain เข้ามา ช่วยให้องค์กรสามารถควบคุม policy บนเครื่องผู้ใช้งานได้ ทั้งในแง่ความปลอดภัย (เช่น การสั่งปิดการถ่ายโอนข้อมูลลง usb drive) ความสะดวกและความเป็นมาตรฐานในการใช้งาน (เช่น การสั่งติดตั้ง software พื้นฐานในการทำงาน ให้แต่ละแผนก) และยังสามารถใช้เป็นศูนย์กลาง เพื่อให้ app ต่างๆ ในองค์กร เข้ามาใช้ยืนยันตัวตนผู้ใช้งานได้อีกด้วย

การตั้ง AD server เพื่อใช้งานบน Google Cloud สามารถติดตั้งบน Compute Engine ได้ตามปกติ โดยการ enable Domain Services บน Windows Server เราก็จะได้ AD server มาใช้งาน แต่การตั้ง AD server ในลักษณะนี้ เรายังคงต้องดูแลระบบให้ทำงานได้อย่างมีประสิทธิภาพอยู่เสมอ เช่น การ patch security, การทำ High Availability (HA) หรือ Disaster Recovery (DR)
Google Cloud Platfo…