RBAC, DAC และลำดับชั้นของ Securable Object

การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

แนะนำ Claro

  • แอปสร้างเครดิตระดับโลก โลโก้จำลองของ Claro
การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

ปัญหาการเข้าถึงข้อมูล

access_control.png

การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

องค์ประกอบพื้นฐาน

Privilege คือสิทธิ์ในการดำเนินการ:

  • SELECT: อ่าน
  • INSERT: เขียน
  • CREATE: สร้าง
คำศัพท์ คำนิยาม
Privilege สิทธิ์ในการดำเนินการ (เช่น SELECT, INSERT, CREATE)
Object สิ่งใดก็ตามที่สามารถให้ privilege ได้ (ตาราง, schema, ฐานข้อมูล, warehouse)
Role นิติบุคคลที่ได้รับ privilege; สามารถกำหนดให้ผู้ใช้หรือ role อื่นได้
User บุคคลหรือบัญชีบริการที่เชื่อมต่อกับ Snowflake และถือ role
การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

Role-Based Access Control (RBAC): หลักการทำงาน

 

ขั้นตอนจากซ้ายไปขวาของ privilege, role และ user

การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

การนำ RBAC ไปใช้งาน

ให้ privilege แก่ role

GRANT SELECT ON TABLE core.credit_scores
  TO ROLE analyst_role;

กำหนด role ให้ผู้ใช้

GRANT ROLE analyst_role TO USER maria;
1 [Snowflake: Access Control Privileges](https://docs.snowflake.com/en/user-guide/security-access-control-privileges)
การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

Discretionary Access Control (DAC)

แผนภาพแสดง DAC ก่อนและหลังการโอน

  • ทุกออบเจกต์มีเจ้าของ = role ไม่ใช่บุคคล
  • RBAC กำหนดโครงสร้างของ role
  • DAC กำหนดสิ่งที่แต่ละ role ควบคุม
การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

การโอนความเป็นเจ้าของ

โอนความเป็นเจ้าของไปยัง role อื่น

-- Current owner: SYSADMIN
GRANT OWNERSHIP ON TABLE core.credit_scores
  TO ROLE data_engineer
  REVOKE CURRENT GRANTS;
การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

ลำดับชั้นของ Securable Object

ลำดับชั้นของ Securable Object

การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

การใช้ USAGE ในทุกระดับ

GRANT USAGE ON DATABASE <your_database>
  TO ROLE analyst_role;

GRANT USAGE ON SCHEMA core
  TO ROLE analyst_role;

GRANT SELECT ON TABLE core.credit_scores
  TO ROLE analyst_role;
การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

Role ที่กำหนดโดยระบบ

 

Role ความรับผิดชอบ
ACCOUNTADMIN ควบคุมบัญชีทั้งหมด
SYSADMIN สร้างฐานข้อมูลและ warehouse
SECURITYADMIN นโยบายเครือข่าย, นโยบาย masking, จัดการ role
USERADMIN สร้างผู้ใช้และกำหนด role
PUBLIC Role เริ่มต้นสำหรับผู้ใช้ทุกคน
1 [Snowflake: Access Control Overview](https://docs.snowflake.com/en/user-guide/security-access-control-overview)
การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

มาฝึกกันเลย!

การจัดการ กำกับดูแล และการทำงานร่วมกันใน Snowflake

Preparing Video For Download...