Verwenden der externen Tokenisierung

Unter diesem Thema wird eine Anleitung zum Konfigurieren und Verwenden der externen Tokenisierung in Snowflake bereitgestellt.

Snowflake unterstützt externe Tokenisierung auf AWS und Azure.

Wichtig

External tokenization requires Externe Funktionen, which are included in the Snowflake Standard Edition, and you can use external functions with a tokenization provider.

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.

External Tokenization on AWS

Snowflake supports two partner integrations to use External Tokenization on AWS:

Protegrity

To configure and use External Tokenization with Protegrity, register for the Protegrity + Snowflake Trial Experience. After registration, follow all instructions on the Protegrity website.

Baffle

To configure and use External Tokenization with Baffle, complete the steps in the Baffle documentation.

Externe Tokenisierung auf Azure

Snowflake supports External Tokenization on Azure using a partner integration with Baffle or a custom integration.

Baffle

To use the Baffle integration, follow the instructions in the Baffle guide.

Custom integration

Use the representative procedure listed below to configure a custom External Tokenization integration on Azure.

Schritt 1: Externe Funktionen auf Azure erstellen

Für externe Funktionen muss Ihre Azure-Umgebung so konfiguriert sein, dass sie mit Snowflake kommunizieren kann.

Konfigurieren Sie Ihre Azure-Umgebung und externe Funktionen unter Snowflake mithilfe der folgenden Schritte.

Bemerkung

Informieren Sie sich in der Dokumentation Ihres Tokenisierungsanbieters, um sicherzustellen, dass alle zusätzlichen und notwendigen Schritte abgeschlossen sind, insbesondere bei der Konfiguration des API Management-Dienstes.

Schritt 2: Benutzerdefinierter Rolle Maskierungsrichtlinienberechtigungen erteilen

Ein Sicherheits- oder Datenschutzbeauftragter sollte als Administrator der Maskierungsrichtlinie (d. h. benutzerdefinierte Rolle: MASKING_ADMIN) fungieren und über Berechtigungen zum Definieren, Verwalten und Anwenden von Maskierungsrichtlinien auf Spalten verfügen.

Snowflake stellt die folgenden Berechtigungen zur Verfügung, die einem Sicherheits- oder Datenschutzbeauftragten erteilt werden können, um Maskierungsrichtlinien für Sicherheit auf Spaltenebene zu verwalten:

Berechtigung

Beschreibung

CREATE MASKING POLICY

Diese Berechtigung auf Schemaebene steuert, wer Maskierungsrichtlinien erstellen kann.

APPLY MASKING POLICY

Diese Berechtigung auf Kontoebene steuert, wer Maskierungsrichtlinien für Spalten festlegen/aufheben kann. Sie wird standardmäßig der Rolle ACCOUNTADMIN erteilt. . Diese Berechtigung ermöglicht nur das Anwenden einer Maskierungsrichtlinie auf eine Spalte und bietet keine der zusätzlichen Tabellenberechtigungen, die in Zugriffssteuerungsrechte beschrieben sind.

APPLY ON MASKING POLICY

Optional. Diese Berechtigung auf Richtlinienebene kann von einem Richtlinieneigentümer verwendet werden, um die Operationen zum Festlegen/Aufheben einer bestimmten Maskierungsrichtlinie für bestimmte Spalten an die Objekteigentümer (d. h. der Rolle mit der OWNERSHIP-Berechtigung für das Objekt) zu übergeben. . Snowflake unterstützt die besitzverwaltete Zugriffssteuerung, bei der Objekteigentümer auch als Dateneigentümer gelten. . Wenn der Richtlinienadministrator den Objekteigentümern hinsichtlich der Dateneigentümerschaft für geschützte Spalten vertraut, kann der Richtlinienadministrator diese Berechtigung verwenden, um die Operationen zum Festlegen/Aufheben von Richtlinien zu dezentralisieren.

Im folgenden Beispiel wird die Rolle MASKING_ADMIN erstellt, und dieser Rolle werden Maskierungsrichtlinienberechtigungen erteilt.

-- create a masking policy administrator custom role

CREATE ROLE masking_admin;

-- grant privileges to masking_admin role.

GRANT CREATE MASKING POLICY on SCHEMA <schema_name> to ROLE masking_admin;

GRANT APPLY MASKING POLICY on ACCOUNT to ROLE masking_admin;

-- allow table_owner role to set or unset the ssn_mask masking policy (optional)

GRANT APPLY ON MASKING POLICY ssn_mask to ROLE table_owner;

Wobei:

  • Schemaname

    Gibt den Bezeichner des Schemas an, dem die Berechtigung erteilt werden soll.

Weitere Informationen dazu finden Sie unter:

Schritt 3: Maskierungsrichtlinie erstellen

In diesem typischen Beispiel werden Benutzern mit der benutzerdefinierten Rolle ANALYST die detokenisierten E-Mail-Werte angezeigt. Benutzern ohne die benutzerdefiniere Rolle ANALYST werden tokenisierte Werte angezeigt.

Die externe Funktion zum Detokenisieren der E-Mail-Werte ist de_email().

-- create masking policy

create or replace masking policy email_de_token as (val string) returns string ->
  case
    when current_role() in ('ANALYST') then de_email(val)
    else val
  end;

Tipp

Wenn Sie eine bestehende Maskierungsrichtlinie aktualisieren möchten und dazu die aktuelle Definition der Richtlinie anzeigen müssen, können Sie die Funktion GET_DDL aufrufen oder den Befehl DESCRIBE MASKING POLICY ausführen.

Schritt 4: Maskierungsrichtlinie auf Tabellen- oder Ansichtsspalte anwenden

Führen Sie die folgenden Anweisungen aus, um die Richtlinie auf eine Tabellenspalte oder eine Ansichtsspalte anzuwenden.

-- apply masking policy to a table column

alter table if exists user_info modify column email set masking policy email_de_token;

-- apply the masking policy to a view column

alter view user_info_v modify column email set masking policy email_de_token;

Schritt 5: Daten in Snowflake abfragen

Führen Sie in Snowflake zwei verschiedene Abfragen aus, eine Abfrage mit der benutzerdefinierten Rolle ANALYST und eine andere Abfrage mit einer anderen Rolle, um zu überprüfen, ob Benutzern ohne benutzerdefinierter ANALYST-Rolle die tokenisierten Werte angezeigt werden.

-- using the ANALYST custom role

use role ANALYST;
select email from user_info; -- should see plain text value

-- using the PUBLIC system role

use role public;
select email from user_info; -- should see tokenized value

Externe Tokenisierung auf Google Cloud Platform

Snowflake supports External Tokenization on Google Cloud Platform (GCP) using custom integrations.

The following is a representative procedure to configure and use External Tokenization on GCP.

Schritt 1: Externe Funktionen auf GCP erstellen

Für externe Funktionen muss Ihre GCP-Umgebung so konfiguriert sein, dass sie mit Snowflake kommunizieren kann.

Konfigurieren Sie Ihre GCP-Umgebung und externe Funktionen unter Snowflake mithilfe der folgenden Schritte.

Bemerkung

Informieren Sie sich in der Dokumentation Ihres Tokenisierungsanbieters, um sicherzustellen, dass alle zusätzlichen und notwendigen Schritte abgeschlossen sind, insbesondere bei der Konfiguration des API Gateway-Dienstes.

Schritt 2: Benutzerdefinierter Rolle Maskierungsrichtlinienberechtigungen erteilen

Ein Sicherheits- oder Datenschutzbeauftragter sollte als Administrator der Maskierungsrichtlinie (d. h. benutzerdefinierte Rolle: MASKING_ADMIN) fungieren und über Berechtigungen zum Definieren, Verwalten und Anwenden von Maskierungsrichtlinien auf Spalten verfügen.

Snowflake stellt die folgenden Berechtigungen zur Verfügung, die einem Sicherheits- oder Datenschutzbeauftragten erteilt werden können, um Maskierungsrichtlinien für Sicherheit auf Spaltenebene zu verwalten:

Berechtigung

Beschreibung

CREATE MASKING POLICY

Diese Berechtigung auf Schemaebene steuert, wer Maskierungsrichtlinien erstellen kann.

APPLY MASKING POLICY

Diese Berechtigung auf Kontoebene steuert, wer Maskierungsrichtlinien für Spalten festlegen/aufheben kann. Sie wird standardmäßig der Rolle ACCOUNTADMIN erteilt. . Diese Berechtigung ermöglicht nur das Anwenden einer Maskierungsrichtlinie auf eine Spalte und bietet keine der zusätzlichen Tabellenberechtigungen, die in Zugriffssteuerungsrechte beschrieben sind.

APPLY ON MASKING POLICY

Optional. Diese Berechtigung auf Richtlinienebene kann von einem Richtlinieneigentümer verwendet werden, um die Operationen zum Festlegen/Aufheben einer bestimmten Maskierungsrichtlinie für bestimmte Spalten an die Objekteigentümer (d. h. der Rolle mit der OWNERSHIP-Berechtigung für das Objekt) zu übergeben. . Snowflake unterstützt die besitzverwaltete Zugriffssteuerung, bei der Objekteigentümer auch als Dateneigentümer gelten. . Wenn der Richtlinienadministrator den Objekteigentümern hinsichtlich der Dateneigentümerschaft für geschützte Spalten vertraut, kann der Richtlinienadministrator diese Berechtigung verwenden, um die Operationen zum Festlegen/Aufheben von Richtlinien zu dezentralisieren.

Im folgenden Beispiel wird die Rolle MASKING_ADMIN erstellt, und dieser Rolle werden Maskierungsrichtlinienberechtigungen erteilt.

-- create a masking policy administrator custom role

CREATE ROLE masking_admin;

-- grant privileges to masking_admin role.

GRANT CREATE MASKING POLICY on SCHEMA <schema_name> to ROLE masking_admin;

GRANT APPLY MASKING POLICY on ACCOUNT to ROLE masking_admin;

-- allow table_owner role to set or unset the ssn_mask masking policy (optional)

GRANT APPLY ON MASKING POLICY ssn_mask to ROLE table_owner;

Wobei:

  • Schemaname

    Gibt den Bezeichner des Schemas an, dem die Berechtigung erteilt werden soll.

Weitere Informationen dazu finden Sie unter:

Schritt 3: Maskierungsrichtlinie erstellen

In diesem typischen Beispiel werden Benutzern mit der benutzerdefinierten Rolle ANALYST die detokenisierten E-Mail-Werte angezeigt. Benutzern ohne die benutzerdefiniere Rolle ANALYST werden tokenisierte Werte angezeigt.

Die externe Funktion zum Detokenisieren der E-Mail-Werte ist de_email().

-- create masking policy

create or replace masking policy email_de_token as (val string) returns string ->
  case
    when current_role() in ('ANALYST') then de_email(val)
    else val
  end;

Tipp

Wenn Sie eine bestehende Maskierungsrichtlinie aktualisieren möchten und dazu die aktuelle Definition der Richtlinie anzeigen müssen, können Sie die Funktion GET_DDL aufrufen oder den Befehl DESCRIBE MASKING POLICY ausführen.

Schritt 4: Maskierungsrichtlinie auf Tabellen- oder Ansichtsspalte anwenden

Führen Sie die folgenden Anweisungen aus, um die Richtlinie auf eine Tabellenspalte oder eine Ansichtsspalte anzuwenden.

-- apply masking policy to a table column

alter table if exists user_info modify column email set masking policy email_de_token;

-- apply the masking policy to a view column

alter view user_info_v modify column email set masking policy email_de_token;

Schritt 5: Daten in Snowflake abfragen

Führen Sie in Snowflake zwei verschiedene Abfragen aus, eine Abfrage mit der benutzerdefinierten Rolle ANALYST und eine andere Abfrage mit einer anderen Rolle, um zu überprüfen, ob Benutzern ohne benutzerdefinierter ANALYST-Rolle die tokenisierten Werte angezeigt werden.

-- using the ANALYST custom role

use role ANALYST;
select email from user_info; -- should see plain text value

-- using the PUBLIC system role

use role public;
select email from user_info; -- should see tokenized value

Best Practices für externe Tokenisierung

  • Systeme synchronisieren. Auf AWS ist es hilfreich, Benutzer und Rollen im Identitätsanbieter (IdP) Ihres Unternehmens mit Snowflake und Protegrity zu synchronisieren. Wenn Benutzer und Rollen nicht synchronisiert sind, können unerwartete Verhaltensweisen, Fehlermeldungen und komplexe Problembehandlungen in Bezug auf externe Funktionen, API-Integrationen, Maskierungsrichtlinien und Tokenisierungsrichtlinien auftreten. Eine Möglichkeit besteht darin, SCIM zu verwenden, um Benutzer und Rollen mit IdP und Snowflake synchron zu halten.

  • Grundursache für Fehler. Da für die externe Tokenisierung die Koordination mehrerer Systeme erforderlich ist (z. B. IdP, Snowflake, Protegrity, AWS, Azure, GCP), sollten Sie immer die Berechtigungen, aktuellen Einschränkungen, externen Funktionen, API-Integration, Maskierungsrichtlinien und die Spalten mit Maskierungsrichtlinien für externe Tokenisierung in Snowflake überprüfen. Informationen zur Ermittlung der Grundursache finden Sie unter:

Nächste Themen: