Database
 sql >> Datenbank >  >> RDS >> Database

So maskieren Sie Cassandra mit IRI FieldShield

UPDATE:Q2’17 Hinweis:Die enthaltenen JDBC- und ODBC-Treiber und die ausstehende native JSON-Verarbeitung können die Verbindungen schneller und nahtloser machen als der unten gezeigte Ansatz. Y Sie können auch die Hadoop-Edition von IRI Voracity verwenden, um Daten in HDFS direkt zu maskieren. Daten, die auf die folgende Weise in eine Flat-File in HDFS exportiert werden, können auf der Feldebene aus dem FieldShield-Modul Voracity auf die gleiche Weise wie unten gezeigt über MapReduce2, Spark, Spark Stream, Storm oder Tez ohne zusätzliche Codierung maskiert werden.

UPDATE:Q3’19 :In IRI DarkShield sind jetzt native, sofort einsatzbereite Konnektoren für Cassandra und MongoDB verfügbar, die keine Export-/Maskierungs-/Importschritte erfordern und halb- und unstrukturierte Erfassungsdaten verarbeiten können. Wie FieldShield ist auch DarkShield in Abonnements der Voracity-Plattform verfügbar (inklusive). Siehe diesen Anleitungsartikel zum Suchen und Maskieren von PII, die in Cassandra NoSQL-DBs schweben. Wenn Sie daran interessiert sind, Cassandra mit synthetischen Testdaten zu füllen, lesen Sie diesen Artikel.

DataStax/Cassandra kann bestimmte Spalten nicht maskieren, um zu verhindern, dass nicht autorisierte Benutzer personenbezogene Daten (PII) sehen. In diesem Artikel zeigen wir, wie Sie Daten aus einer Cassandra-Datenbank in eine CSV-Datei exportieren und das Produkt IRI FieldShield (ebenfalls auf der IRI Voracity-Plattform verfügbar) verwenden, um die Daten in dieser CSV-Datei zu randomisieren, zu maskieren und zu verschlüsseln. Dann werden wir diese Daten aktualisiert und geschützt wieder in Cassandra importieren. Ein weiterer Artikel ist nach der Veröffentlichung der direkteren Verbindung von IRI zur Datenbank geplant.

In unserem Beispiel haben wir eine Tabelle mit Schülerinformationen in DataStax. Die Spalten sind:id_num (der Primärschlüssel), honors, semester_hours, socsecnum (Sozialversicherungsnummer) und user_id.

Um jeden Studenten zu de-identifizieren, werden wir seine semester_hours randomisieren, seine Socsecnum maskieren und den user_id-Wert verschlüsseln, damit die PII jedes Studenten geschützt sind.

Ungeschützte Daten in Cassandra

Für unsere Befehlszeilenbeispiele verwenden wir die DataStax Cassandra CQL-Shell.

Exportieren einer Cassandra-Tabelle in eine CSV-Datei

Führen Sie den folgenden Befehl in der Cassandra-CQL-Shell aus, um eine Cassandra-Tabelle in eine CSV-Datei zu exportieren:

COPY <Exporting Table> TO '<File Path to the CSV you exporting to>' WITH HEADER=TRUE;

Öffnen und Definieren der CSV-Quelle

  1. Suchen Sie in der oberen Symbolleiste der IRI Workbench-GUI für FieldShield (aufgebaut auf Eclipse) das FieldShield-Symbol und wählen Sie „New Protect Job“ aus, um den Assistenten auszuführen. Benennen Sie Ihre Jobdatei „CassShieldJob.fcl“ und klicken Sie auf „Weiter“.
  2. Klicken Sie auf „Datenquelle hinzufügen“ und dann auf „Durchsuchen“ zu der CSV-Datei, die Sie mit Ihrem Export erstellt haben. Klicken Sie dann auf „OK“.
  3. Klicken Sie auf „Metadaten entdecken“, benennen Sie die (wiederverwendbare Datendefinitionsdatei) „StudentsMeta.ddf“ und klicken Sie auf „Weiter“. Klicken Sie zur automatischen Erkennung auf „Ja“ und „Feldnamen aus Kopfzeile abrufen“, bevor Sie auf „OK“ und dann auf „Fertig stellen“ klicken.
  4. Ihre Felder sollten jetzt in der Datenquellenliste angezeigt werden. Klicken Sie auf „Weiter“.

Anwenden der Schutzmaßnahmen

  1. Klicken Sie auf „Datenziel hinzufügen“ und suchen Sie, um ein neues CSV-Dateiziel zu erstellen, das die geschützte Version der Daten enthält (oder um die Quelle zu überschreiben, verwenden Sie denselben Pfad/dieselbe Datei. Klicken Sie dann auf „Zielfeld Layout", um das Layout zu überprüfen und die Schutzmaßnahmen auf die Ausgabefelder anzuwenden. Es gibt zwei Listenfelder; das obere zeigt die Quellfelder und das untere die Zielfelder, auf die Sie das Feld "Schutzschilde" anwenden.
  2. Semesterstunden randomisieren: Wählen Sie den Feldnamen "semester_hours" im Zielbereich aus und klicken Sie auf "Feldschutz". Wählen Sie Zufallswertgenerierung und als Typ Ziffer aus. Legen Sie die zufällige minimale und maximale Größe auf 2 fest und klicken Sie auf OK.
  3. Socsecnum maskieren:Wählen Sie das Feld „Socsecnum“ aus und klicken Sie erneut auf „Feldschutz“. Wählen Sie Maskierung und wählen Sie die Standardoption USA SSN, um nur die letzten vier Ziffern der SSNs anzuzeigen. Klicken Sie auf „OK“.
  4. User_id verschlüsseln:Wählen Sie die user_id aus und klicken Sie erneut auf "Field Protection". Wählen Sie „Verschlüsselung und Entschlüsselung“ und „enc_fp_aes256_alphanum“ für die formaterhaltende Verschlüsselung aus. Geben Sie eine Passphrase (den Entschlüsselungsschlüssel) ein und geben Sie in das Feld „Ausschließen“ „User_“ ein, um zu verhindern, dass der User_-Teil unseres Benutzernamens verschlüsselt wird. Klicken Sie dann auf „Fertig stellen“.
  5. Die zu schützenden Felder sollten wie folgt aussehen:

Klicken Sie auf „OK“ und dann auf „Fertigstellen“, um das eigentliche (ausführbare Job-)Skript anzuzeigen, das für Sie erstellt wurde:

Führen Sie den Job in der IRI Workbench oder auf der Befehlszeile aus,

fieldshield /spec=CassShieldJob.fcl

Die von Ihnen erstellte CSV-Datei enthält die neuen maskierten und verschlüsselten Daten.

Importieren der geschützten Daten in Cassandra

Um die geänderten Daten wieder in Cassandra zu importieren, verwenden Sie den folgenden Befehl in der Cassandra CQL-Shell:

COPY <Table you are importing data to> (field1fromCSV, field2fromCSV, ...) FROM '<Path to CSV>';

Geschützte Daten in Cassandra

Einzelheiten zu den FieldShield-Funktionen finden Sie unter http://www.iri.com/products/fieldshield/technical-details.