RBAC, DAC und die Hierarchie sicherbarer Objekte

Snowflake-Management, Governance & Zusammenarbeit

Emily Melhuish

Technical Curriculum Developer, Snowflake

Claro vorstellen

  • Globale App zum Kreditaufbau Fake-Logo für Claro
Snowflake-Management, Governance & Zusammenarbeit

Das Zugriffsproblem

access_control.png

Snowflake-Management, Governance & Zusammenarbeit

Die Bausteine

Ein Privileg ist eine Berechtigung für Aktionen:

  • SELECT: lesen
  • INSERT: schreiben
  • CREATE: erstellen
Begriff Definition
Privileg Berechtigung für eine Aktion (z. B. SELECT, INSERT, CREATE)
Objekt Alles, worauf ein Privileg vergeben werden kann (Tabelle, Schema, DB, Warehouse)
Rolle Entität, der Privilegien gewährt werden; kann Benutzern oder Rollen zugewiesen werden
Benutzer Person oder Dienstkonto, das sich mit Snowflake verbindet und Rollen hält
Snowflake-Management, Governance & Zusammenarbeit

Role-Based Access Control (RBAC): Funktionsweise

 

Ablauf von links nach rechts: Privileg, Rolle, Benutzer

Snowflake-Management, Governance & Zusammenarbeit

RBAC umsetzen

Privileg an eine Rolle vergeben

GRANT SELECT ON TABLE core.credit_scores
  TO ROLE analyst_role;

Rolle einem Benutzer zuweisen

GRANT ROLE analyst_role TO USER maria;
1 [Snowflake: Access Control Privileges](https://docs.snowflake.com/en/user-guide/security-access-control-privileges)
Snowflake-Management, Governance & Zusammenarbeit

Discretionary Access Control (DAC)

Partition mit DAC vor und nach Übergabe

  • Jedes Objekt hat eine Eigentümerrolle, keine Person
  • RBAC definiert die Rollenstruktur
  • DAC legt fest, was jede Rolle steuert
Snowflake-Management, Governance & Zusammenarbeit

Eigentümerschaft übertragen

Eigentümerschaft an eine andere Rolle übertragen

-- Aktuelle Eigentümerrolle: SYSADMIN
GRANT OWNERSHIP ON TABLE core.credit_scores
  TO ROLE data_engineer
  REVOKE CURRENT GRANTS;
Snowflake-Management, Governance & Zusammenarbeit

Die Hierarchie sicherbarer Objekte

Hierarchie sicherbarer Objekte

Snowflake-Management, Governance & Zusammenarbeit

USAGE auf jeder Ebene vergeben

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-Management, Governance & Zusammenarbeit

Systemdefinierte Rollen

 

Rolle Zuständigkeit
ACCOUNTADMIN Vollständige Kontoverwaltung
SYSADMIN Erstellt Datenbanken und Warehouses
SECURITYADMIN Netzwerkrichtlinien, Masking-Policies, RollenMgmt
USERADMIN Erstellt Benutzer und weist Rollen zu
PUBLIC Standardrolle für alle Benutzer
1 [Snowflake: Access Control Overview](https://docs.snowflake.com/en/user-guide/security-access-control-overview)
Snowflake-Management, Governance & Zusammenarbeit

Lass uns üben!

Snowflake-Management, Governance & Zusammenarbeit

Preparing Video For Download...