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. |
Katalog-Leser |
Eine Rolle, der nur Leseberechtigung für Tabellen im Katalog gewährt wurde. |
Katalog-Mitarbeiter |
Eine Rolle, die Lese- und Schreibzugriffsrechte auf alle Tabellen hat, die zum Katalog gehören. |
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.
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.
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 |
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 |
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.