Grundlegendes zur externen Tokenisierung

Dieses Thema bietet einen allgemeinen Überblick über die Funktion zur externen Tokenisierung.

Wichtig

Für die externe Tokenisierung sind Externe Funktionen erforderlich, die in der Snowflake Standard Edition enthalten sind, und Sie können externe Funktionen mit einem Tokenisierungsanbieter (d. h. Protegrity) verwenden.

Wenn Sie jedoch Ihren Tokenisierungsanbieter in Snowflake Externe Tokenisierung 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.

Derzeit unterstützt Snowflake die Verwendung von Protegrity zur Verwaltung der Tokenisierung vertraulicher Daten in allen Datenspeichern (z. B. Tabellen, Datenbanken, Data Warehouses) in Ihrem Unternehmen. Wenn Snowflake die externe Funktion in der Maskierungsrichtlinie aufruft, wird das Protegrity Data Security Gateway (DSG) über die REST-API aufgerufen.

Da eine externe Funktion in Snowflake nicht ausgeführt wird, muss ein Amazon-API-Gateway in Ihrer Umgebung aktiviert und eine REST-API-Integration zwischen Snowflake und dem Server erstellt werden, der diese Daten tokenisiert. Wenn die Abfrage zur Laufzeit eine oder mehrere Spalten aufruft, auf denen eine Maskierungsrichtlinie mit einer externen Funktion angewendet wird, detokenisiert Protegrity die Spaltendaten, die an Snowflake zurückgesendet werden sollen. Die Maskierungsrichtlinie stellt sicher, dass die detokenisierten Daten nur Benutzern angezeigt werden, die Mitglieder der angegebenen Rollen sind.

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 benutzerdefinierten 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.

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

APPLY

Aktiviert das Anwenden von Operationen zum Festlegen/Aufheben der Maskierungsrichtlinie.

OWNERSHIP

Überträgt die Eigentümerschaft an einer Maskierungsrichtlinie, wodurch die vollständige Kontrolle über die Maskierungsrichtlinie gewährt wird. Erforderlich, um die meisten Eigenschaften einer Maskierungsrichtlinie zu ändern.

Bemerkung

Das Durchführen von Operationen auf einer Maskierungsrichtlinie erfordert auch die USAGE-Berechtigung für die übergeordnete Datenbank und das übergeordnete Schema.

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 benutzerdefinierte Rolle (z. B. MASKING_ADMIN) für Snowflake-Objekte haben muss. Beachten Sie, dass diese Berechtigungen nur für die benutzerdefinierte Rolle gelten und nicht für die Rolle des Benutzers erforderlich sind, der die Spalte mit einer Maskierungsrichtlinie abfragt.

Benutzerdefinierte 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.

Überwachung der externen Tokenisierung

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.

Derzeit ist der Abfrageverlauf 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

Eine Maskierungsrichtlinie kann nicht auf eine Snowflake-Funktion angewendet werden.

FAILURE: Unsupported feature CREATE ON MASKING POLICY COLUMN.

Maskierungsrichtlinien können derzeit nicht auf diese Funktion angewendet werden.

Eine aktive Rolle kann keine Maskierungsrichtlinie erstellen oder ersetzen.

FAILURE: 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.

FAILURE: 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.

FAILURE: 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 sysadmin;

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

FAILURE: 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/VIEW MODIFY COLUMN-Anweisung, um zuerst die Richtlinie mit UNSET zu deaktivieren, und wiederholen Sie dann die DROP-Anweisung.

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

FAILURE: SQL execution error: Column <Spaltenname> already attached to a masking policy that does not exist. Wenden Sie sich an den Richtlinienadministrator.

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.

FAILURE: 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.

FAILURE: 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 den Befehl zum Anzeigen der Maskierungsrichtlinie ausführen.

Die Eigentümerrolle einer geklonten Tabellen kann eine Maskierungsrichtlinie nicht deaktivieren.

FAILURE: SQL access control error: Insufficient privileges to operate on ALTER TABLE UNSET MASKING POLICY ‚{1}‘

Erteilen Sie der Tabellenklonerrolle mit grant apply on masking policy ssn_mask to role <role_name>; . die Berechtigung APPLY. Prüfen Sie mit show grants to role table_cloner_role;, ob die Tabellenklonerrolle die Berechtigung hat, und wiederholen Sie die ALTER-Anweisung.

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 string) -> gibt Nummer zurück).

FAILURE: 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.

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

Wenden Sie die Maskierungsrichtlinie auf die Spalte(n) in der Quelltabelle an.

Anwenden einer Maskierungsrichtlinie auf eine materialisierte Ansicht.

FAILURE: SQL compilation error: syntax error line <Zahl> at position <Zahl> unexpected ‚modify‘. . FAILURE: SQL compilation error: error line <Zahl> at position <Zahl> invalid identifier ‚<Zeichen>‘

Wenden Sie die Maskierungsrichtlinie auf die Spalte(n) in der Quelltabelle an.

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

FAILURE: 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.

Nächste Themen: