Einführung in die Klassifizierung

Unter diesem Thema finden Sie Informationen zur Funktionsweise der Klassifizierung.

Informationen zur Verwendung kundenspezifischer Klassifikatoren finden Sie unter Kundenspezifische Datenklassifizierung.

Unter diesem Thema:

Übersicht

Bei der Klassifizierung handelt es sich um einen mehrstufigen Prozess, bei dem Felder und Metadaten für personenbezogene Daten analysiert und dann die entsprechenden Spalten mit Snowflake-definierten System-Tags verknüpft werden. Die getaggten Daten können von Data Engineers mit SQL und über Snowsight nachverfolgt werden. Data Engineers können Spalten in einer Tabelle klassifizieren, um festzustellen, ob die Spalte bestimmte Arten von Daten enthält, die nachverfolgt oder geschützt werden müssen, z. B. einen eindeutigen Bezeichner (Pass- oder Bankkontodaten), einen Quasi-Bezeichner (die Stadt, in der die Person lebt) oder einen sensiblen Wert (das Gehalt einer Person).

Durch das Verfolgen der Daten mit einem System-Tag und den Schutz der Daten durch eine Maskierungs- oder Zeilenzugriffsrichtlinie können Data Engineers den mit den Daten verbundenen Governance-Status verbessern. Das Gesamtergebnis der Klassifizierungs- und Datenschutzmaßnahmen besteht in einer verbesserten Einhaltung von Datenschutzbestimmungen.

Sie können eine einzelne Tabelle oder Tabellen in einem Schema klassifizieren. Snowflake bietet vordefinierte System-Tags, mit denen Sie Spalten klassifizieren und taggen können. Sie können aber auch kundenspezifische Klassifikatoren verwenden, um auf der Grundlage Ihres Wissens über Ihre Daten eigene semantische Kategorien zu definieren. Sie können sich auch für einen Ansatz entscheiden, bei dem Snowflake-System-Tags und kundenspezifische Klassifikatoren je nach dem von Ihnen angestrebten Governance-Status verwendet werden.

Die Klassifizierung bietet Datenschutz- und Data Governance-Administratoren die folgenden Vorteile:

Datenzugriff:

Die Ergebnisse der Klassifizierung von Spaltendaten können Administratoren der Identitäts- und Zugriffsverwaltung dabei helfen, ihre Snowflake-Rollenhierarchien zu evaluieren und zu pflegen, um sicherzustellen, dass die Snowflake-Rollen die passenden Berechtigungen für den Zugriff auf sensible oder PII-Daten haben.

Datenfreigabe (Data Sharing):

Der Klassifizierungsprozess kann helfen, den Speicherort von PII Daten zu identifizieren und zu bestätigen. Anschließend kann ein Data Sharing-Anbieter anhand der Klassifizierungsergebnisse entscheiden, ob die Daten freigeben werden können und wie die PII-Daten einem Data Sharing-Verbraucher zur Verfügung gestellt werden sollen.

Anwendung von Richtlinien:

Die Nutzung von Spalten, die PII-Daten enthalten, wie z. B. beim Verweisen auf Spalten in Basistabellen, um eine Ansicht oder materialisierte Ansicht zu erstellen, kann dabei helfen, die beste Methode zum Schutz der Daten entweder mit einer Maskierungsrichtlinie oder einer Zeilenzugriffsrichtlinie zu bestimmen.

System-Tags und Kategorien

System-Tags sind Tags, die Snowflake erstellt, verwaltet und über die freigegebene SNOWFLAKE-Datenbank zur Verfügung stellt. Es gibt zwei System-Tags für die Klassifizierung, die beide im Schema SNOWFLAKE.CORE vorhanden sind:

  • SNOWFLAKE.CORE.SEMANTIC_CATEGORY

  • SNOWFLAKE.CORE.PRIVACY_CATEGORY

Der Data Engineer weist diese Tags einer Spalte zu, die personenbezogene oder sensible Daten enthält.

Zeichenfolgenwerte:

Snowflake speichert die Zuweisung eines System-Tags zu einer Spalte als Schlüssel-Wert-Paar, wobei der Wert eine Zeichenfolge ist. Snowflake definiert die zulässigen Zeichenfolgenwerte für jedes Klassifizierungs-System-Tag, da Snowflake diese System-Tags verwaltet.

Die Tag-Namen SEMANTIC_CATEGORY und PRIVACY_CATEGORY entsprechen den Klassifizierungskategorien, die Snowflake den Spaltendaten während des Spalten-Sampling-Prozesses zuordnet (d. h. Tag-Namen und Kategorienamen verwenden die gleichen Wörter):

Semantische Kategorie:

Die semantische Kategorie kennzeichnet personenbezogene Attribute.

Beispiele für personenbezogene Attribute, die von der Klassifizierung unterstützt werden, sind Name, Alter und Geschlecht. Diese drei Attribute sind mögliche Zeichenfolgenwert bei der Zuweisung des SEMANTIC_CATEGORY-Tags zu einer Spalte.

Die Klassifizierung kann Informationen aus verschiedenen Ländern wie Australien, Kanada oder dem Vereinigten Königreich erkennen. Wenn Ihre Tabellenspalte beispielsweise Informationen zu Telefonnummern enthält, kann der Analyseprozess die verschiedenen Telefonnummernwerte aus jedem dieser Länder unterscheiden. Eine vollständige Liste der unterstützten internationalen Werte finden Sie unter System-Tags und Kategorien (unter diesem Thema).

Datenschutzkategorie:

Wenn die Analyse ergibt, dass die Spaltendaten einer semantischen Kategorie entsprechen, ordnet Snowflake die Spalte außerdem einer Datenschutzkategorie zu. Die Datenschutzkategorie hat drei Werte: „identifier“ für Identifikatoren, „quasi-identifier“ für Quasi-Identifikatoren und „sensitive“ für sensible Daten. Diese drei Werte sind die Zeichenfolgenwerte, die bei der Zuweisung des Klassifizierungs-System-Tags PRIVACY_CATEGORY zu einer Spalte angegeben werden können.

  • Identifikator („identifier“): Attribute mit diesem Wert dienen der eindeutigen Identifizierung einer Person. Beispiele sind Name, Sozialversicherungsnummer und Telefonnummer.

    Bezeichnerattribute sind gleichbedeutend mit direkte Identifikatoren.

  • Quasi-Identifikatoren („quasi-identifier“): Diese Attribute können eine Person eindeutig identifizieren, wenn zwei oder mehr dieser Attribute kombiniert werden. Zu den Attributen gehören beispielsweise Alter und Geschlecht.

    Quasi-Identifikatoren sind ein Synonym für indirekte Identifikatoren.

  • Sensible Daten („sensitive“): Diese Attribute werden nicht als ausreichend angesehen, um eine Person zu identifizieren, sondern sind Informationen, die die Person aus Gründen des Datenschutzes eher nicht preisgeben möchte.

    Derzeit ist das einzige Attribut, das Snowflake als sensibel bewertet, das Gehalt.

  • Unempfindlich Daten („insensitive“): Diese Attribute enthalten keine personenbezogenen oder sensiblen Informationen.

Die folgende Tabelle fasst die Beziehung zwischen jeder Klassifizierungskategorie und jedem System-Tag, sowie den Zeichenfolgenwerten jedes Klassifizierungs-System-Tags zusammen: Snowflake unterstützt internationale SEMANTIC_CATEGORY-Tag-Werte, die sich auf bestimmte Länder beziehen. Die Ländercodes basieren auf dem Standard ISO 3166-1 ALPHA-2. Andere semantische Kategorien, wie EMAIL und GENDER, haben keinen Ländercode. Um internationale Informationen zu verfolgen, können Data Engineers beim Setzen eines System-Tags auf einer Spalte den Wert aus der Spalte der SEMANTIC_CATEGORY-Tag-Werte verwenden.

PRIVACY_CATEGORY-Werte

SEMANTIC_CATEGORY-Werte

Unterstützte Länder

IDENTIFIER

  • BANK_ACCOUNT

  • DRIVERS_LICENSE

  • MEDICARE_NUMBER

  • NATIONAL_IDENTIFIER

  • ORGANIZATION_IDENTIFIER

  • PASSPORT

  • PHONE_NUMBER

  • STREET_ADDRESS

  • TAX_IDENTIFIER

  • EMAIL

  • IBAN

  • IMEI

  • IP_ADDRESS

  • NAME

  • PAYMENT_CARD

  • URL

  • VIN

  • CA, NZ, US

  • AU, CA, US

  • AU, NZ

  • CA, GB, SG, US

  • AU, SG

  • AU, CA, NZ, SG, US

  • AU, CA, GB, US

  • CA, US

  • AU, NZ

QUASI_IDENTIFIER

  • ADMINISTRATIVE_AREA_1

  • ADMINISTRATIVE_AREA_2

  • CITY

  • POSTAL_CODE

  • AGE

  • COUNTRY

  • DATE_OF_BIRTH

  • ETHNICITY

  • GENDER

  • LAT_LONG

  • LATITUDE

  • LONGITUDE

  • MARITAL_STATUS

  • OCCUPATION

  • YEAR_OF_BIRTH

  • CA, NZ, US

  • US

  • CA, NZ, US

  • AU, CA, CH, NZ, GB, US

SENSITIVE

  • SALARY

Bemerkung

Mehrere Zeichenfolgenwerte semantischer Tags aus allen drei Datenschutzkategorien können nach bestehenden Gesetzen und Vorschriften als „sensible personenbezogene Daten“, „Besondere Datenkategorien“ oder Ähnliches gelten und zusätzliche Schutzmaßnahmen oder Kontrollen erfordern.

Derzeit werden Spaltendaten bei der Klassifizierung nicht gleichzeitig als sensibel und identifizierend getaggt. Mit anderen Worten, wenn Sie das System-Tag auf eine bestimmte Spalte setzen, müssen Sie entweder das SEMANTIC_CATEGORY- oder das PRIVACY_CATEGORY-Tag wählen.

Unterstützte Objekte und Datentypen

Snowflake unterstützt das Klassifizieren von Daten, die in allen Typen von Tabellen und Ansichten gespeichert sind, wie externen Tabellen, materialisierten Ansichten und sicheren Ansichten.

Sie können Tabellen- und Ansichtsspalten für alle unterstützten Datentypen klassifizieren, mit Ausnahme der folgenden Datentypen:

  • GEOGRAPHY

  • BINARY

  • VARIANT

    Beachten Sie, dass Sie eine Spalte mit dem Datentyp VARIANT klassifizieren können, wenn der Spaltendatentyp in einen NUMBER- oder STRING-Datentyp umgewandelt werden kann. Snowflake klassifiziert die Spalte nicht, wenn die Spalte JSON-, XML- oder andere semistrukturierte Daten enthält.

Wenn eine Tabelle Spalten enthält, deren Datentyp nicht unterstützt wird, oder die Spalte nur NULL-Werte enthält, ignoriert der Klassifizierungsprozess diese Spalten und nimmt sie nicht in die Ausgabe auf.

Wichtig

Wenn Ihre Daten NULL-Werte mit einem anderen Wert als NULL darstellen, kann die Genauigkeit der Klassifizierungsergebnisse beeinträchtigt werden.

Computekosten

Für den Klassifizierungsprozess sind Computeressourcen erforderlich, die von dem virtuellen Warehouse bereitgestellt werden, das zum Zeitpunkt der Klassifizierung verwendet und ausgeführt wird.

Der Zeitaufwand für die Klassifizierung von Daten einer Tabelle/Ansicht (und damit die Anzahl der vom Warehouse verbrauchten Credits) hängt von der Menge der zu klassifizierenden Daten ab.

Insbesondere bei einer Tabelle oder Ansicht mit einer großen Anzahl von Spalten, die eine Klassifizierung unterstützen, kann dies Auswirkungen auf die Verarbeitungszeit haben. Generell gilt, dass die Verarbeitungsgeschwindigkeit linear mit der Größe des Warehouses steigt. Mit anderen Worten: Jede Vergrößerung eines Warehouses (von X-Small auf Small) lässt sich die Verarbeitungszeit in der Regel um die Hälfte reduzieren.

Verwenden Sie die folgenden allgemeinen Richtlinien bei der Auswahl der Warehouse-Größe:

  • Bearbeitungszeit spielt keine Rolle: sehr kleines Warehouse (X-Small).

  • Bis zu 100 Spalten in einer Tabelle: kleines Warehouse (Small).

  • 101 bis 300 Spalten in einer Tabelle: mittelgroßes Warehouse (Medium).

  • 301 Spalten oder mehr in einer Tabelle: großes Warehouse (Large).

Weitere Details dazu finden Sie unter Hinweise zu Warehouses.

Empfehlungen

Um das Klassifizierungs-Feature einzusetzen und das Tracking der PII-Daten zu optimieren, gehen Sie wie folgt vor:

Validierung:

Fragen Sie zuerst die Account Usage-Ansichten ab:

  • ACCESS_HISTORY: Ermitteln der Tabellen- und Ansichtsobjekte, auf die am häufigsten zugegriffen wird.

  • OBJECT_DEPENDENCIES: Ermitteln von Metadaten-Referenzen zwischen zwei oder mehreren Objekten.

Verwenden Sie die Ergebnisse der Abfragen, um die Zuweisung der Klassifizierungs-System-Tags auf Schema- oder Datenbankebene zu priorisieren.

Spaltennamen:

Verwenden Sie sinnvolle Spaltennamen in Ihren Tabellenobjekten, und schulen Sie die Tabellenersteller, sich an die internen Richtlinien für die Tabellenerstellung zu halten.

Datentypen:

Verwenden Sie sinnvolle Datentypen für Spalten. So sollte zum Beispiel eine AGE-Spalte mit Altersangaben den Datentyp NUMBER haben.

VARIANT:

Wenn eine Spalte den Datentyp VARIANT hat, führen Sie vor dem Klassifizieren der Tabelle den Befehl FLATTEN auf der Spalte aus.

Warehouse:

Verwenden Sie bei der Klassifizierung der Daten die passende Warehouse-Größe. Weitere Informationen dazu finden Sie unter Computekosten (unter diesem Thema).

Klassifizierung verwalten

Berechtigungsreferenz

Mit dem Berechtigungsmodell für die Datenklassifizierung können Datenschutzadministratoren festlegen, welche Personas Tabellen klassifizieren und Spalten taggen dürfen. So kann beispielsweise eine einzige Rolle über alle erforderlichen Berechtigungen verfügen, oder der Datenschutzadministrator kann Berechtigungen an verschiedene Rollen delegieren, um die Anforderungen der Aufgabentrennung (Separation of Duties, SoD) zu erfüllen. Ein Beispiel für eine tragfähige Kombination von Berechtigungen wird im Abschnitt Erste Schritte zum Klassifizieren von Daten von Datenklassifizierung verwenden vorgestellt.

Als Administrator haben Sie verschiedene Optionen, je nachdem, wie Sie die beteiligten Rollen oder Personas verwalten möchten. Die Optionen bieten Flexibilität für den von Ihnen angestrebten Governance-Status. Beispiel:

  • Der Tabelleneigentümer (d. h. die Rolle mit der Berechtigung OWNERSHIP für die Tabelle) kann die Tabelle klassifizieren und System-Tags auf den Spalten festlegen.

  • Eine kundenspezifische Rolle mit der SELECT-Berechtigung für die Tabelle und der APPLY TAG-Berechtigung für das Konto kann die Tabelle klassifizieren und System-Tags auf den Spalten festlegen.

  • Wenn Sie möchten, dass verschiedene Rollen oder Personas am Klassifizieren und Tagging von Spalten beteiligt sind, können Sie einer Rolle die SELECT-Berechtigung für die Tabelle und einer anderen Rolle die APPLY TAG-Berechtigung für das Konto erteilen.

In der folgenden Tabelle sind die verschiedenen Optionen zum Klassifizieren einer Tabelle, zum Festlegen der Datenklassifizierungs-System-Tags auf Spalten und zum Durchführen dieser beiden Aufgaben zusammengefasst:

Berechtigung oder Rolle

Tabellen klassifizieren

System-Tags für Spalten festlegen

SELECT für die Tabelle oder Ansicht

OWNERSHIP für die Tabelle

APPLY TAG für das Konto

ACCOUNTADMIN-Rolle

OWNERSHIP für die Datenbank oder das Schema

Wichtig

  • Für das Klassifizieren von Tabellen ist ein aktives Warehouse erforderlich. Die Rolle, mit der eine Tabelle klassifiziert wird, muss mindestens über die USAGE-Berechtigung für ein Warehouse verfügen.

  • Sie können einer Kontorolle die Datenbankrolle SNOWFLAKE.GOVERNANCE_VIEWER zuweisen, damit Benutzer mit dieser Kontorolle die Ansicht DATA_CLASSIFICATION_LATEST abfragen und so die neuesten Ergebnisse einer klassifizierten Tabelle anzeigen können.

Tracking von System-Tags

Snowflake bietet integrierte Ansichten und Funktionen zur Verfolgung der Verwendung von System-Tags für die Klassifizierung:

  • Um die Spalten zu ermitteln, denen in Ihrem Konto ein System-Tag zugewiesen ist, fragen Sie die Account Usage-Ansicht TAG_REFERENCES ab:

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES
        WHERE TAG_NAME = 'PRIVACY_CATEGORY'
        ORDER BY OBJECT_DATABASE, OBJECT_SCHEMA, OBJECT_NAME, COLUMN_NAME;
    
    Copy
  • Um für eine Tabelle oder eine Ansicht in einer bestimmten Datenbank die Spalten zu ermitteln, denen ein System-Tag zugewiesen ist, rufen Sie die Information Schema-Tabellenfunktion TAG_REFERENCES auf:

    SELECT * FROM
      TABLE(
        MY_DB.INFORMATION_SCHEMA.TAG_REFERENCES(
          'my_db.my_schema.hr_data.fname',
          'COLUMN'
        ));
    
    Copy
  • Um alle Tags zu ermitteln, die in jeder Spalte einer Tabelle oder einer Ansicht innerhalb einer bestimmten Datenbank zugewiesen wurden, rufen Sie die Information Schema-Tabellenfunktion TAG_REFERENCES_ALL_COLUMNS auf:

    SELECT * from
      TABLE(
        MY_DB.INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS(
          'my_db.my_schema.hr_data',
          'table'
        ));
    
    Copy
  • Um einen bestimmten Tag-Wert für eine Spalte zu ermitteln, rufen Sie die Systemfunktion SYSTEM$GET_TAG auf:

    SELECT SYSTEM$GET_TAG(
      'SNOWFLAKE.CORE.PRIVACY_CATEGORY',
      'hr_data.fname',
      'COLUMN'
      );
    
    Copy