Add Your Heading Text Here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
ในปัจจุบันการใช้งาน cloud ในองค์กรเริ่มแพร่หลายมากขึ้น โดยเหตุผลอันดับต้นๆ คือ
- ความรวดเร็วในการเริ่มต้นใช้งาน (องค์กรไม่ต้องรอสร้างบริการเหล่านั้นเอง)
- ค่าใช้จ่ายที่คิดตามการใช้งานจริง (ใช้น้อยจ่ายน้อย ใช้มากจ่ายมาก หลายๆ ครั้ง ค่าใช้จ่ายถูกกว่าสร้างบริการขึ้นมาเอง)
- ความปลอดภัย (ผู้ให้บริการ cloud มีการดำเนินการตามมาตรฐานความปลอดภัยต่างๆ และได้รับการรับรองจากหน่วยงานภายนอก)
ทำความรู้จัก Policy Tags กันก่อน Policy Tags เป็นฟีเจอร์นึงบน Data Catalog ที่จะให้คุณสร้าง tag ที่เหมาะสมตามการจัดหมวดหมู่ของข้อมูลสำหรับธุรกิจของคุณ โดยหลักการ คือ ติด tag เพื่อจำกัดสิทธิ์ และกำหนดว่าใครสามารถเข้าถึงข้อมูลใน tag นั้นๆ ได้
ตัวอย่างข้อมูล
Table “employees” นี้เก็บข้อมูลพนักงานของบริษัทแห่งหนึ่ง ซึ่งประกอบด้วย employee_id (รหัสพนักงาน), first_name (ชื่อ), last_name (นามสกุล), email (อีเมล), salary (เงินเดือน) , working_year (ปีที่ทำงาน), level (ระดับขั้นพนักงาน)

Employees Table stored in BigQuery
Fictional Demo Case ของเราในวันนี้
มีตำแหน่งงาน 2 ระดับที่เกี่ยวข้องกัน คือ Junior HR และ Senior HR โดยที่เราจะให้ Junior HR ไม่สามารถเข้าถึง Column ที่เป็นความลับสุดๆ ทั้ง 3 Columns ได้แก่ salary, working_year และ level บน Employees table ได้ แต่ Senior HR สามารถเข้าถึง ได้ทุก Columns
ปัญหานี้จะแก้ได้ด้วย Policy Tags ซึ่งทำง่ายมากเพียง 3 Steps เท่านั้น ก็สามารถจำกัดการเข้าถึงของ User ที่ไม่ต้องการใน Columns ลับเฉพาะกลุ่มได้แล้ว ขั้นตอนมีตามนี้
Step 1 สร้าง Policy tag taxonomy
เข้าไปที่ Data Catalog บน GCP Console เพื่อทำการสร้าง “Policy tag taxonomies” หรือ การกำหนด Policy level ให้กับลำดับชั้นความสำคัญของ Tag ข้อมูล
→ เลือกเมนู Policy tags และกด Create Taxonomy

→ ตั้งชื่อให้กับ Taxonomy ตามที่ต้องการ จากตัวอย่างด้านล่าง จะเป็นการตั้งชื่อ “HR Business Criticality” ให้เข้าใจง่ายว่า เป็น Tag ที่เกี่ยวกับการลำดับชั้นของข้อมูลสำหรับฝ่ายบุคคล
→ จากนั้นกำหนด Policy tag หรือ ชื่อลำดับชั้นหลัก ซึ่งสามารถกำหนดเป็น High/Medium/Low และอื่นๆ ตามความต้องการ หรือ ตามการกำหนดความสำคัญของข้อมูลได้
ใน Demo นี้ จะกำหนด Policy tag เป็น “High” สำหรับข้อมูลที่ความสำคัญมาก ไม่อนุญาตให้ Junior HR ดูได้ และกำหนด subtag เป็น “employment” เพื่อเจาะจงว่าข้อมูลที่มีความสำคัญมากของเราเนี่ย เป็นข้อมูลเกี่ยวกับการจ้างงาน

→ หลังกด Create ก็จะปรากฏ Policy tag taxonomy “HR Business Criticality” ขึ้นมาตามนี้เลย
เราต้องทำการ enable เพื่อจำกัดการเข้าถึงข้อมูลของ column ที่เราจะนำ Policy tag ไปแปะบน BigQuery ได้ โดยกดเลื่อนปุ่ม Enforce access control

Step 2 กำหนดสิทธิ์ให้กับคนที่เข้าถึงข้อมูลที่สำคัญมาก
สิทธิ์ที่ต้องมีเพื่อใช้งาน Policy tag สำหรับ user คนสำคัญของเรา หรือ พูดง่ายๆ คนที่เราต้องการให้เข้าถึง High-employment Policy Tag ที่เราสร้างไว้ คือ “Fine-Grained Reader”
โดยที่จะ Grant สิทธิ์นี้ผ่าน IAM & Admin จากด้านล่างจะเห็นได้ว่า มีการกำหนดสิทธิ์ “Fine-Grained Reader” ให้กับ Senior HR มโน ของเรา 3 members

Granting Fine-Grained Reader Role

Granted members with Fine-Grained Reader Role appeared on IAM Page
Step 3 แปะ Policy tag ให้กับ Columns บน BigQuery
มาถึงขั้นตอนสุดท้ายกันแล้ว เข้าไปที่ BigQuery Table กด edit schema จากนั้นเลือก Column ที่ต้องการ ติ้กรัว ๆ 3 Columns ที่ต้องการกำหนดสิทธิ์ (salary, working_year และ level) แล้วกด Add policy tag
เลือก Policy Tag ที่ต้องการ ซึ่งในที่นี้เราจะเลือก (HR Business Criticality > high) ที่เราทำไปด้านบน กด select เลย


ลองมาเทส สมรรถภาพ Policy tag ของเราด้วยการ Query บน BigQuery กัน
Test Case 1 : ให้ Senior HR มโนของเราลอง Select * ข้อมูลบน Table ดู
จะเห็นว่า Senior HR มโน ของเราเนี่ยสามารถเห็นข้อมูลทุก Column เลย รวมถึง Column ที่แปะ Policy tag ด้วย

Test Case 2 : ให้ Junior HR มโนของเราลอง Select * ข้อมูลบน Table ดู
Error!! Access Denied เนื่องจากไม่มีสิทธิ์การเข้าถึงทุกๆ Column นั่นเอง

Test Case 3 : ให้ Junior HR มโนของเราลอง Select เฉพาะ column ที่ไม่ได้แปะ Policy tag ผลลัพธ์คือ Junior HR มโน ของเราสามารถ Query column อื่นๆ ได้ปกติ

Sum up สั้นๆ ส่งท้ายกันนิดนึง :
3-Step Miracle เพื่อกำหนด Column-level security บน BigQuery จะเกี่ยวข้องกับ 3 Services บน GCP Console นั่นก็คือ Data Catalog ซึ่งใช้เพื่อกำหนด Policy tag taxonomy, IAM & Admin เพื่อ apply Policy tag ให้กับ user หรือ member และสุดท้าย BigQuery เพื่อ apply Policy tag ให้กับข้อมูล หรือ Column ที่ต้องการ
ปล. สำหรับ user/member ที่ไม่ได้ apply policy tag จะลำบากชีวิตนิดนึง Select * ไม่ได้ แต่ชีวิตไม่ยากขนาดนั้น เราเลือก column ที่ต้องการด้วยการ กด Ctrl+ Spacebar หรือ Click ชื่อ Field name (หรือ column) ที่ต้องการผ่านหน้า console ได้เลย
หากท่านใดสนใจข้อมูลเพิ่มในเรื่องของ Google Workspace, Google Cloud Platform หรือ Service อื่นๆ
ด้าน AI/Machine Learning อาทิ AI Platform, Computer Vision, Speech Recognition
ทาง Tangerine มีผู้เชี่ยวชาญคอยให้คำปรึกษาสามารถ
ติดต่อได้ที่อีเมล google.sales@tangerine.co.th หรือโทร 08-6788-4690 ได้ทันที
References:
https://cloud.google.com/bigquery/docs/column-level-security-intro
https://cloud.google.com/bigquery/docs/best-practices-policy-tags
Share on social media