Grundlegendes zur externen Tokenisierung

Unter diesem Thema erhalten Sie einen allgemeinen Überblick über das Feature zur externen Tokenisierung.

Beachten Sie, dass eine Maskierungsrichtlinie für externe Tokenisierung einem Tag zugewiesen werden kann, um eine Tag-basierte externe Tokenisierung zu ermöglichen. Weitere Informationen zur Zuweisung einer Maskierungsrichtlinie zu einem Tag finden Sie unter Tag-basierte Maskierungsrichtlinien.

Wichtig

Für die externe Tokenisierung sind Schreiben von externen Funktionen erforderlich, die in der Snowflake Standard Edition enthalten sind, und Sie können externe Funktionen mit einem Tokenisierungsanbieter verwenden.

Wenn Sie jedoch Ihren Tokenisierungsanbieter in die externe Tokenisierung von Snowflake integrieren möchten, müssen Sie ein Upgrade auf Enterprise Edition oder höher durchführen.

Wenden Sie sich für ein Upgrade direkt an den Snowflake-Support.

Was ist die externe Tokenisierung?

Die externe Tokenisierung ermöglicht Konten, Daten vor dem Laden in Snowflake zu tokenisieren und zur Laufzeit der Abfrage zu detokenisieren. Bei der Tokenisierung werden vertrauliche Daten entfernt, indem sie durch ein nicht entschlüsselbares Token ersetzt werden. Bei der externen Tokenisierung werden Maskierungsrichtlinien mit externen Funktionen verwendet.

In Snowflake sind Maskierungsrichtlinien Objekte auf Schemaebene. Dies bedeutet, dass in Snowflake eine Datenbank und ein Schema vorhanden sein müssen, bevor eine Maskierungsrichtlinie auf eine Spalte angewendet werden kann. Derzeit unterstützt Snowflake die Verwendung der dynamischen Datenmaskierung auf Tabellen und Ansichten.

Zur Laufzeit der Abfrage wird die Maskierungsrichtlinie überall dort auf die Spalte angewendet, wo diese angezeigt wird. Abhängig von den Bedingungen der Maskierungsrichtlinie, dem SQL-Ausführungskontext und der Rollenhierarchie wird denjenigen, die die Snowflake-Abfrage ausführen, der Klartextwert, einen teilweise maskierter Wert oder ein vollständig maskierter Wert angezeigt.

Weitere Informationen zur Funktionsweise von Maskierungsrichtlinien, einschließlich Laufzeitverhalten von Abfragen, Erstellen einer Richtlinie, Verwendung mit Tabellen und Ansichten sowie Verwaltungskonzepte unter Verwendung von Maskierungsrichtlinien, finden Sie unter Grundlegendes zur Sicherheit auf Spaltenebene.

Weitere Informationen zu den Auswirkungen von SQL-Ausführungskontext und Rollenhierarchie finden Sie unter Erweiterte Sicherheit auf Spaltenebene.

Durch das Tokenisieren von Daten vor dem Laden in Snowflake wird sichergestellt, dass vertrauliche Daten niemals unnötig offengelegt werden. Durch die Verwendung von Maskierungsrichtlinien mit externen Funktionen wird sichergestellt, dass zur Laufzeit der Abfrage nur den entsprechenden Zielgruppen detokenisierte Daten angezeigt werden.

Vorteile der externen Tokenisierung

Im Folgenden sind einige der wichtigsten Vorteile der externen Tokenisierung zusammengefasst.

Tokenisierte Daten vorladen:

Bei Verwendung eines Tokenisierungsanbieters werden tokenisierte Daten in Snowflake vorgeladen. Selbst ohne Anwendung einer Maskierungsrichtlinie auf eine Spalte in einer Tabelle oder Ansicht wird Benutzern daher nie der tatsächliche Datenwert angezeigt. Dies bietet eine verbesserte Datensicherheit für die vertraulichsten Daten in Ihrem Unternehmen.

Benutzerfreundlichkeit:

Sie können eine Richtlinie einmal schreiben und sie dann auf Tausende von Spalten in Datenbanken und Schemas anwenden.

Datenadministration und SoD:

Die Entscheidung, welche Spalten geschützt werden sollen, wird nicht vom Objektbesitzer sondern vom Sicherheits- oder Datenschutzbeauftragten getroffen. Maskierungsrichtlinien sind einfach zu verwalten und unterstützen zentralisierte und dezentralisierte Administrationsmodelle.

Datenautorisierung und Data Governance:

Kontextueller Datenzugriff nach Rollen- oder kundenspezifischen Berechtigungen.

Unterstützt die von Sicherheits- oder Datenschutzbeauftragten implementierte Data Governance und kann berechtigten Benutzern mit der Rolle ACCOUNTADMIN oder SECURITYADMIN das unnötige Anzeigen von Daten untersagen.

Änderungsmanagement:

Einfache Änderung des Inhalts der Maskierungsrichtlinie, ohne die Maskierungsrichtlinie erneut auf Tausende von Spalten anwenden zu müssen.

Ein Vergleich der Vorteile zwischen dynamischer Datenmaskierung und externer Tokenisierung finden Sie unter Vorteile der Sicherheit auf Spaltenebene.

Einschränkungen für die externe Tokenisierung

Eine Übersicht zu den Einschränkungen finden Sie unter Einschränkungen für die Sicherheit auf Spaltenebene.

Hinweise zur externen Tokenisierung

Weitere Hinweise zur externen Tokenisierung finden Sie unter Hinweise zur Sicherheit auf Spaltenebene.

Berechtigungen und Abhängigkeiten der externen Tokenisierung

In der folgenden Tabelle sind die Berechtigungen für Maskierungsrichtlinien für die externe Tokenisierung zusammengefasst.

Berechtigung

Verwendung

CREATE

Ermöglicht das Erstellen einer neuen Maskierungsrichtlinie in einem Schema.

APPLY

Ermöglicht das Ausführen der Aktivierungs-/Deaktivierungsoperation für eine Maskierungsrichtlinie auf einer Spalte.

Beachten Sie, dass durch Erteilen der globalen Berechtigung APPLY MASKING POLICY (d. h. APPLY MASKING POLICY On ACCOUNT) das Ausführen der DESCRIBE-Operation auf Tabellen und Ansichten ermöglicht wird.

Beispiele für die Syntax finden Sie unter Berechtigungen für Maskierungsrichtlinien.

OWNERSHIP

Gewährt volle Kontrolle über die Maskierungsrichtlinie. Erforderlich, um die meisten Eigenschaften einer Maskierungsrichtlinie zu ändern. Diese Berechtigung kann für ein bestimmtes Objekt immer nur einer Rolle erteilt sein.

Bemerkung

Für das Ausführen von Operationen auf einer Maskierungsrichtlinie ist auch die USAGE-Berechtigung für die übergeordnete Datenbank und das übergeordnete Schema erforderlich.

Da Maskierungsrichtlinien für die externe Tokenisierung eine externe Funktion erfordern, die von einer API-Integration abhängt, werden in der folgenden Tabelle die Berechtigungen zusammengefasst, die die kundenspezifische Rolle (z. B. MASKING_ADMIN) für Snowflake-Objekte haben muss. Beachten Sie, dass diese Berechtigungen nur für die kundenspezifische Rolle gelten und nicht für die Rolle des Benutzers erforderlich sind, der die Spalte mit einer Maskierungsrichtlinie abfragt.

Kundenspezifische Rolle

Berechtigung

Objekt

Eigentümer der Richtlinie für die externe Tokenisierung

USAGE

Externe Funktion

Der Eigentümer der externe Funktion (d. h. die Rolle mit der Berechtigung OWNERSHIP für die externe Funktion)

USAGE

Alle API-Integrationsobjekte, auf die von der externen Funktion verwiesen wird.

DDL für die externe Tokenisierung

Snowflake bietet die folgenden Befehle zum Verwalten von Richtlinien für die externe Tokenisierung.

Überwachen der externen Tokenisierung

Snowflake bietet zwei Account Usage-Ansichten, um Informationen zu Maskierungsrichtlinien zu erhalten:

  • Die Ansicht MASKING POLICIES zeigt eine Liste aller Maskierungsrichtlinien in Ihrem Snowflake-Konto.

  • Die Ansicht POLICY_REFERENCES zeigt eine Liste aller Objekte, in denen eine Maskierungsrichtlinie festgelegt ist.

Die Information Schema-Tabellenfunktion POLICY_REFERENCES kann für Folgendes verwendet werden:

  • Rückgabe einer Liste aller Objekte (d. h. Tabellen, Ansichten), bei denen für eine Spalte die angegebene Maskierungsrichtlinie festgelegt wurde.

  • Rückgabe einer Liste von Richtlinienzuordnungen, die den angegebenen Objektnamen und Objekttyp aufweisen.

Snowflake zeichnet die ursprüngliche Abfrage des Benutzers auf der Seite Verlauf (auf der Weboberfläche) auf. Die Abfrage befindet sich in der Spalte SQL Text.

Die Namen der Maskierungsrichtlinien, die in einer bestimmten Abfrage verwendet wurden, finden Sie im Query Profile.

Der Abfrageverlauf ist nur für die Account Usage-Ansicht QUERY_HISTORY spezifisch. In dieser Ansicht enthält die Spalte Query Text den Text der SQL-Anweisung. Namen von Maskierungsrichtlinien sind in der QUERY_HISTORY-Ansicht nicht enthalten.

Problembehandlung bei der externen Tokenisierung

Zur Behebung von Problemen mit Maskierungsrichtlinien können Fehlermeldungen verwendet werden.

Fehlermeldungen

In der folgenden Tabelle sind Fehlermeldungen beschrieben, die Snowflake bei Verwendung von Maskierungsrichtlinien zurückgeben kann.

Verhalten

Fehlermeldung

Problembehandlung

Maskierungsrichtlinie kann nicht auf ein Snowflake-Feature angewendet werden.

Unsupported feature CREATE ON MASKING POLICY COLUMN.

Maskierungsrichtlinien können derzeit nicht auf dieses Feature angewendet werden.

Eine aktive Rolle kann keine Maskierungsrichtlinie erstellen oder ersetzen.

SQL access control error: Insufficient privileges to operate on account <Kontoname>

Erteilen Sie der angegebenen Rolle mit grant create masking policy on account to role <role_name>; . die Berechtigung CREATE MASKING POLICY. Überprüfen Sie mit show grants to role <role_name>, ob die Rolle über die Berechtigung verfügt, und wiederholen Sie die Maskierungsanweisung CREATE OR REPLACE erneut.

Eine bestimmte Rolle kann einer Tabelle keine Maskierungsrichtlinie hinzufügen.

SQL compilation error: Database <Datenbankname> does not exist or not authorized.

Erteilen Sie der Rolle mit grant apply masking policy on account to role <role_name>; die Berechtigung APPLY MASKING POLICY.

Eine bestimmte Rolle, die kein Eigentümer einer Maskierungsrichtlinie für eine Tabelle ist, versucht, eine Maskierungsrichtlinie auf eine Tabelle anzuwenden, die sie verwenden darf.

SQL compilation error: Masking policy <Name_der_Richtlinie> does not exist or not authorized.

Erteilen Sie der angegebene Rollen die Nutzungsberechtigung für die Maskierungsrichtlinie mit grant apply on masking policy <policy_name> to role <role_name>;

Eine Richtlinie kann nicht mit drop masking policy <policy_name>; gelöscht oder entfernt werden.

SQL compilation error: Policy <Name_der_Richtlinie> cannot be dropped/replaced as it is associated with one or more entities.

Verwenden Sie zuerst eine ALTER TABLE … MODIFY COLUMN- oder ALTER VIEW … MODIFY COLUMN-Anweisung, um die Richtlinie mit UNSET zu deaktivieren, und wiederholen Sie dann die DROP-Anweisung.

Das Wiederherstellen einer gelöschten Tabelle führt zu einem Maskierungsrichtlinienfehler.

SQL execution error: Column <Spaltenname> already attached to a masking policy that does not exist. Please contact the policy administrator.

Deaktivieren Sie die aktuell angehängte Maskierungsrichtlinie mit einer ALTER TABLE/VIEW MODIFY COLUMN-Anweisung, und wenden Sie die Maskierungsrichtlinie dann erneut mit einer CREATE OR REPLACE-Anweisung auf die Spalte an.

Eine Maskierungsrichtlinie kann nicht auf eine bestimmte Spalte angewendet werden, die Maskierungsrichtlinie kann jedoch auf eine andere Spalte angewendet werden.

Specified column already attached to another masking policy. A column cannot be attached to multiple masking policies. Please drop the current association in order to attach a new masking policy.

Entscheiden Sie, welche Maskierungsrichtlinie für die Spalte gelten soll, aktualisieren Sie diese, und versuchen Sie es erneut.

Das Aktualisieren einer Richtlinie mit einer ALTER-Anweisung schlägt fehl.

SQL compilation error: Masking policy <Name_der_Richtlinie> does not exist or not authorized.

Überprüfen Sie, ob der Richtlinienname im ALTER-Befehl mit einer vorhandenen Richtlinie übereinstimmt, indem Sie show masking policies; ausführen.

Die Rolle, die Eigentümer der geklonten Tabelle ist, kann eine Maskierungsrichtlinie nicht deaktivieren.

SQL access control error: Insufficient privileges to operate on ALTER TABLE UNSET MASKING POLICY ‚<Richtlinienname>‘

Erteilen Sie der Rolle, die Eigentümer der geklonten Tabelle ist, mit grant apply on masking policy <policy_name> to role <role_name>; die APPLY-Berechtigung. . Stellen Sie sicher, dass die Rolle, die Eigentümer der geklonten Tabelle ist, die Berechtigung zur Verwendung von show grants to role <role_name>; besitzt, und versuchen Sie die ALTER-Anweisung erneut.

Das Aktualisieren einer Richtlinie mit IF EXISTS gibt zwar ein erfolgreiches Ergebnis zurück, die Richtlinie wird jedoch nicht aktualisiert.

Es wurde keine Fehlermeldung zurückgegeben. Snowflake gibt die Meldung aus, dass die Anweisung erfolgreich ausgeführt wurde.

Entfernen Sie IF EXISTS aus der ALTER-Anweisung, und versuchen Sie es erneut.

Beim Erstellen oder Ersetzen einer Maskierungsrichtlinie durch CASE stimmen die Datentypen nicht überein (z. B. (VAL Zeichenfolge) -> gibt Nummer zurück).

SQL compilation error: Masking policy function argument and return type mismatch.

Aktualisieren Sie die Maskierungsrichtlinie, indem Sie CASE mit übereinstimmenden Datentypen und mithilfe einer CREATE OR REPLACE-Anweisung oder einer ALTER MASKING POLICY-Anweisung verwenden.

Anwenden eine Maskierungsrichtlinie auf eine virtuelle Spalte.

SQL compilation error: Masking policy cannot be attached to a VIRTUAL_COLUMN column.

Wenden Sie die Maskierungsrichtlinie auf die Spalten in der Quelltabelle an.

Anwenden einer Maskierungsrichtlinie auf eine materialisierte Ansicht.

SQL compilation error: syntax error line <Zahl> at position <Zahl> unexpected ‚modify‘. . SQL compilation error: error line <Zahl> at position <Zahl> invalid identifier ‚<Zeichen>‘ . SQL execution error: One or more materialized views exist on the table. number of mvs=<Zahl>, table name=<Tabellenname>.

Wenden Sie die Maskierungsrichtlinie auf die Spalten in der Quelltabelle an. Weitere Informationen dazu finden Sie unter Einschränkungen.

Anwenden einer Maskierungsrichtlinie auf eine Tabellenspalte, mit der eine materialisierte Ansicht erstellt wird.

SQL compilation error: Masking policy cannot be attached to a MATERIALIZED_VIEW column.

Löschen Sie die materialisierte Ansicht, um die Maskierungsrichtlinie auf die Tabellenspalte anzuwenden.

Einfügen einer maskierten Spalte beim Erstellen einer materialisierten Ansicht.

Unsupported feature ‚CREATEONMASKINGPOLICYCOLUMN‘.

Erstellen Sie die materialisierte Ansicht ohne Einbeziehung der maskierten Spalten oder legen Sie keine Maskierungsrichtlinien auf der Basistabelle oder den Ansichten fest, erstellen Sie die materialisierte Ansicht, und wenden Sie dann die Maskierungsrichtlinien auf die Spalten der materialisierten Ansicht an.

Es ist nicht möglich, eine Maskierungsrichtlinie mit einer benutzerdefinierten Funktion (UDF) im Maskierungsrichtlinientext zu erstellen.

SQL access control error: Insufficient privileges to operate on function ‚<UDF-Name>‘

Überprüfen Sie, ob die Rolle, die die Maskierungsrichtlinie erstellt, die Berechtigung USAGE für die UDF hat.

Nächste Themen: