Verwenden von SQL zum Einrichten der Klassifizierung sensibler Daten¶
In den folgenden Abschnitten wird beschrieben, wie Sie SQL verwenden, um die automatische Klassifizierung sensibler Daten innerhalb einer Datenbank einzurichten. Wenn Sie eine Weboberfläche verwenden möchten, um die Klassifizierung sensibler Daten einzurichten, lesen Sie Verwenden des Trust Centers, um die Klassifizierung sensibler Daten einzurichten.
Der grundlegende Workflow für die Verwendung von SQL zur Klassifizierung sensibler Daten besteht aus den folgenden Schritten:
Erstellen Sie ein Klassifizierungsprofil, das steuert, was bei der Klassifizierung sensibler Daten geschieht.
Legen Sie das Klassifizierungsprofil für eine Datenbank oder ein Schema fest, um Tabellen in der Entität automatisch zu klassifizieren.
Beispiele für einen durchgängigen Arbeitsablauf finden Sie unter Beispiele.
Über Klassifizierungsprofile¶
Ein Klassifizierungsprofil definiert die Kriterien, die zur automatischen Klassifizierung von Tabellen in einer Datenbank verwendet werden. Diese Kriterien umfassen:
Wie lange eine Tabelle existieren soll, bevor sie automatisch klassifiziert wird.
Wie lange es dauert, bis zuvor klassifizierte Tabellen neu klassifiziert werden sollten.
Ob System- und benutzerdefinierte Tags nach der Klassifizierung automatisch auf Spalten gesetzt werden. Sie können entscheiden, ob Sie möchten, dass Snowflake die vorgeschlagenen Tags automatisch anwendet, oder ob Sie es vorziehen, die vorgeschlagenen Tag-Zuweisungen zu überprüfen und sie dann selbst anzuwenden.
Eine Zuordnung zwischen Systemklassifizierungs-Tags und benutzerdefinierten Objekt-Tags, sodass die benutzerdefinierten Tags automatisch angewendet werden können.
Ob kundenspezifische Klassifikatoren zur Klassifizierung von Daten verwendet werden.
Wenn ein Data Engineer das Klassifizierungsprofil einer Datenbank zuweist, werden sensible Daten in den Tabellen der Datenbank automatisch nach dem durch das Profil definierten Zeitplan klassifiziert. Ein Data Engineer kann dasselbe Klassifizierungsprofil mehreren Datenbanken zuweisen oder mehrere Klassifizierungsprofile erstellen, um unterschiedliche Klassifizierungskriterien für verschiedene Datenbanken festzulegen.
Um ein Klassifizierungsprofil mithilfe von SQL zu erstellen, führen Sie den Befehl CREATE CLASSIFICATION_PROFILE aus, um eine Instanz der CLASSIFICATION_PROFILE-Klasse zu erstellen.
Ein Beispiel für die Verwendung des Befehls CREATE CLASSIFICATION_PROFILE zur Erstellung eines Klassifizierungsprofils finden Sie unter Beispiele.
Über die Zuordnung von Tags¶
Sie können das Klassifizierungsprofil verwenden, um SEMANTIC_CATEGORY System-Tags einem oder mehreren Objekt-Tags zuzuordnen. Mit dieser Tag-Zuordnung kann einer Spalte mit sensiblen Daten automatisch ein benutzerdefiniertes Tag auf der Grundlage ihrer Klassifizierung zugewiesen werden. Die Tag-Zuordnung kann bei der Erstellung des Klassifizierungsprofils oder später durch Aufruf der Methode <classification_profile_name>!SET_TAG_MAP hinzugefügt werden.
Unabhängig davon, ob Sie die Tag-Zuordnung während der Erstellung des Klassifizierungsprofils oder danach definieren, wird der Inhalt der Zuordnung als JSON-Objekt angegeben. Dieses JSON-Objekt enthält den 'column_tag_map' Schlüssel, bei dem es sich um ein Array von Objekten handelt, die ein benutzerdefiniertes Tag, den Zeichenfolgenwert dieses Tags und die semantischen Kategorien, denen das Tag zugeordnet ist, angeben.
Im Folgenden finden Sie ein Beispiel für eine Tag-Zuordnung:
'tag_map': {
'column_tag_map': [
{
'tag_name':'tag_db.sch.pii',
'tag_value':'Highly Confidential',
'semantic_categories':[
'NAME',
'NATIONAL_IDENTIFIER'
]
},
{
'tag_name': 'tag_db.sch.pii',
'tag_value':'Confidential',
'semantic_categories': [
'EMAIL'
]
}
]
}
Wenn Sie eine Spalte mit E-Mail-Adressen haben und der Klassifizierungsprozess feststellt, dass die Spalte diese Adressen enthält, wird auf der Grundlage dieser Zuordnung das Tag tag_db.sch.pii = 'Confidential' für die Spalte mit den E-Mail-Adressen gesetzt.
Wenn Ihre Tag-Zuordnung mehrere JSON-Objekte enthält, die Tags, Tag-Werte und Kategorie-Werte zuordnen, bestimmt die Reihenfolge der JSON-Objekte, welches Tag und welcher Wert im Falle eines Konflikts in der Spalte gesetzt wird. Geben Sie die JSON-Objekte in der gewünschten Zuordnungsreihenfolge von links nach rechts an, oder von oben nach unten, wenn Sie JSON formatieren.
Tipp
Jedes Objekt im Feld column_tag_map hat nur einen erforderlichen Schlüssel: tag_name. Wenn Sie die Schlüssel tag_value und semantic_categories weglassen, wird das benutzerdefinierte Tag auf jede Spalte angewendet, auf die das System-Tag SEMANTIC_CATEGORY angewendet wird, und der Wert des benutzerdefinierten Tags entspricht dem Wert des Tags SEMANTIC_CATEGORY für eine bestimmte Spalte.
Wenn es einen Konflikt zwischen einem manuell zugewiesenen Tag und einem durch die automatische Klassifizierung zugewiesenen Tag gibt, tritt ein Fehler auf. Informationen zur Verfolgung dieser Fehler finden Sie unter Fehlerbehebung bei der Klassifizierung sensibler Daten.
Festlegen eines Klassifizierungsprofils für eine Datenbank¶
Implementieren Sie die automatische Klassifizierung sensibler Daten, indem Sie ein Klassifizierungsprofil für eine Datenbank festlegen. Nachdem Sie das Klassifizierungsprofil für die Datenbank festgelegt haben, werden alle Tabellen und Ansichten innerhalb dieser Datenbank automatisch durch die Klassifizierung sensibler Daten überwacht.
Sie können auch eine Klassifizierung für ein Schema festlegen. Wenn Sie ein Klassifizierungsprofil für ein Schema festlegen, das in einer Datenbank existiert, die ebenfalls mit einem Klassifizierungsprofil verbunden ist, hat das für das Schema festgelegte Profil Vorrang vor dem für die Datenbank festgelegten Profil.
Um ein Klassifizierungsprofil festzulegen, verwenden Sie einen Befehl des Typs ALTER DATABASE oder ALTER SCHEMA, um den Parameter CLASSIFICATION_PROFILE festzulegen. Um beispielsweise das Klassifizierungsprofil my_profile festzulegen, sodass alle Tabellen und Ansichten in der Datenbank my_db durch die Klassifizierung sensibler Daten überwacht werden, führen Sie den folgenden Befehl aus:
ALTER DATABASE my_db
SET CLASSIFICATION_PROFILE = 'governance_db.classify_sch.my_profile';
Zugriffssteuerung¶
Hier finden Sie die Berechtigungen und Rollen, mit denen Sie mit Klassifizierungsprofilen arbeiten und die Klassifizierung sensibler Daten aktivieren können.
Aufgabe |
Erforderliche Berechtigungen/Rollen |
Anmerkungen |
|---|---|---|
Erstellen Sie ein Klassifizierungsprofil |
SNOWFLAKE.CLASSIFICATION_ADMIN Datenbankrolle |
Informationen darüber, wie Sie diese Datenbankrolle anderen Rollen zuweisen können, finden Sie unter Verwenden von SNOWFLAKE-Datenbankrollen. |
CREATESNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE auf dem Schema |
Sie benötigen diese Berechtigung für das Schema, in dem Sie die Klassifizierungsprofilinstanz erstellen möchten. |
|
USAGE für Datenbank und Schema |
Sie benötigen Berechtigungen für das Schema, in dem Sie die Klassifizierungsprofilinstanz erstellen möchten. |
|
Festlegen des Klassifizierungsprofils für eine Datenbank/ein Schema |
Eine der folgenden Berechtigungen:
|
Standardmäßig verfügt der Eigentümer der Datenbank/des Schemas über die Berechtigung des Typ EXECUTE AUTO CLASSIFICATION dafür. |
Beliebige Berechtigung für die Datenbank des Schemas |
Wenn Sie ein Klassifizierungsprofil für ein Schema festlegen, benötigen Sie mindestens eine Berechtigung für die Datenbank, die dieses Schema enthält. |
|
Beliebige Berechtigung für Datenbank/Schema |
Sie benötigen mindestens eine Berechtigung für die Datenbank/das Schema, die/das die Tabelle enthält, die Sie automatisch klassifizieren möchten. Die Berechtigung des Typs EXECUTE AUTO CLASSIFICATION erfüllt diese Anforderung. |
|
Eine der folgenden Berechtigungen:
|
Informationen darüber, wie Sie anderen Rollen die Instanzrolle PRIVACY_USER zuweisen können, finden Sie unter Instanzrollen. |
|
APPLY TAG auf dem Konto |
||
Aufruf von Methoden auf einer Klassifizierungsprofilinstanz |
<classification_profile>!PRIVACY_USER-Instanzrolle |
Informationen darüber, wie Sie diese Instanzrolle anderen Rollen zuweisen können, finden Sie unter Instanzrollen. |
Klassifizierungsprofile auflisten |
<classification_profile>!PRIVACY_USER-Instanzrolle |
|
Klassifizierungsprofile löschen |
OWNERSHIP auf Klassifizierungsprofil-Instanz |
Ein Beispiel für die Gewährung dieser Berechtigungen und Datenbankrollen für die Rolle eines Data Engineers finden Sie unter Grundlegendes Beispiel: Automatisches Klassifizieren von Tabellen in einer Datenbank.
Beispiele¶
Grundlegendes Beispiel: Automatisches Klassifizieren von Tabellen in einer Datenbank
Beispiel: Verwendung einer Tag-Zuordnung und benutzerdefinierter Klassifikatoren
Beispiel: Testen eines Klassifizierungsprofils vor der Aktivierung der automatischen Klassifizierung
Grundlegendes Beispiel: Automatisches Klassifizieren von Tabellen in einer Datenbank¶
Führen Sie diese Schritte aus, um eine Tabelle in der Datenbank automatisch zu klassifizieren:
Admins geben den Data Engineers die Rollen und Berechtigungen, die nötig sind, um Tabellen in einer Datenbank automatisch zu klassifizieren.
USE ROLE ACCOUNTADMIN; GRANT USAGE ON DATABASE mydb TO ROLE data_engineer; GRANT EXECUTE AUTO CLASSIFICATION ON DATABASE mydb TO ROLE data_engineer; GRANT DATABASE ROLE SNOWFLAKE.CLASSIFICATION_ADMIN TO ROLE data_engineer; GRANT CREATE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE ON SCHEMA mydb.sch TO ROLE data_engineer; GRANT APPLY TAG ON ACCOUNT TO ROLE data_engineer;
Wechseln Sie in die Rolle des Data Engineers:
USE ROLE data_engineer;
Erstellen Sie das Klassifizierungsprofil als eine Instanz der Klasse CLASSIFICATION_PROFILE:
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE my_classification_profile( { 'minimum_object_age_for_classification_days': 0, 'maximum_classification_validity_days': 30, 'auto_tag': true, 'classify_views': true });
Rufen Sie die Methode DESCRIBE für die Instanz auf, um ihre Eigenschaften zu bestätigen:
SELECT my_classification_profile!DESCRIBE();
Legen Sie die Instanz des Klassifizierungsprofils für das Schema fest, die im Hintergrund den Prozess der Überwachung der Tabellen im Schema und deren automatische Klassifizierung auf sensible Daten startet.
ALTER DATABASE mydb SET CLASSIFICATION_PROFILE = 'mydb.sch.my_classification_profile';
Bemerkung
Zwischen dem Einstellen des Klassifizierungsprofils für das Schema und dem Beginn der Klassifizierung des Schemas durch Snowflake vergeht eine Stunde.
Nachdem Sie eine Stunde gewartet haben, rufen Sie die gespeicherte Prozedur SYSTEM$GET_CLASSIFICATION_RESULT auf, um die Ergebnisse der automatischen Klassifizierung zu erhalten.
CALL SYSTEM$GET_CLASSIFICATION_RESULT('mydb.sch.t1');
Beispiel: Verwendung einer Tag-Zuordnung und benutzerdefinierter Klassifikatoren¶
Admins geben den Data Engineers die Rollen und Berechtigungen, die nötig sind, um Tabellen in einer Datenbank automatisch zu klassifizieren und Tags für Spalten festzulegen.
Erstellen Sie das Klassifizierungsprofil.
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE my_classification_profile( { 'minimum_object_age_for_classification_days': 0, 'maximum_classification_validity_days': 30, 'auto_tag': true, 'classify_views': true });
Rufen Sie die Methode SET_TAG_MAP für die Instanz auf, um eine Tag-Zuordnung zum Klassifizierungsprofil hinzuzufügen. Dadurch können benutzerdefinierte Tags automatisch auf Spalten angewendet werden, die sensible Daten enthalten.
CALL my_classification_profile!SET_TAG_MAP( {'column_tag_map':[ { 'tag_name':'my_db.sch1.pii', 'tag_value':'sensitive', 'semantic_categories':['NAME'] }]});
Alternativ hätten Sie diese Zuordnung auch bei der Erstellung des Klassifizierungsprofils hinzufügen können.
Rufen Sie die Methode SET_CUSTOM_CLASSIFIERS auf, um benutzerdefinierte Klassifizierer zum Klassifizierungsprofil hinzuzufügen. So können sensible Daten automatisch mit vom Benutzer definierten semantischen und datenschutzrechtlichen Kategorien klassifiziert werden.
CALL my_classification_profile!set_custom_classifiers( { 'medical_codes': medical_codes!list(), 'finance_codes': finance_codes!list() });
Alternativ hätten Sie die benutzerdefinierten Klassifikatoren auch bei der Erstellung des Klassifizierungsprofils hinzufügen können.
Rufen Sie die Methode DESCRIBE für die Instanz auf, um zu bestätigen, dass die Tag-Map und die benutzerdefinierten Klassifikatoren dem Klassifizierungsprofil hinzugefügt wurden.
SELECT my_classification_profile!DESCRIBE();
Legen Sie die Instanz des Klassifizierungsprofils für die Datenbank fest.
ALTER DATABASE mydb SET CLASSIFICATION_PROFILE = 'mydb.sch.my_classification_profile';
Weisen Sie dem Tag
tag_db.sch.piieine Maskierungsrichtlinie zu, um die tagbasierte Maskierung zu aktivieren.ALTER TAG tag_db.sch.pii SET MASKING POLICY pii_mask;
Beispiel: Testen eines Klassifizierungsprofils vor der Aktivierung der automatischen Klassifizierung¶
Geben Sie als Administrator dem Data Engineer die Rollen und Berechtigungen, die er benötigt, um Tabellen in einem Schema automatisch zu klassifizieren und Tags für Spalten zu setzen.
Erstellen Sie das Klassifizierungsprofil mit einer Tag-Zuordnung und benutzerdefinierten Klassifikatoren:
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE my_classification_profile( { 'minimum_object_age_for_classification_days':0, 'auto_tag':true, 'tag_map': { 'column_tag_map':[ { 'tag_name':'tag_db.sch.pii', 'tag_value':'highly sensitive', 'semantic_categories':['NAME','NATIONAL_IDENTIFIER'] }, { 'tag_name':'tag_db.sch.pii', 'tag_value':'sensitive', 'semantic_categories':['EMAIL','MEDICAL_CODE'] } ] }, 'classify_views': true 'custom_classifiers': { 'medical_codes': medical_codes!list(), 'finance_codes': finance_codes!list() } } );
Rufen Sie die gespeicherte Prozedur SYSTEM$CLASSIFY auf, um die Tag-Zuordnungen in der Tabelle
table1zu testen, bevor Sie die automatische Klassifizierung aktivieren.CALL SYSTEM$CLASSIFY( 'db.sch.table1', 'db.sch.my_classification_profile' );
Der Schlüssel
tagsin der Ausgabe enthält die Details darüber, ob das Tag gesetzt wurde (truewenn gesetzt,falseandernfalls), den Namen des Tags, der gesetzt wurde, und den Wert des Tags:{ "classification_profile_config": { "classification_profile_name": "db.schema.my_classification_profile" }, "classification_result": { "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" }, { "tag_applied": true, "tag_name": "tag_db.sch.pii", "tag_value": "sensitive" } ] }, "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": "tag_db.sch.pii", "tag_value": "highly sensitive" } ] }, "valid_value_ratio": 1 } } }
Nachdem Sie sich vergewissert haben, dass die automatische Klassifizierung auf der Grundlage des Klassifizierungsprofils zum gewünschten Ergebnis führt, legen Sie die Instanz des Klassifizierungsprofils in der Datenbank fest.
ALTER DATABASE mydb SET CLASSIFICATION_PROFILE = 'mydb.sch.my_classification_profile';