Posts

Showing posts from 2020

กำหนดสิทธิ์ราย column บน BigQuery ด้วย BigQuery column-level security

Image
BigQuery เป็นบริการคลังข้อมูลที่รองรับการเก็บและประมวลผลข้อมูลขนาดใหญ่ได้ ในเวลารวดเร็วและราคาคุ้มค่า การที่ข้อมูลจะถูกนำมาใช้ให้เกิดประโยชน์ก็จะต้องมีการเปิดสิทธิ์ให้ผู้ใช้จากแต่ละส่วนให้สามารถเข้าถึงข้อมูลที่ต้องการได้ การกำหนดสิทธิ์เบื้องต้นนั้น สามารถทำได้ในระดับ project, dataset, table หรือ view แต่ถ้าหากข้อมูลที่เราเก็บลง table มีแค่บาง column ที่เป็นข้อมูลความลับ และไม่อยากแยกเก็บข้อมูลลง table ใหม่ จะสามารถทำอย่างไรได้บ้าง BigQuery สามารถกำหนดสิทธิ์ที่ระดับ column ได้ โดยการทำงานร่วมกับ Data Catalog มีรายละเอียดดังนี้ สร้าง policy tag ด้วย Data Catalog 1.เริ่มจากการเข้าไปตั้ง Taxonomies ใน Data Catalog และกด +CREATE 2. กำหนดชื่อ taxonomy เลือก project และกดหนด Policy tags (สามารถกำหนด policy เป็นลำดับชั้นซ้อนกันได้) และ Locations (ต้องเป็น location เดียวกับ dataset ของ BigQuery ที่เราต้องการคุมสิทธิ์) และกด SAVE 3. ที่หน้า taxonomy กดเลือก policy tag ที่เพิ่งสร้าง และกด +ADD MEMBER เพื่อกำหนดสิทธิ์ผู้ใช้ที่สามมารถเข้าถึงข้อมูลใน tag ได้ 4. ระบุบัญชีของ user ที่เราจะให้สิทธิ์ (

จำกัดการเข้าถึง cloud storage จาก IP address ด้วย VPC Service Control

Image
     องค์กรที่มีการใช้งาน public cloud นั้น เพราะเห็นข้อดีหลายๆ อย่างของ cloud ทั้งความยืดหยุ่นในการใช้ทรัพยากร การคิดค่าใช้จ่ายตามการใช้งานจริง และไม่ต้องปวดหัวจัดการเรื่องโครงสร้างพื้นฐานเองทั้งหมด      ในแง่ของความปลอดภัยนั้น การเข้าถึงทรัพยากรต่างๆ บน public cloud จะต้องเข้าถึงด้วยสิทธิ์ที่อนุญาตไว้ด้วย Identity Access Management (IAM) ดังนั้น ความปลอดภัยของข้อมูล จะถูกกำหนดจากการตั้งค่า IAM เป็นพื้นฐาน IAM ใช้ในการกำหนดสิทธิ์ว่าใครสามารถเข้าถึง resource อะไรได้บ้าง      ด้วยความเป็น public cloud ที่สามารถเข้าถึงได้จากที่ไหนก็ได้ องค์กรขนาดใหญ่หลายที่จึงมีข้อกำหนดการใช้งานเพิ่มเติม โดยต้องการจำกัดการเข้าถึงทรัพยากรบน cloud จาก network ขององค์กรเท่านั้น นั่นคือ นอกจากจะได้สิทธิ์บน IAM แล้ว การเข้าใช้งานต้องมาจาก IP address ที่กำหนดไว้ล่วงหน้าด้วย ซึ่งเป็นเงื่อนไขที่ช่วยเพิ่มความปลอดภัยอีกชั้น กรณีที่ผู้ไม่หวังดี สามารถเข้าถึง account ที่ได้สิทธิ์ ก็จำเป็นต้องหาทางเข้าถึง network ขององค์กรด้วย เป็นการป้องกันอีกชั้นหนึ่ง ตัวอย่างการควบคุมการเข้าถึง VM ด้วย firewall      หากเป็น servic

ทำ 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 ไหนสามารถดูข้อมูลจาก regio