Sensible Daten automatisch klassifizieren¶
Die automatische Klassifizierung sensibler Daten ist ein serverloses Feature, das die automatische Erkennung und Kennzeichnung sensibler Daten ermöglicht. Das Feature überwacht kontinuierlich Tabellen innerhalb einer bestimmten Datenbank und klassifiziert deren Spalten mit nativen und kundenspezifischen Klassifizierungskategorien.
Mit der automatischen Klassifizierung sensibler Daten können Dateningenieure und -verwalter Folgendes tun:
Zeigen Sie, wie die automatische Klassifizierung von Tabellen den internen Anforderungen an Governance und Compliance entspricht.
Stellen Sie sicher, dass sensible Daten ordnungsgemäß gekennzeichnet sind.
Stellen Sie sicher, dass die richtigen Zugriffssteuerungen vorhanden sind, um die sensiblen Daten zu schützen.
Erste Schritte¶
Der grundlegende Arbeitsablauf zur automatischen Klassifizierung sensibler Daten besteht aus den folgenden Schritten:
Erstellen Sie ein Klassifizierungsprofil, das steuert, wie oft sensible Daten in einer Datenbank automatisch klassifiziert werden, einschließlich der Frage, ob System-Tags nach der Klassifizierung automatisch angewendet werden sollen.
Optional können Sie das Klassifizierungsprofil verwenden, um benutzerdefinierte Tags den System-Tags zuzuordnen, sodass eine Spalte mit sensiblen Daten auf der Grundlage ihrer Klassifizierung mit einem benutzerdefinierten Tag verknüpft werden kann.
Fügen Sie optional einen benutzerdefinierten Klassifikator zum Klassifizierungsprofil hinzu, damit sensible Daten automatisch mit benutzerdefinierten semantischen und Datenschutzkategorien klassifiziert werden können.
Legen Sie das Klassifizierungsprofil für eine Datenbank fest, damit die Tabellen in dieser Datenbank automatisch klassifiziert werden.
Beispiele für einen durchgängigen Arbeitsablauf finden Sie unter Beispiele.
Über Klassifizierungsprofile¶
Ein Data Engineer erstellt ein Klassifizierungsprofil, indem er eine Instanz der CLASSIFICATION_PROFILE Klasse erstellt, um die Kriterien zu definieren, 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.
Wenn der 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, wenn unterschiedliche Klassifizierungskriterien für verschiedene Datenbanken festgelegt werden müssen.
Der Prozess der automatischen Klassifizierung von Daten erfordert den Zugriff auf die Rohdaten in der Tabelle. Die Rohdaten enthalten Tabellen, denen eine Maskierungsrichtlinie für eine Spalte zugewiesen wurde. Snowflake behält jedoch die Absicht bei, den Zugriff auf geschützte Daten zu regeln, indem eine interne Rolle zur automatischen Klassifizierung von Daten verwendet wird. Die interne Rolle kann auf Daten zugreifen, die durch eine Maskierungsrichtlinie geschützt sind, aber diese Rolle ist für Benutzer nicht zugänglich.
Ein Beispiel für die Verwendung des Befehls CREATE CLASSIFICATION_PROFILE zur Erstellung eines Klassifizierungsprofils finden Sie unter Beispiele.
Ausschließen von Objekten von der automatischen Klassifizierung sensibler Daten¶
Standardmäßig klassifiziert Snowflake automatisch alle sensiblen Daten in einer Datenbank, für die ein Klassifizierungsprofil festgelegt wurde. Sie können Snowflake so konfigurieren , dass Schemas, Tabellen oder Spalten von der automatischen Klassifizierung ausgeschlossen werden, sodass sie im Klassifizierungsprozess übersprungen werden.
Weitere Informationen dazu finden Sie unter Ausschließen von Daten von der automatischen Klassifizierung sensibler Daten.
Ü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.
Da benutzerdefinierte Objekt-Tags mit einer Maskierungsrichtlinie verknüpft sein können, können Sie eine Tag-Zuordnung verwenden, um die automatische Tag-basierte Maskierung zu aktivieren. Wenn Sie sich dafür entscheiden, Tags nach der Klassifizierung automatisch anzuwenden, können Sie den gesamten Prozess des Schutzes von Spalten mit einer Maskierungsrichtlinie auf Basis der Klassifizierung von Daten automatisieren. Wenn neue Daten zu einem Schema hinzugefügt werden, werden die Tag-basierten Maskierungsrichtlinien automatisch den Spalten zugewiesen, die sensible Daten enthalten.
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. Nachdem die Tag-Map mit einem Klassifizierungsprofil verknüpft ist und Sie Tabellen in einer Datenbank automatisch klassifizieren, wird das Tag den Spalten zugewiesen, die den semantischen Kategorien entsprechen.
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 Problembehandlung.
Implementieren der benutzerdefinierten Klassifizierung¶
Mit Snowflake können Sie benutzerdefinierte Klassifikatoren definieren, die eine benutzerdefinierte Logik verwenden, um sensible Daten zu identifizieren und zu klassifizieren. Sie können z. B. einen benutzerdefinierten Klassifikator erstellen, der einen regulären Ausdruck verwendet, um ICD-10-Codes zu identifizieren und sie als zur semantischen Kategorie ICD_10_CODES gehörend einzustufen.
Nachdem Sie einen benutzerdefinierten Klassifikator erstellt haben, können Sie ihn zum Klassifizierungsprofil hinzufügen, damit Snowflake die Daten automatisch auf der Grundlage seiner Logik klassifiziert. Sie können den benutzerdefinierten Klassifikator bei der Erstellung des Klassifizierungsprofils oder durch den Aufruf der Methode <classification_profile_name>!SET_CUSTOM_CLASSIFIERS hinzufügen.
Das Hinzufügen sowohl kundenspezifischer Klassifikatoren als auch einer Tag-Zuordnung zu Ihrem Klassifizierungsprofil ist eine leistungsstarke Governance-Lösung. Sie können Daten automatisch auf der Grundlage Ihres Wissens über sensible Daten klassifizieren und ein benutzerdefiniertes Tag anwenden, das Sie nachverfolgen können. Wenn Sie dieses benutzerdefinierte Tag zur Implementierung von Tag-basierter Maskierung verwenden, sind Ihre domänenspezifischen sensiblen Daten automatisch durch eine Maskierungsrichtlinie geschützt, wenn Daten einer Datenbank hinzugefügt werden.
Wichtig
Die automatische Klassifizierung speichert die Definition eines benutzerdefinierten Klassifikators, keine Referenz. Wenn Sie den benutzerdefinierten Klassifikator ändern, müssen Sie die Methode SET_CUSTOM_CLASSIFIERS verwenden, um das Klassifizierungsprofil mit der neuen Definition zu aktualisieren.
Festlegen eines Klassifizierungsprofils für eine Datenbank¶
Sie implementieren 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 automatische 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';
Klassifizieren von Ansichten¶
Standardmäßig werden bei der Klassifizierung sensibler Daten keine Daten in Ansichten berücksichtigt. Wenn Sie den Standard nicht ändern, werden nur Tabellen klassifiziert.
Das Klassifizieren von Ansichten ist unter Umständen kostspieliger als das Klassifizieren von Tabellen. Die zusätzlichen Kosten variieren je nach der Komplexität der Abfrage, mit der die Ansicht erstellt wurde. Bei materialisierten Ansichten fallen keine zusätzlichen Kosten an wie bei anderen Ansichten.
Der Schlüssel classify_views im Konfigurationsobjekt eines Klassifizierungsprofils bestimmt, ob Ansichten klassifiziert werden. Das folgende Klassifizierungsprofil nimmt Änderungen am Standard vor, sodass Ansichten klassifiziert werden:
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE
my_classification_profile(
{
'minimum_object_age_for_classification_days': 0,
'maximum_classification_validity_days': 30,
'classify_views': true
});
Sie können die Klassifizierung von Ansichten auch über die Methode SET_CLASSIFY_VIEWS aktivieren oder deaktivieren.
Bestimmen, welche Objekte durch die automatische Klassifizierung überwacht werden¶
Sie können bestimmen, welche Daten von der automatischen Klassifizierung sensibler Daten überwacht werden, indem Sie die Datenbanken und Schemas auflisten, die mit einem Klassifizierungsprofil verbunden sind. Wenn eine Datenbank oder ein Schema mit einem Klassifizierungsprofil verbunden ist, werden alle Tabellen und Ansichten in dieser Entität automatisch nach den im Profil definierten Kriterien klassifiziert.
Verwenden Sie die Funktion SYSTEM$SHOW_SENSITIVE_DATA_MONITORED_ENTITIES zur Auflistung der Datenbanken und Schemas, die mit einem Klassifizierungsprofil verbunden sind. Sie können nur Datenbanken, nur Schemas oder alle Datenbanken und Schemas auflisten. Um beispielsweise alle Datenbanken und Schemas aufzulisten, die mit einem Klassifizierungsprofil verbunden sind, führen Sie den folgenden Befehl aus:
SELECT SYSTEM$SHOW_SENSITIVE_DATA_MONITORED_ENTITIES();
Die Ausgabe listet den Namen der Datenbank oder des Schemas, den zugehörigen Typ und das Klassifizierungsprofil auf. Die Ausgabe könnte beispielsweise wie folgt aussehen:
[
{"name":"HR_DB","type":"DATABASE","profile_name":"GOV_DB.CLASSIFY_SCH.MY_CLASSIFICATION_PROFILE"},
{"name":"SALES_DB.SCH1","type":"SCHEMA","profile_name":"GOV_DB.CLASSIFY_SCH.TEST_PROFILE"}
]
Ergebnisse der automatischen Klassifizierung anzeigen¶
Sie können die Ergebnisse der automatischen Klassifizierung auf folgende Weise anzeigen:
Rufen Sie die gespeicherte SYSTEM$GET_CLASSIFICATION_RESULT-Prozedur auf. Beispiel:
CALL SYSTEM$GET_CLASSIFICATION_RESULT('mydb.sch.t1');
Sie können die Ergebnisse erst zurückgeben, wenn der Klassifizierung abgeschlossen ist. Der automatische Klassifizierungsprozess beginnt erst eine Stunde nach der Einstellung des Klassifizierungsprofils für die Datenbank.
Verwenden Sie eine Rolle, die die Datenbankrolle SNOWFLAKE.GOVERNANCE_VIEWER hat, um die Ansicht DATA_CLASSIFICATION_LATEST abzufragen. Beispiel:
SELECT * FROM snowflake.account_usage.data_classification_latest;
Die Ergebnisse werden möglicherweise erst drei Stunden nach Abschluss der Klassifizierung angezeigt.
Einschränkungen¶
Klassifizierungsprofile können nicht auf einem Leserkonto eingerichtet werden.
Es kann nur ein Klassifizierungsprofil für eine Datenbank oder ein Schema festgelegt werden.
Ein Klassifizierungsprofil kann nicht für mehr als 1.000 Datenbanken festgelegt werden.
Ein Klassifizierungsprofil kann nicht für mehr als 10.000 Schemas direkt festgelegt werden.
Einem Schema können maximal 100 Millionen Tabellen zugeordnet werden.
Sie können eine Tabelle nicht automatisch klassifizieren, wenn sie eines der folgenden Merkmale aufweist:
Mehr als 10.000 Spalten.
Eine Spalte mit einem Namen, der mehr als 255 Zeichen enthält.
Eine Spalte mit dem Zeichen
$im Namen.Stammt aus einer Freigabe.
Zugriffssteuerung¶
Dieser Abschnitt beschreibt die Berechtigungen und Rollen, mit denen Sie mit Klassifizierungsprofilen arbeiten und die automatische 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.
Kosten für die automatische Klassifizierung sensibler Daten¶
Die automatische Klassifizierung sensibler Daten verbraucht Credits, da sie serverlose Computeressourcen zur Klassifizierung von Tabellen in der Datenbank nutzt. Weitere Informationen zu den Preisen für diesen Verbrauch finden Sie in Tabelle 5 in der Snowflake Service Consumption Table.
Sie können Ansichten in den Schemas ACCOUNT_USAGE und ORGANIZATION_USAGE abfragen, um festzustellen, wie viel für die automatische Klassifizierung sensibler Daten ausgegeben wurde. Um den Credit-Verbrauch zu überwachen, fragen Sie die folgenden Ansichten ab:
- METERING_HISTORY-Ansicht (ACCOUNT_USAGE)
Ermöglicht es Ihnen, die stündlichen Kosten der automatischen Klassifizierung abzurufen, indem Sie sich auf
SENSITIVE_DATA_CLASSIFICATIONin der SpalteSERVICE_TYPEkonzentrieren. Beispiel:SELECT service_type, start_time, end_time, entity_id, name, credits_used_compute, credits_used_cloud_services, credits_used, budget_id FROM snowflake.account_usage.metering_history WHERE service_type = 'SENSITIVE_DATA_CLASSIFICATION';
- METERING_DAILY_HISTORY anzeigen (ACCOUNT_USAGE und ORGANIZATION_USAGE)
Ermöglicht es Ihnen, die täglichen Kosten der automatischen Klassifizierung abzurufen, indem Sie sich auf
SENSITIVE_DATA_CLASSIFICATIONin der SpalteSERVICE_TYPEkonzentrieren. Beispiel:SELECT service_type, usage_date, credits_used_compute, credits_used_cloud_services, credits_used FROM snowflake.account_usage.metering_daily_history WHERE service_type = 'SENSITIVE_DATA_CLASSIFICATION';
- USAGE_IN_CURRENCY_DAILY (ORGANIZATION_USAGE)
Ermöglicht es Ihnen, die täglichen Kosten der automatischen Klassifizierung abzurufen, indem Sie sich auf
SENSITIVE_DATA_CLASSIFICATIONin der SpalteSERVICE_TYPEkonzentrieren. Verwenden Sie diese Ansicht, um die Kosten in Währung zu ermitteln, nicht in Credits.
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';
Problembehandlung¶
Der einfachste Weg, mit der Fehlersuche bei einer nicht klassifizierten Tabelle zu beginnen, ist die direkte Abfrage der Tabelle (z. B. SELECT * FROM my_table). Wenn eine Tabelle nicht abgefragt werden kann, kann sie nicht automatisch klassifiziert werden.
Wenn ein Objekt nicht automatisch klassifiziert werden kann, protokolliert Snowflake ein Ereignis in einer Ereignistabelle. Standardmäßig wird das Ereignis in der Ereignistabelle auf Kontoebene protokolliert. Wenn Sie eine Ereignistabelle für die Datenbank des fehlgeschlagenen Objekts definiert haben, wird das Ereignis stattdessen dort protokolliert.
Im Allgemeinen gibt es eine Verzögerung, bevor Snowflake erneut versucht, das Objekt zu klassifizieren. Jeder weitere fehlgeschlagene Versuch wird in der Ereignistabelle protokolliert. Dieser Prozess des Verzögerns und Wiederholens wird so lange fortgesetzt, bis das Objekt korrigiert oder aus der automatischen Klassifizierung entfernt wurde.
Bemerkung
Um unnötige Kosten zu vermeiden, wartet Snowflake bei einigen Fehlern, wie z. B. Timeouts, länger bis zur erneuten Klassifizierung. Bei diesen Timeout-Fehlern versucht Snowflake die Klassifizierung erst dann erneut, wenn alle Objekte neu klassifiziert wurden. Der Zeitplan, nach dem Objekte neu klassifiziert werden, wird durch den maximum_classification_validity_days-Schlüssel des Klassifizierungsprofils bestimmt.
Wenn Klassifizierungsereignisse nicht protokolliert werden sollen, legen Sie für den Kontoparameter ENABLE_AUTOMATIC_SENSITIVE_DATA_CLASSIFICATION_LOG den Wert FALSE fest.
Auflistung allgemeiner Fehler¶
Die folgende Abfrage der Ereignistabelle gibt allgemeine Fehler im Zusammenhang mit der automatischen Klassifizierung zurück:
SELECT
record_type,
record:severity_text::string log_level,
parse_json(value) error_message
FROM <event_db>.<event_schema>.<event_table>
WHERE record_type='LOG' and scope:name ='snow.automatic_sensitive_data_classification'
ORDER BY log_level;
Eine Teilmenge der möglichen Fehlermeldungen, die von dieser Abfrage zurückgegeben werden, finden Sie unter Tag-bezogene Fehlermeldungen.
Auflistung der Klassifizierungsfehler auf Objektebene¶
Die folgende Abfrage der Ereignistabelle gibt Fehler im Zusammenhang mit der Klassifizierung eines bestimmten Objekts zurück. Sie gibt zum Beispiel Fehler zurück, die aufgetreten sind, als Snowflake versucht hat, eine bestimmte Tabelle zu klassifizieren.
SELECT
RECORD_ATTRIBUTES:"object_name"::string AS object_name,
parse_json(value):"error_message" error_message,
PARSE_JSON(VALUE):"profile_name" classification_profile_name,
timestamp,
FROM <event_db>.<event_schema>.<event_table>
WHERE record_type='LOG'
AND scope:name ='snow.automatic_sensitive_data_classification'
AND RECORD_ATTRIBUTES:"event_type" = 'CLASSIFICATION_ERROR'
ORDER BY TIMESTAMP DESC;