Implementierung von Differential Privacy¶
Dieses Thema enthält Informationen für den Datenanbieter, der Differential Privacy (differentielle Privatsphäre) für sein Konto implementiert.
Bei der Implementierung von Differential Privacy (differentiellen Privatsphäre) für Ihr Datenset müssen Sie drei Schlüsselkonzepte berücksichtigen:
Datenschutzrichtlinien. Eine Tabelle oder Ansicht ist erst dann durch Differential Privacy (differentielle Privatsphäre) geschützt, wenn Sie ihr eine Datenschutzrichtlinie zuweisen. Eine Tabelle oder Ansicht mit einer Datenschutzrichtlinie gilt als datenschutzgeschützt.
Datenschutzbudgets. Wenn Analysten eine datenschutzgeschützte Tabelle abfragen, können Sie die Datenschutzbudgets verwalten, die mit diesem Analysten verbunden sind.
Datenschutzbereiche. Sie sollten einen Datenschutzbereich für Fakten- und Dimensionsspalten in einer datenschutzgeschützten Tabelle oder Ansicht definieren.
Einschränkungen
Sie können nicht derselben Tabelle oder Ansicht eine Datenschutzrichtlinie und eine Aggregationsrichtlinie oder Maskierungsrichtlinie zuweisen.
Abgesehen von der Abfrage des Rauschintervalls <label-diff_privacy_understand_results> wissen Analysten nicht, ob sie eine datenschutzgeschützte Tabelle abfragen. Daher sollte der Datenanbieter sie darüber informieren, dass die Abfrageergebnisse Rauschen enthalten.
Ein Datenanbieter kann den Datenschutzverlust nicht überwachen, der entsteht, wenn Analysten Abfragen in einem anderen Konto durchführen.
Das Anwenden mehrerer Datenschutzrichtlinien auf eine Tabelle wird derzeit nicht unterstützt. Aus diesem Grund ist es nicht möglich, mehr als eine Entität mit Differential Privacy (differentiellem Datenschutz) auf Entitätsebene in einer einzigen Tabelle zu schützen.
Abfragen auf replizierte oder geklonte Tabellen, bei denen eine Datenschutzrichtlinie mit einem Entitätsschlüssel verknüpft ist, sind derzeit blockiert.
Allgemeine Informationen zum Datenschutz auf Entitätsebene¶
Eine Entität bezieht sich auf eine Klasse von Datensubjekten, die geschützt werden sollten, z. B. Personen, Organisationen oder Speicherorte. Wenn jede einzelne Entität nur in einer Zeile auftauchen würde, wäre der Datenschutz auf Zeilenebene ausreichend, um ihre Identität zu schützen. Wenn jedoch Daten, die zu einer einzelnen Entität gehören, in mehreren Zeilen auftauchen (z. B. in Transaktionsdaten), muss differentielle Privatsphäre für den Datenschutz auf Entitätsebene konfiguriert werden, um jede Entität korrekt zu schützen.
Um den Datenschutz auf Entitätsebene zu gewährleisten, können Sie in Snowflake festlegen, welches Attribut zur Identifizierung einer Entität verwendet werden kann (ein Entitätsschlüssel). Damit kann Snowflake alle Datensätze identifizieren, die zu einer bestimmten Entität innerhalb eines Datensets gehören. Wenn zum Beispiel die Spalte email
als der Entitätsschlüssel definiert ist, kann Snowflake feststellen, dass alle Datensätze, in denen email=joe.smith@example.com
vorkommt, zur selben Entität gehören.
In den meisten Fällen wird der Datenschutz auf Entitätsebene dem Datenschutz auf Zeilenebene vorgezogen, der Datenschutz auf Zeilenebene kann für eine Tabelle jedoch gut geeignet sein, wenn Folgendes zutrifft:
Keine Spalte in der Tabelle identifiziert Entitäten eindeutig. Der Datenschutz auf Entitätsebene erfordert eine identifizierende Spalte.
Jede einzelne Entität wird nur einmal angezeigt.
Die Tabelle wird nicht in einer Verknüpfung verwendet. Verknüpfungen mit Tabellen, die durch Datenschutz auf Zeilenebene geschützt sind, sind möglich, haben aber Beschränkungen.
Sie können wählen, ob Sie den Datenschutz auf Entitäts- oder Zeilenebene implementieren möchten, wenn Sie einer Tabelle oder Ansicht eine Datenschutzrichtlinie zuweisen. Weitere Informationen dazu finden Sie unter Datenschutzrichtlinie zuweisen. Wenn Sie sich für die Implementierung des Datenschutzes auf Entitätsebene entscheiden, müssen die Daten auch die strukturellen Anforderungen von <label-diff_privacy_admin_entity_reqs> erfüllen, um sicherzustellen, dass der Entitätsbezeichner korrekt verwendet wird.
Tipp
Wenn Sie zwei getrennte Tabellen mit derselben Datenschutzrichtlinie schützen möchten, die jedoch nicht dieselben Entitätsschlüsselwerten haben, können Sie eine neue Tabelle erstellen, die die beiden identifizierenden Spalten zuordnet, eine Ansicht erstellen, die zwei der Tabellen verknüpft, und die Datenschutzrichtlinie auf die Ansicht anwenden. Sie könnten diese Strategie zum Beispiel verwenden, wenn der Entitätsschlüssel in einer Tabelle email
und in einer anderen Tabelle user_id
lautet, sich aber beide auf die gleichen Entitäten beziehen.
Strukturelle Anforderungen an den Datenschutz auf Entitätsebene¶
Die Struktur der Daten, die durch Differential Privacy (differentielle Privatsphäre) auf Entitätsebene geschützt werden, muss bestimmten Anforderungen entsprechen. Diese Anforderungen müssen erfüllt werden, damit Snowflake den mit Entitäten verbundenen Datenschutzverlust genau verfolgen kann.
Sie sollten Ihre Daten so strukturieren, dass sie diese Anforderungen erfüllen, bevor Sie Datenschutzrichtlinien zur Umsetzung der differentiellen Privatsphäre anwenden. Snowflake kann nicht feststellen, ob die Daten diesen strukturellen Anforderungen entsprechen, da sie die Bedeutung der Daten und nicht die Implementierung der differentiellen Privatsphäre betreffen. Wenn zum Beispiel die Entitätsschlüssel für zwei verschiedene Tabellen beide auf die Spalte user_id
eingestellt sind, aber eine der Spalten Werte für einen numerischen Bezeichner enthält, während die andere Spalte E-Mail-Adressen enthält, kann Snowflake die Entitätsinformationen der beiden Tabellen nicht korrekt verknüpfen.
Um den Datenschutz auf Entitätsebene zu gewährleisten, müssen Ihre Daten die folgenden Anforderungen erfüllen:
Jede Zeile gehört nur zu einer Person innerhalb einer Entität – Nehmen wir als Beispiel an, eine Tabelle enthält Benutzer und Haushalte. Wenn die zu schützende Entität Benutzer sind, kann die Tabelle nicht so strukturiert werden, dass jede Zeile ein Haushalt ist und alle Benutzer in diesem Haushalt in anderen Spalten erfasst werden. Sie müssten die Tabelle so umstrukturieren, dass es nur eine Zeile pro Benutzer gibt, mit einer Spalte
household_id
, die angibt, zu welchem Haushalt ein Benutzer gehört.Konsistenter Entitätsbezeichner in allen Tabellen – Sie können eine Datenschutzrichtlinie erstellen, die den Schutzbedarf für eine einzelne Entität darstellt, und diese Richtlinie dann auf mehrere Tabellen anwenden, die Informationen über die Entität enthalten. Wenn Sie die Datenschutzrichtlinie den einzelnen Tabellen zuordnen, müssen Sie die Spalte angeben, die die Entität eindeutig identifiziert (d. h. den Entitätsschlüssel). Der Wert, der eine Entität innerhalb dieser Schlüsselspalten eindeutig identifiziert, muss derselbe sein. Nehmen wir zum Beispiel an, dass die Spalte
email
der Schlüssel für zwei Tabellen ist, die Informationen über eine Entität enthalten. Wenn die E-Mail-Adresse einer Entität in einer Tabellejoe@company.com
ist, muss die E-Mail-Adresse in der anderen Tabelle ebenfallsjoe@company.com
sein.Entitätsbezeichner in allen Tabellen – Obwohl es nicht erforderlich ist, den Datenschutz auf Entitätsebene zu implementieren, können Sie es Analysten ermöglichen, das Rauschen in Abfrageverknüpfungen zu minimieren, indem Sie den Entitätsbezeichner in alle Tabellen aufnehmen, die sich auf eine Entität beziehen. In manchen Fällen müssen Sie die Spalte mit dem Entitätsschlüssel denormalisieren, um diese Anforderung zu erfüllen. Nehmen wir zum Beispiel an, Sie hätten die folgenden Tabellen, deren Entität Kunden sind:
Tabelle
Beschreibung
customer
Kundenverzeichnis, wobei jede Zeile ein Kunde ist und eine
customer_id
hat.transactions
Kundentransaktionen, wobei jede Zeile eine Transaktion ist und eine
transaction_id
hat. Jeder Kunde kann mehrere Transaktionen haben.transaction_lines
Eindeutige Element, die in einer Transaktion gekauft wurden. Es kann mehrere Zeilen in einer Transaktion geben.
Gemäß den bewährten Verfahren für die Normalisierung würde die Tabelle
transaction_lines
dietransaction_id
, aber nicht diecustomer_id
enthalten. Die Tabelletransaction_lines
wäre mit der Tabelletransactions
verknüpft, die wiederum mit der Tabellecustomers
übercustomer_id
verknüpft werden könnte.Für die differentielle Privatsphäre möchten Sie jedoch wahrscheinlich die Daten für den Analysten optimieren, indem Sie den Bezeichner
customer_id
zur Tabelletransaction_lines
hinzufügen. Dies ermöglicht es dem Analysten, das Rauschen zu minimieren, indem ercustomer_id
in den Verknüpfungsschlüssel einbezieht, wenn er die Tabelletransaction_lines
mit einer anderen Tabelle verbindet.
Interaktionen mit Snowflake-Features¶
In diesem Abschnitt wird erläutert, wie die folgenden Objekte differentieller Privatsphäre mit anderen Features von Snowflake zusammenwirken. Er erörtert die Auswirkungen auf Datenschutzrichtlinien, Datenschutzbudgets und Datenbereichen.
Datenfreigabe (Data Sharing)¶
Sichere Ansichten und Tabellen mit einer Datenschutzrichtlinie sind durch Differential Privacy (differentielle Privatsphäre) geschützt, wenn sie einer Freigabe hinzugefügt werden. Ungesicherte Ansichten sind nicht durch Datenschutzrichtlinien geschützt, wenn sie über eine Freigabe abgefragt werden.
Replikation¶
Hinweise zu Replikation von Datenschutzrichtlinien und datenschutzgeschützten Tabellen und Ansichten finden Sie unter Datenschutzrichtlinien.
Bemerkung
Es gibt derzeit eine Beschränkung bei der Abfrage von replizierten Tabellen, bei denen eine Datenschutzrichtlinie mit einem Entitätsschlüssel verknüpft ist. Abfragen auf diese Tabellen sind blockiert, bis die Beschränkung aufgehoben wird.
Cloud-übergreifende automatische Ausführung¶
Beachten Sie Folgendes, wenn Sie Cloud-übergreifende automatische Ausführung zur Replikation eines Datenprodukts verwenden:
Administratoren des Kontos, auf das das Datenprodukt repliziert wurde, können das Datenschutzbudget nicht anpassen.
Administratoren können nicht mit einem einzigen Konto den in allen Regionen entstandenen Datenschutzverlust anzeigen.
Klonen¶
Zu den Auswirkungen des Klonens von datenschutzgeschützten Tabellen und Ansichten siehe Klonen und Differential Privacy (differentielle Privatsphäre).
Bemerkung
Es gibt derzeit eine Beschränkung bei der Abfrage von geklonten Tabellen, bei denen eine Datenschutzrichtlinie mit einem Entitätsschlüssel verknüpft ist. Abfragen auf diese Tabellen sind blockiert, bis die Beschränkung aufgehoben wird.
Ansichten, die auf einem datenschutzgeschützte Basisobjekt aufbauen¶
Sie können eine Ansicht auf eine datenschutzrechtlich geschützte Tabelle oder Ansicht erstellen. Die Datenschutzbereiche der Basistabelle oder Ansicht werden jedoch nicht vererbt. Beachten Sie daher Folgendes:
Die Datenschutzbereiche müssen auf die Spalten der neuen Ansicht eingestellt werden.
Die Anpassung des Datenschutzbereichs der Basistabelle hat keine Auswirkungen auf die Datenschutzbereiche der darauf aufbauenden Ansicht.
Materialisierte Ansichten¶
Sie können einer materialisierten Ansicht eine Datenschutzrichtlinie zuweisen, damit sie datenschutzgeschützt ist.
Weitere Wechselwirkungen zwischen Datenschutzrichtlinien und materialisierten Ansichten sind:
Sie können keine materialisierte Ansicht erstellen, die auf einer datenschutzgeschützten Tabelle oder Ansicht basiert.
Sie können einer Tabelle keine Datenschutzrichtlinie zuweisen, wenn sie als Basistabelle einer materialisierten Ansicht referenziert wird.
UDFs¶
Analysten können keine benutzerdefinierte Funktion verwenden, um eine datenschutzgeschützte Tabelle abzufragen.
Streams¶
Sie können keinen Stream abfragen, der auf einer datenschutzgeschützten Tabelle basiert.
Sie können einem Stream keine Datenschutzrichtlinie zuweisen.
Andere Richtlinien¶
Die Datenschutzrichtlinien interagieren auf folgende Weise mit anderen Snowflake-Richtlinien:
- Maskierungsrichtlinien
Sie können nicht derselben Tabelle oder Ansicht eine Datenschutzrichtlinie und eine Maskierungsrichtlinie zuweisen.
- Zeilenzugriffsrichtlinien
Zeilenzugriffsrichtlinien haben Vorrang vor einer Datenschutzrichtlinie. Wenn eine Zeile durch die Zeilenzugriffsrichtlinie gesperrt ist, wird sie nicht in die Ergebnisse der Abfrage mit differentieller Privatsphäre aufgenommen.
- Projektionsrichtlinien
Der gleichzeitige Schutz einer Tabelle mit einer Datenschutzrichtlinie und einer ihrer Spalten mit einer Projektionsrichtlinie wird derzeit nicht unterstützt. Auch wenn Sie die Richtlinien auf diese Weise zuweisen können, schlagen Abfragen auf die Tabelle fehl.
- Aggregationsrichtlinien
Sie können nicht derselben Tabelle oder Ansicht eine Datenschutzrichtlinie und eine Aggregationsrichtlinie zuweisen.
Dynamische Tabellen¶
Sie können keine dynamische Tabelle erstellen, wenn die referenzierte Quelltabelle datenschutzgeschützt ist.
Sie können einer Tabelle, die von einer bestehenden dynamischen Tabelle referenziert wird, eine Datenschutzrichtlinie zuweisen. Sobald die Richtlinie zugewiesen ist, wird die dynamische Tabelle jedoch nicht mehr aktualisiert.
Externe Tabellen¶
Sie können einer externen Tabelle eine Datenschutzrichtlinie zuweisen. Wenn ein Analyst versucht, eine VARIANT-Spalte zu aggregieren, schlägt die Abfrage fehl. Wenn ein Analyst jedoch versucht, eine virtuelle Spalte zu aggregieren, ist dies erfolgreich.
Time Travel¶
Wenn für Time Travel eine frühere Version einer Tabelle als neue Tabelle kopiert wird, wird die aktuelle Version eines Datenschutzbereichs für die Tabelle verwendet, da Snowflake keine früheren Versionen des Datenschutzbereichs in Tabellenmetadaten speichert.