Tutorial: Sensible Daten automatisch klassifizieren und kennzeichnen

Einführung

Die Identifizierung und Verfolgung Ihrer sensiblen Daten ist einfach und unkompliziert. Snowflake bietet einen integrierten Algorithmus zur Identifizierung Ihrer sensiblen Daten und zur automatischen Kennzeichnung dieser Daten mit System-Tags, um die Art der Daten und deren Sensibilität zu ermitteln.

Bei minimaler Einrichtung können Sie auch ein Schema konfigurieren, damit Snowflake diesen Klassifizierungsprozess für neue und geänderte Daten automatisch durchführt und neben den System-Tags auch benutzerdefinierte Tags anwendet.

In diesem Tutorial werden Sie Folgendes tun:

  • Die Ressourcen einrichten, die Sie zur Durchführung des Tutorials benötigen, einschließlich eines benutzerdefinierten Tags, das auf die sensiblen Daten angewendet wird.

  • Ein Klassifizierungsprofil erstellen, das Snowflake verwendet, um Daten automatisch zu klassifizieren, wenn sie einem Schema hinzugefügt werden.

  • Dem Klassifizierungsprofil eine Tag-Zuordnung hinzufügen, damit das benutzerdefinierte Tag auf Daten angewendet wird, die Snowflake als sensibel identifiziert.

  • Die Ergebnisse der Klassifizierung ansehen.

Tipp

Obwohl in diesem Tutorial nicht gezeigt, können Sie die Klassifizierung auch anpassen, um sensible Daten mit benutzerdefinierten regulären Ausdrücken zu identifizieren und diese Daten mit benutzerdefinierten semantischen Kategorien zu versehen. Weitere Informationen dazu finden Sie unter Implementierung der automatischen benutzerdefinierten Klassifizierung.

Einrichten einer Governance-Datenbank

In diesem Tutorial erstellen Sie die Snowflake-Objekte (ein benutzerdefiniertes Tag und ein Klassifizierungsprofil), die Sie für die Verwaltung Ihrer Daten benötigen. Auf der Grundlage bewährter Praktiken werden diese Objekte in einer Datenbank erstellt, die der Governance gewidmet ist.

Öffnen Sie ein SQL-Arbeitsblatt, und führen Sie die folgenden Anweisungen aus, um eine Datenbank und ein Schema für die Governance-Objekte zu erstellen:

USE ROLE ACCOUNTADMIN;

CREATE DATABASE IF NOT EXISTS governance_db;
CREATE SCHEMA IF NOT EXISTS governance_db.sch;
Copy

Bemerkung

Der Einfachheit halber verwenden Sie die Systemrolle ACCOUNTADMIN, um die Einrichtung der Berechtigungen zu vermeiden, die für die Konfiguration der Klassifizierung sensibler Daten erforderlich sind. In der Praxis sollten Sie diese mächtige Rolle nicht verwenden, sondern lieber kundenspezifische Rollen mit den erforderlichen Berechtigungen erstellen.

Richten Sie Ihre Daten ein

Bevor Sie die Daten für dieses Tutorial einrichten, erstellen Sie ein Warehouse, um eine Tabelle zu füllen:

CREATE WAREHOUSE IF NOT EXISTS tutorial_wh;
Copy

Tabelle erstellen

  1. Erstellen Sie die Datenbank und das Schema, das die zu klassifizierende Tabelle enthalten wird.

    CREATE DATABASE IF NOT EXISTS data_db;
    CREATE SCHEMA IF NOT EXISTS data_db.sch;
    
    Copy
  2. Erstellen Sie die Tabellenstruktur, die die sensiblen Daten enthalten wird.

    CREATE TABLE data_db.sch.customers (
      account_number NUMBER(38,0),
      first_name VARCHAR(16777216),
      last_name VARCHAR(16777216),
      email VARCHAR(16777216)
    );
    
    Copy

Fügen Sie Werte in die Tabelle ein

Fügen Sie der von Ihnen erstellten Tabelle Daten hinzu:

USE WAREHOUSE tutorial_wh;

INSERT INTO data_db.sch.customers (account_number, first_name, last_name, email)
  VALUES
    (1589420, 'john', 'doe', 'john.doe@example.com'),
    (2834123, 'jane', 'doe', 'jane.doe@example.com'),
    (4829381, 'jim', 'doe', 'jim.doe@example.com'),
    (9821802, 'susan', 'smith', 'susan.smith@example.com'),
    (8028387, 'bart', 'simpson', 'bart.barber@example.com');
Copy

Erstellen Sie ein Klassifizierungsprofil

Toll, jetzt haben Sie eine Tabelle voller Daten, die Sie klassifizieren müssen, um Ihre sensiblen Daten zu schützen. Da Sie möchten, dass Snowflake Daten automatisch klassifiziert, wenn sie einem Schema hinzugefügt werden, müssen Sie ein Klassifizierungsprofil erstellen.

Ein Klassifizierungsprofil steuert, wie oft Daten in einem Schema klassifiziert werden und was während dieses Klassifizierungsprozesses geschieht. Jedes Klassifizierungsprofil ist eine Instanz der Klasse CLASSIFICATION_PROFILE.

Um das Klassifizierungsprofil für Ihr Schema zu erstellen, führen Sie Folgendes aus:

CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE
  governance_db.sch.my_classification_profile(
      {
        'minimum_object_age_for_classification_days': 0,
        'maximum_classification_validity_days': 30,
        'auto_tag': true
      });
Copy

Wenn dieses Klassifizierungsprofil in Ihrem Schema eingestellt ist, geschieht Folgendes:

  • Die Klassifizierung beginnt in weniger als einem Tag ('minimum_object_age_for_classification_days': 0).

  • Nach der ersten Klassifizierung prüft Snowflake alle 30 Tage, ob die Tabellen neu klassifiziert werden müssen ('maximum_classification_validity_days': 30).

  • Klassifizierungs-Tags werden automatisch auf Spalten gesetzt, die sensible Daten enthalten ('auto_tag': true).

Tag-Zuordnung zum Klassifizierungsprofil hinzufügen

Da Sie in Ihrem Klassifizierungsprofil 'auto_tag': true eingestellt haben, wendet Snowflake automatisch Systemklassifizierungs-Tags an, wenn es Daten als sensibel klassifiziert. Das Tag SEMANTIC_CATEGORY klassifiziert die Art der Daten, z. B. die Identifizierung der Daten als Name oder Adresse. Das Tag PRIVACY_CATEGORY klassifiziert die Sensibilität der Daten, indem es die Daten beispielsweise als Bezeichner oder Quasi-Bezeichner kennzeichnet.

Nehmen wir nun an, Sie möchten einen Schritt weiter gehen und automatisch Ihre eigenen benutzerdefinierten Tags auf der Grundlage der Klassifizierung der Daten anwenden. Dieses Tutorial zeigt Ihnen wie!

Um das benutzerdefinierte Tag zu erstellen, das Sie auf sensible Daten anwenden möchten, führen Sie die folgende Anweisung aus:

CREATE TAG governance_db.sch.tutorial_pii;
Copy

Als Nächstes werden Sie das Klassifizierungsprofil so ändern, dass dieses benutzerdefinierte Tag angewendet wird, wenn Snowflake erkennt, dass eine Spalte Namen enthält. Durch Hinzufügen einer Tag-Zuordnung zum Klassifizierungsprofil wird festgelegt, wie und wann das benutzerdefinierte Tag angewendet wird.

Um die Tag-Zuordnung zu Ihrem Klassifizierungsprofil hinzuzufügen, führen Sie die Methode classification_profile_name!SET_TAG_MAP aus:

CALL governance_db.sch.my_classification_profile!SET_TAG_MAP(
  {'column_tag_map':[
    {
      'tag_name':'governance_db.sch.tutorial_pii',
      'tag_value':'sensitive_name',
      'semantic_categories':['NAME']
    }]});
Copy

Wenn nun die automatische Klassifizierung ergibt, dass die vom System definierte semantische Kategorie NAME ist, dann wird das benutzerdefinierte Tag tutorial_pii auf die Spalte gesetzt. Basierend auf dem Klassifizierungsprofil wird der Wert des benutzerdefinierten Tags tutorial_pii auf sensitive_name gesetzt.

Bemerkung

Sie können bei der Erstellung des Klassifizierungsprofils auch eine Tag-Zuordnung definieren.

Klassifizierungsprofil für ein Schema festlegen

Sie haben Ihr Klassifizierungsprofil konfiguriert und sind nun bereit, es in das Schema einzugeben. Damit wird der automatische Klassifizierungsprozess gestartet.

ALTER SCHEMA data_db.sch
  SET CLASSIFICATION_PROFILE = 'governance_db.sch.my_classification_profile';
Copy

Fertig, Snowflake erledigt den Rest! Snowflake beginnt mit der Klassifizierung der vorhandenen Daten und fährt fort, neue Daten zu klassifizieren, sobald sie dem Schema hinzugefügt werden.

Klassifizierungsergebnisse anzeigen

Bevor Sie diesen Teil des Tutorials abschließen, müssen Sie eine Stunde warten, bis Snowflake den Klassifizierungsprozess abgeschlossen hat.

Nach einer Stunde führen Sie die folgende Anweisung aus, um die Ergebnisse der Klassifizierung abzurufen:

CALL SYSTEM$GET_CLASSIFICATION_RESULT('data_db.sch.customers');
Copy

In den Ergebnissen finden Sie Folgendes:

  • Die Spalte ACCOUNT_NUMBER wurde nicht als sensibel eingestuft, daher wurden ihr keine Klassifizierungs-Tags zugewiesen.

  • Die Spalte EMAIL wurde mit der semantischen Kategorie EMAIL und der Datenschutzkategorie IDENTIFIER gekennzeichnet.

  • Auf der Grundlage der Tag-Zuordnung des Klassifizierungsprofils wurde das benutzerdefinierte Tag governance_db.sch.tutorial_pii den Spalten zugewiesen, die eine semantische Kategorie von NAME hatten (siehe hervorgehobene Zeilen in der Ausgabe).

  {
  "classification_profile_config": {
    "classification_profile_name": "GOVERNANCE_DB.SCH.MY_CLASSIFICATION_PROFILE"
  },
  "classification_result": {
    "ACCOUNT_NUMBER": {
      "alternates": []
    },
    "EMAIL": {
      "alternates": [],
      "recommendation": {
        "confidence": "HIGH",
        "coverage": 1,
        "details": [],
        "privacy_category": "IDENTIFIER",
        "semantic_category": "EMAIL",
        "tags": [
          {
            "tag_applied": true,
            "tag_name": "snowflake.core.semantic_category",
            "tag_value": "EMAIL"
          },
          {
            "tag_applied": true,
            "tag_name": "snowflake.core.privacy_category",
            "tag_value": "IDENTIFIER"
          }
        ]
      },
      "valid_value_ratio": 1
    },
    "FIRST_NAME": {
      "alternates": [],
      "recommendation": {
        "confidence": "HIGH",
        "coverage": 1,
        "details": [],
        "privacy_category": "IDENTIFIER",
        "semantic_category": "NAME",
        "tags": [
          {
            "tag_applied": true,
            "tag_name": "snowflake.core.semantic_category",
            "tag_value": "NAME"
          },
          {
            "tag_applied": true,
            "tag_name": "snowflake.core.privacy_category",
            "tag_value": "IDENTIFIER"
          },
          {
            "tag_applied": true,
            "tag_name": "governance_db.sch.tutorial_pii",
            "tag_value": "sensitive_name"
          }
        ]
      },
      "valid_value_ratio": 1
    },
    "LAST_NAME": {
      "alternates": [],
      "recommendation": {
        "confidence": "HIGH",
        "coverage": 1,
        "details": [],
        "privacy_category": "IDENTIFIER",
        "semantic_category": "NAME",
        "tags": [
          {
            "tag_applied": true,
            "tag_name": "snowflake.core.semantic_category",
            "tag_value": "NAME"
          },
          {
            "tag_applied": true,
            "tag_name": "snowflake.core.privacy_category",
            "tag_value": "IDENTIFIER"
          },
          {
            "tag_applied": true,
            "tag_name": "governance_db.sch.tutorial_pii",
            "tag_value": "sensitive_name"
          }
        ]
      },
      "valid_value_ratio": 1
    }
  }
}

Bereinigung, Zusammenfassung und zusätzliche Ressourcen

Herzlichen Glückwunsch! Sie haben dieses Tutorial erfolgreich abgeschlossen.

Zusammengefasst haben Sie gelernt, wie Sie Folgendes tun können:

  • Ein Klassifizierungsprofil erstellen, um zu steuern, wie die automatische Klassifizierung durchgeführt wird.

  • Dem Klassifizierungsprofil eine Tag-Zuordnung hinzufügen, damit benutzerdefinierte Tags automatisch auf Spalten mit sensiblen Daten gesetzt werden.

  • Das Klassifizierungsprofil für ein Schema festlegen, um die automatische Klassifizierung zu starten.

  • Die Ergebnisse der automatischen Klassifizierung ansehen.

Objekte des Tutorials löschen

Wenn Sie vorhaben, das Tutorial zu wiederholen, können Sie die von Ihnen erstellten Objekte beibehalten.

Andernfalls löschen Sie die Objekte des Tutorials wie folgt:

DROP TAG governance_db.sch.tutorial_pii;
DROP DATABASE governance_db;
DROP DATABASE data_db;
DROP WAREHOUSE tutorial_wh;
Copy

Nächste Schritte

Ausführliche Informationen zur Implementierung der automatischen Klassifizierung sensibler Daten, einschließlich der damit verbundenen Kosten und der Implementierung einer benutzerdefinierten Klassifizierung, finden Sie unter Sensible Daten automatisch klassifizieren.