Zugriffssteuerung

Dieser Abschnitt enthält Informationen darüber, wie die Zugriffssteuerung für Snowflake Open Catalog funktioniert.

Open Catalog verwendet ein Modell der rollenbasierten Zugriffssteuerung (RBAC), bei dem der Open Catalog-Administrator den Katalogrollen Zugriffsrechte zuweist und dann den Dienstprinzipalen den Zugriff auf Ressourcen gewährt, indem er die Katalogrollen den Prinzipalrollen zuweist.

Dies sind die Schlüsselbegriffe zum Verständnis der Zugriffssteuerung in Open Catalog:

  • Sicherungsfähiges Objekt

  • Prinzipalrolle

  • Katalogrolle

  • Berechtigung

Sicherungsfähiges Objekt

Ein sicherungsfähiges Objekt ist ein Objekt, auf das Zugriff gewährt werden kann. Open Catalog verfügt über die folgenden sicherungsfähigen Objekte:

  • Katalog

  • Namespace

  • Iceberg-Tabelle

  • Ansicht

Das RBAC-Modell für Open Catalog ist fein abgestuft, sodass Sie Berechtigungen für den gesamten Katalog oder einen Namespace, eine Tabelle oder eine Ansicht innerhalb des Katalogs erteilen können. Wenn Sie Berechtigungen für einen Namespace erteilen, haben Sie die Möglichkeit, auch die unter diesem Namespace gruppierten Tabellen und alle darunter liegenden untergeordneten Namespaces oder Tabellen zu sichern.

Prinzipalrolle

Eine Prinzipalrolle ist eine Ressource in Open Catalog, mit der Sie Open Catalog-Dienstprinzipale logisch gruppieren und Berechtigungen für sicherungsfähige Objekte erteilen können.

Open Catalog unterstützt eine Viele-zu-eins-Beziehung zwischen Dienstprinzipalen und Prinzipalrollen. Wenn Sie beispielsweise mehreren Dienstprinzipalen die gleichen Berechtigungen gewähren möchten, können Sie diesen Dienstprinzipalen eine einzige Prinzipalrolle zuweisen. Einem Dienstprinzipal kann eine Prinzipalrolle zugewiesen werden. Bei der Registrierung einer Verbindung mit einem Service gibt der Open Catalog-Administrator die Prinzipalrolle an, die dem Dienstprinzipal zugewiesen wird.

Sie gewähren einer Prinzipalrolle keine direkten Berechtigungen. Stattdessen konfigurieren Sie Objektberechtigungen auf der Ebene der Katalogrollen und weisen dann einer Prinzipalrolle Katalogrollen zu.

Die folgende Tabelle zeigt Beispiele für Prinzipalrollen, die Sie in Open Catalog konfigurieren können:

Name der Prinzipalrolle

Beschreibung

Data_engineer

Eine Rolle, die mehreren Dienstprinzipalen zur Ausführung von Data-Engineering-Jobs zugewiesen wird.

Data_scientist

Eine Rolle, die mehreren Dienstprinzipalen für die Ausführung von Data Science- oder AI-Jobs zugewiesen wird.

Katalogrolle

Eine Katalogrolle gehört zu einer bestimmten Katalogressource in Open Catalog und legt eine Reihe von Berechtigungen für Aktionen in Bezug auf den Katalog oder Objekte im Katalog fest, wie z. B. Katalog-Namespaces oder -Tabellen. Sie können eine oder mehrere Katalogrollen für einen Katalog erstellen.

Sie erteilen einer Katalogrolle Berechtigungen und weisen die Katalogrolle dann einer Prinzipalrolle zu, um die Berechtigungen an einen oder mehrere Dienstprinzipale zu vergeben.

Hinweis

Wenn Sie die Berechtigungen eines Dienstprinzipals aktualisieren, werden die Aktualisierungen erst nach einer Stunde wirksam. Das bedeutet: Wenn Sie einige Berechtigungen für einen Katalog widerrufen oder gewähren, werden die aktualisierten Berechtigungen für einen Dienstprinzipal mit Zugriff auf diesen Katalog bis zu einer Stunde lang nicht in Kraft treten.

Open Catalog unterstützt auch eine Viele-zu-eins-Beziehung zwischen Katalogrollen und Prinzipalrollen. Sie können die gleiche Katalogrolle einer oder mehreren Prinzipalrollen zuweisen. Ebenso kann einer Prinzipalrolle eine oder mehrere Katalogrollen zugewiesen werden.

Die folgende Tabelle zeigt Beispiele für Katalogrollen, die Sie in Open Catalog konfigurieren können:

Beispiel-Katalogrolle

Beschreibung

Katalog-Administratoren

Eine Rolle, der mehrere Berechtigungen gewährt wurden, um den vollen Zugriff auf den Katalog zu emulieren.

Prinzipalrollen, denen diese Rolle gewährt wurde, dürfen Tabellen im Katalog erstellen, ändern, lesen, schreiben und löschen.

Katalog-Leser

Eine Rolle, der nur Leseberechtigung für Tabellen im Katalog gewährt wurde.

Prinzipalrollen, denen diese Rolle gewährt wurde, sind berechtigt, aus Tabellen im Katalog zu lesen.

Katalog-Mitarbeiter

Eine Rolle, die Lese- und Schreibzugriffsrechte auf alle Tabellen hat, die zum Katalog gehören.

Prinzipalrollen, denen diese Rolle zugewiesen wurde, dürfen Lese- und Schreiboperationen auf Tabellen im Katalog durchführen.

Benutzerrollen

Ein Benutzer ist jemand, der sich auf der Weboberfläche von Open Catalog anmeldet, um sein Konto zu verwalten. Bevor ein Benutzer jedoch ein Konto verwalten kann, muss ihm mindestens eine Benutzerrolle zugewiesen werden. Die Benutzerrollen, die einem Benutzer zugewiesen werden können, sind Service-Admin und Katalog-Admin.

Rolle des Service-Administrators

Die Service-Admin-Rolle ermöglicht es einem Benutzer, das gesamte Konto zu verwalten, mit ein paar Ausnahmen.

Zulässige Berechtigungen

Ein Benutzer mit Service-Admin-Berechtigungen ist ein Service-Administrator. Ein Service-Administrator kann in dem Konto die folgenden Aufgaben ausführen:

  • Dienstverbindungen erstellen

  • Netzwerkrichtlinien verwenden

  • Benutzer verwalten: Erstellen und Löschen von Benutzern, Zuweisung von Rollen an Benutzer und Widerrufen von Rollen für Benutzer

  • Kataloge erstellen und diese erstellten Kataloge verwalten.

Wenn ein Service-Administrator einen Katalog erstellt, erhält er automatisch auch die Rolle des Katalog-Administrators für diesen Katalog. Der Service-Administrator kann mit einem Katalog, für den er die Berechtigungen eines Katalog-Administrators besitzt, Folgendes tun:

  • Einem anderen Benutzer mit der Rolle des Katalog-Administrators Zugriff auf den Katalog gewähren. So können beide Benutzer auf den Katalog zugreifen.

  • Seine eigenen Berechtigungen für den Katalog widerrufen und damit den Zugriff auf den Katalog verlieren. Bevor er jedoch seine Berechtigungen als Katalog-Administrator widerruft, muss er zunächst einem anderen Benutzer Katalog-Administratorrechte für diesen Katalog gewähren.

Unzulässige Berechtigungen

Ein Benutzer mit Service-Administratorrechten kann die folgenden Aufgaben in dem Konto nicht ausführen:

  • Auf einen Katalog zugreifen oder einen Katalog verwalten, den er nicht erstellt hat.

  • Für einen Katalog, den der Service-Administrator nicht erstellt hat, die Berechtigung zum Katalog-Administrator gewähren.

Rolle des Katalog-Administrators

Die Rolle des Katalog-Administrators ermöglicht es einem Benutzer, einen Katalog in seinem Konto zu verwalten. Die Rolle des Katalog-Administrators muss für jeden einzelnen Katalog vergeben werden.

Zulässige Berechtigungen

Die Rolle des Katalog-Administrators gibt einem Benutzer die Berechtigung, wie folgt auf einen Katalog zuzugreifen und ihn zu verwalten:

  • Auf den Katalog zugreifen

  • Namespaces im Katalog erstellen

  • Eine Katalogrolle im Katalog erstellen und Berechtigungen für sie erteilen.

  • Einer Prinzipalrolle eine Katalogrolle zuweisen, die dem Dienstprinzipal die Berechtigungen verleiht, die der Katalogrolle gewährt werden.

Unzulässige Berechtigungen

Ein Benutzer, der nur über die Berechtigungen eines Katalog-Administrators verfügt, kann die folgenden Aufgaben in seinem Konto nicht ausführen:

  • Eine Dienstverbindung erstellen

  • Auf Kataloge zugreifen oder diese verwalten, für die er nicht die Rolle des Katalog-Administrators erhalten hat

  • Einen Katalog erstellen oder entfernen

  • Netzwerkrichtlinien verwenden

  • Benutzer verwalten

RBAC-Modell

Das folgende Diagramm veranschaulicht das von Open Catalog verwendete RBAC-Modell. Für jeden Katalog weist der Katalog-Administrator von Open Catalog den Katalogrollen Zugriffsrechte zu und gewährt dann den Dienstprinzipalen Zugriff auf Ressourcen, indem er die Katalogrollen den Prinzipalrollen zuordnet. Open Catalog unterstützt eine Viele-zu-eins-Beziehung zwischen Dienstprinzipalen und Prinzipalrollen.

Diagramm, das das RBAC-Modell für Open Catalog zeigt.

Sie können Zugriffssteuerungsrechte auch auf Tabellen- oder Namespace-Ebene gewähren. Das folgende Diagramm zeigt zum Beispiel die Erteilung von Berechtigungen für einen Namespace und eine Tabelle im Katalog.

Diagramm, das das RBAC-Modell für Open Catalog auf Tabellen- und Namespace-Ebene zeigt.

Zugriffssteuerungsrechte

Dieser Abschnitt beschreibt die Berechtigungen, die im Modell der Open Catalog-Zugriffssteuerung verfügbar sind. Katalogrollen erhalten Berechtigungen, Prinzipalrollen werden Katalogrollen zugewiesen, und Prinzipalrollen werden Dienstprinzipalen zugewiesen, um die Operationen festzulegen, die Dienstprinzipale mit Objekten in Open Catalog durchführen können.

Um alle Berechtigungen (Löschen, Auflisten, Lesen, Schreiben usw.) für ein Objekt zu gewähren, können Sie die Option Volle Berechtigung verwenden.

Katalogberechtigungen

Berechtigung

Beschreibung

CATALOG_MANAGE_CONTENT

Ermöglicht die vollständige Verwaltung der Kataloginhalte. Diese Berechtigung umfasst die folgenden Berechtigungen:

  • CATALOG_MANAGE_METADATA
  • TABLE_FULL_METADATA
  • NAMESPACE_FULL_METADATA
  • VIEW_FULL_METADATA
  • TABLE_WRITE_DATA
  • TABLE_READ_DATA
  • CATALOG_READ_PROPERTIES
  • CATALOG_WRITE_PROPERTIES

CATALOG_MANAGE_METADATA

Ermöglicht die vollständige Verwaltung von Katalog, Katalogrollen, Namespaces und Tabellen.

CATALOG_READ_PROPERTIES

Ermöglicht das Auflisten von Katalogen und das Lesen der des Katalogeigenschaften.

CATALOG_WRITE_PROPERTIES

Ermöglicht die Konfiguration von Katalogeigenschaften.

NAMESPACE_CREATE

Ermöglicht das Erstellen eines Namespace in einem Katalog.

NAMESPACE_DROP

Ermöglicht das Löschen des Namespace aus dem Katalog.

NAMESPACE_FULL_METADATA

Erteilt alle Berechtigungen für den Namespace.

NAMESPACE_LIST

Ermöglicht das Auflisten aller Objekte im Namespace, einschließlich verschachtelter Namespaces und Tabellen.

NAMESPACE_READ_PROPERTIES

Ermöglicht das Lesen aller Eigenschaften des Namespace.

NAMESPACE_WRITE_PROPERTIES

Ermöglicht die Konfiguration der Eigenschaften des Namespace.

TABLE_CREATE

Ermöglicht die Registrierung einer Tabelle im Katalog.

TABLE_DROP

Ermöglicht das Löschen einer Tabelle aus dem Katalog.

TABLE_FULL_METADATA

Gewährt alle Berechtigungen für die Tabelle, außer TABLE_READ_DATA und TABLE_WRITE_DATA, die einzeln gewährt werden müssen.

TABLE_LIST

Ermöglicht das Auflisten aller Tabellen im Katalog.

TABLE_READ_DATA

Ermöglicht das Lesen von Daten aus der Tabelle durch den Empfang von kurzlebigen Anmeldeinformationen für den Nur-Lese-Speicher des Katalogs.

TABLE_READ_PROPERTIES

Ermöglicht das Lesen der Eigenschaften der Tabelle.

TABLE_WRITE_DATA

Ermöglicht das Schreiben von Daten in die Tabelle durch den Empfang von kurzlebigen Anmeldeinformationen für den Lese-und-Schreiben-Speicher des Katalogs.

TABLE_WRITE_PROPERTIES

Ermöglicht die Konfiguration von Eigenschaften für die Tabelle.

VIEW_CREATE

Ermöglicht die Registrierung einer Ansicht im Katalog.

VIEW_DROP

Ermöglicht das Löschen einer Ansicht aus dem Katalog.

VIEW_FULL_METADATA

Gewährt alle Berechtigungen für die Ansicht.

VIEW_LIST

Ermöglicht die Auflistung aller Ansichten im Katalog.

VIEW_READ_PROPERTIES

Ermöglicht das Lesen aller Eigenschaften der Ansicht.

Namespace-Berechtigungen

Berechtigung

Beschreibung

CATALOG_MANAGE_CONTENT

Ermöglicht das vollständige Verwalten des Inhalts für den Namespace, alle darunter gruppierten Tabellen und alle unter dem Namespace verschachtelten Namespaces und Tabellen, falls zutreffend. Die Berechtigung wird nicht für den gesamten Katalog gewährt. Diese Berechtigung umfasst die folgenden Berechtigungen:

  • CATALOG_MANAGE_METADATA
  • TABLE_FULL_METADATA
  • NAMESPACE_FULL_METADATA
  • VIEW_FULL_METADATA
  • TABLE_WRITE_DATA
  • TABLE_READ_DATA
  • CATALOG_READ_PROPERTIES
  • CATALOG_WRITE_PROPERTIES

CATALOG_MANAGE_METADATA

Ermöglicht die vollständige Verwaltung des Namespace, der Katalogrollen und aller darunter gruppierten Tabellen sowie aller darunter verschachtelten untergeordneten Namespaces oder Tabellen.

NAMESPACE_CREATE

Ermöglicht die Erstellung eines untergeordneten Namespace des Namespace.

NAMESPACE_DROP

Ermöglicht das Löschen des Namespace aus dem Katalog.

NAMESPACE_FULL_METADATA

Gewährt alle Berechtigungen für den Namespace.

NAMESPACE_LIST

Ermöglicht das Auflisten aller Objekte im Namespace, einschließlich verschachtelter Namespaces und Tabellen.

NAMESPACE_READ_PROPERTIES

Ermöglicht das Lesen aller Eigenschaften des Namespace.

NAMESPACE_WRITE_PROPERTIES

Ermöglicht die Konfiguration der Eigenschaften des Namespace.

TABLE_CREATE

Ermöglicht die Registrierung einer Tabelle mit dem Namespace.

TABLE_DROP

Ermöglicht das Löschen einer Tabelle aus dem Namespace.

TABLE_FULL_METADATA

Gewährt alle Berechtigungen für Tabellen, die im Namespace gruppiert sind, mit Ausnahme von TABLE_READ_DATA und TABLE_WRITE_DATA, die einzeln gewährt werden müssen.

TABLE_LIST

Ermöglicht die Auflistung aller Tabellen im Namespace.

TABLE_READ_DATA

Ermöglicht das Lesen von Daten aus einer beliebigen Tabelle, die unter dem Namespace gruppiert ist, indem kurzlebige Anmeldeinformationen für den Nur-Lese-Speicher des Katalogs empfangen werden.

TABLE_READ_PROPERTIES

Ermöglicht das Lesen von Eigenschaften einer beliebigen Tabelle, die unter dem Namespace gruppiert ist.

TABLE_WRITE_DATA

Ermöglicht das Schreiben von Daten in eine beliebige Tabelle, die im Namespace gruppiert ist, indem kurzlebige Anmeldeinformationen für den Lese-und-Schreiben-Speicher des Katalogs empfangen werden.

TABLE_WRITE_PROPERTIES

Ermöglicht die Konfiguration von Eigenschaften für jede unter dem Namespace gruppierte Tabelle.

VIEW_CREATE

Ermöglicht die Registrierung einer Ansicht mit dem Namespace.

VIEW_DROP

Ermöglicht das Löschen einer Ansicht aus dem Namespace.

VIEW_FULL_METADATA

Gewährt alle Berechtigungen für alle Ansichten im Namespace.

VIEW_LIST

Ermöglicht die Auflistung aller Ansichten im Namespace.

VIEW_READ_PROPERTIES

Ermöglicht das Lesen aller Eigenschaften der Ansicht für alle Ansichten im Namespace.

VIEW_WRITE_PROPERTIES

Ermöglicht die Konfiguration der Eigenschaften von Ansichten für jede Ansicht im Namespace.

Berechtigungen von Tabellen

Berechtigung

Beschreibung

TABLE_DROP

Ermöglicht das Löschen der Tabelle aus dem Katalog.

TABLE_FULL_METADATA

Gewährt alle Berechtigungen für die Tabelle, außer TABLE_READ_DATA und TABLE_WRITE_DATA, die einzeln gewährt werden müssen.

TABLE_LIST

Ermöglicht das Auflisten aller Tabellen im Katalog.

TABLE_READ_DATA

Ermöglicht das Lesen von Daten aus der Tabelle durch den Empfang von kurzlebigen Anmeldeinformationen für den Nur-Lese-Speicher des Katalogs.

TABLE_READ_PROPERTIES

Ermöglicht das Lesen der Eigenschaften der Tabelle.

TABLE_WRITE_DATA

Ermöglicht das Schreiben von Daten in die Tabelle durch den Empfang von kurzlebigen Anmeldeinformationen für den Lese-und-Schreiben-Speicher des Katalogs.

TABLE_WRITE_PROPERTIES

Ermöglicht die Konfiguration von Eigenschaften für die Tabelle.

VIEW_READ_PROPERTIES

Ermöglicht das Lesen aller Eigenschaften der Ansicht.

Berechtigungen von Ansichten

Berechtigung

Beschreibung

VIEW_CREATE

Ermöglicht die Registrierung einer Ansicht im Katalog.

VIEW_DROP

Ermöglicht das Löschen einer Ansicht aus dem Katalog.

VIEW_LIST

Ermöglicht die Auflistung aller Ansichten im Katalog.

VIEW_READ_PROPERTIES

Ermöglicht das Lesen aller Eigenschaften der Ansicht.

VIEW_WRITE_PROPERTIES

Ermöglicht die Konfiguration der Eigenschaften der Ansicht.

VIEW_FULL_METADATA

Gewährt alle Berechtigungen für die Ansicht.

RBAC-Beispiel

Das folgende Diagramm zeigt, wie RBAC in Open Catalog auf Katalogebene funktioniert und die folgenden Benutzer einschließt:

  • Alice: Eine Service-Administratorin, die sich für Open Catalog anmeldet. Alice kann Dienstprinzipale erstellen. Sie kann auch Kataloge und Namespaces erstellen und die Zugriffssteuerung für Open Catalog-Ressourcen konfigurieren.

    Hinweis

    Der Dienstprinzipal für Alice wird in der Weboberfläche von Open Catalog nicht angezeigt.

  • Bob: Ein Data Engineer, der Verbindungen mit Snowpipe Streaming (in Snowflake) und Apache Spark™ zur Interaktion mit Open Catalog nutzt.

    • Alice hat einen Dienstprinzipal für Bob erstellt. Ihm wurde die Prinzipalrolle Data_engineer zugewiesen, der wiederum die folgenden Katalogrollen zugewiesen wurden: Katalog-Mitarbeiter und Datenadministrator (für die beiden Zonenkataloge Silber und Gold im folgenden Diagramm).

    • Die Rolle Katalog-Mitarbeiter erteilt die Berechtigung, Namespaces und Tabellen im Bronze-Zonenkatalog zu erstellen.

    • Die Rollen des Datenadministrators gewähren volle administrative Rechte für den Silber- und den Gold-Zonenkatalog.

  • Mark: Ein Datenwissenschaftler, der Snowflake AI-Services verwendet, um mit Open Catalog zu interagieren.

    • Alice hat einen Dienstprinzipal für Mark erstellt. Ihm wurde die Prinzipalrolle Data_scientist zugewiesen, der wiederum die Katalogrolle Katalog-Leser zugewiesen wurde.

    • Die Rolle Katalog-Leser gewährt einen Nur-Lese-Zugriff auf einen Katalog namens Gold-Zonen-Katalog.

Diagramm, das ein Beispiel dafür zeigt, wie RBAC in Open Catalog funktioniert.