Wie man Schemas von Benutzern in Redshift versteckt
Die Tätigkeit einer jeden Organisation ist heute mit der Verarbeitung einer großen Menge an Informationen verbunden, auf die viele Menschen zugreifen können. Folglich nimmt die Komplexität der Sicherstellung der Vertraulichkeit sensibler Daten zu, parallel zum Wachstum des Datenvolumens, das in Unternehmen verarbeitet wird. Daher ist der Schutz von Daten vor unbefugtem Zugriff, unbefugter Änderung oder einfach vor Zerstörung eine der Prioritäten. Data Masking ist eine der effektiven Methoden, um wichtige Informationen vor unbefugtem Zugriff zu schützen.
Die Hide Rows-Option von Data Sunrise Dynamic Masking ermöglicht es, bestimmte Regeln zu erstellen, um Teile der Daten für eine bestimmte Gruppe von Benutzern zu verbergen, dabei die allgemeine Informationsstruktur zu bewahren und denjenigen Teil der Daten verfügbar zu lassen, der für die Arbeit notwendig ist. Als Beispiel wird im Folgenden erläutert, wie dynamische Maskierungsregeln mit der Hide Rows-Option verwendet werden können, um spezifische Schemas in der Redshift-Datenbank vor einer Gruppe von Benutzern zu verbergen.
Die Informationen über die Schemas in der Datenbank sind in der Systemtabelle <your_database>.pg_catalog.pg_namespace enthalten. Durch Anlegen entsprechender Bedingungen für die Spalten dieser Tabelle können Sie einige der Schemas für bestimmte Benutzer verbergen.
Stellen Sie sich vor, Sie haben die Schemas „test1“ und „test2“ und möchten, dass nur diese 2 Schemas für „user1“, „user2“ und „user3“ sichtbar sind. Im Folgenden finden Sie eine Schritt-für-Schritt-Anleitung, wie Sie dieses Szenario umsetzen können:
- Wechseln Sie zu Masking –> Dynamic Masking Rules und klicken Sie dann auf Regel hinzufügen.
- Füllen Sie auf der Seite Regel-Details die erforderlichen Felder wie Name, Datenbanktyp und Instanz aus. Aktivieren Sie das Kontrollkästchen Ereignis im Speicher loggen, um Ereignisse im Abschnitt Maskierungsereignisse zu sehen. Andere Felder sind optional und können bei Bedarf ausgefüllt werden.
- Fügen Sie im Abschnitt Sitzungen filtern eine Bedingung hinzu, für die die Regel angewendet werden soll, z. B. DB Benutzer, wenn die Regel für bestimmte Benutzer gilt, oder DB Benutzergruppe für eine Gruppe von Benutzern innerhalb der Gruppe.
- Klicken Sie in den Maskierungs-Einstellungen auf Auswählen unter Tabellen zum Ausblenden von Zeilen, das Modalfenster “Spalten prüfen” wird angezeigt.
- Geben Sie im linken Teil des Modalfensters „Spalten prüfen“ (a) den Namen der Datenbank(en) ein, für die die Regel angewendet werden soll, (b) geben Sie „pg_catalog“ im Feld „Schemas finden“ ein, (c) geben Sie „pg_namespace“ im Feld „Tabellen finden“ ein und klicken Sie dann auf die Schaltfläche Filter. Der Filter wird auf das Menü „Objekt-Explorer“ angewendet, aktivieren Sie das Kontrollkästchen neben der Tabelle „pg_namespace“ und klicken Sie auf Fertig.
- Geben Sie im Spaltenbedingungsfeld nspname LIKE ‘%test%’ ein und speichern Sie die Regel.
- Verbinden Sie sich über einen Proxy mit der Redshift-Datenbank im Namen von „user1“, der in der Dynamic Masking-Regel angegeben ist.
- Beim Verbinden mit der Datenbank werden nur die Schemas „test1“ und „test2“ für diesen „user1“ sichtbar sein.
- Um alle Schemas außer dem öffentlichen vor „user3“ zu verstecken, geben Sie die folgende Bedingung an: nspowner = 1 und nspname = ‘public’.
- In diesem Fall wird nur das “public”-Schema für user3 sichtbar sein.
- Um alle Schemas zu verstecken, verwenden Sie die Bedingung nspowner ist NULL, was standardmäßig falsch ist.
In diesem Fall werden Benutzer, die in der DB-Benutzergruppe enthalten sind, beim Verbinden mit der Datenbank über einen Proxy überhaupt keine Schemas sehen.