Die Wahrung der Privatsphäre der Kundendaten, der Schutz vor dem Verlust geistigen Eigentums und die Einhaltung von Datenschutzgesetzen sind wesentliche Ziele heutiger Unternehmen. Um Daten vor Sicherheitsbedrohungen, Schwachstellen innerhalb des Unternehmens, Schadsoftware oder Cyberkriminalität zu schützen, verschlüsseln Unternehmen ihre Daten zunehmend. Sie können jedoch die serverseitige Verschlüsselung aktivieren Amazon Simple Storage-Service (Amazon S3) bevorzugen Sie möglicherweise die Verwaltung Ihrer eigenen Verschlüsselungsschlüssel. Amazon Schlüsselverwaltungsdienst (AWS KMS) erleichtert das Erstellen, Rotieren und Deaktivieren kryptografischer Schlüssel für eine Vielzahl von AWS-Diensten, darunter über Ihren Data Lake in Amazon S3.
AWS Lake-Formation ist ein Komplettservice zum Aufbau und zur Verwaltung Ihres Data Lake. Zu den zahlreichen Funktionen gehören das Erkennen und Katalogisieren von Datenquellen, das Einrichten von Transformationsjobs, das Konfigurieren fein abgestufter Datenzugriffs- und Sicherheitsrichtlinien sowie das Überwachen und Kontrollieren des Zugriffs von Data-Lake-Konsumenten. Sie können auch Sicherheit auf Spaltenebene bereitstellen, was eine zwingende Funktion ist, wenn Sie personenbezogene Daten (PII) schützen möchten.
Die Verwendung von AWS KMS mit Lake Formation erfordert mehrere Schritte, die wir in diesem Beitrag besprechen. Mit Lake Formation erstellen wir eine Komplettlösung für die Verarbeitung verschlüsselter Daten mithilfe kundenverwalteter Schlüssel. Amazonas Athena, AWS-Kleberund AWS KMS. Wir verwenden einen über Lake Formation registrierten S3-Bucket, der nur verschlüsselte Daten mit vom Kunden verwalteten Schlüsseln akzeptiert. Darüber hinaus zeigen wir, wie der Zugriff auf PII-Daten für Datenanalyse-Stakeholder einfach eingeschränkt werden kann.
Um die Lösung zu demonstrieren, laden wir ein verschlüsseltes Dokument in den S3-Bucket hoch und führen Datentransformationen mit AWS Glue durch. Die verarbeiteten Daten werden verschlüsselt in Amazon S3 zurückgespeichert. Wir haben diese Lösung mit automatisiert AWS CloudFormation eine End-to-End-Bereitstellung von Data Lakes mit Unterstützung für Verschlüsselung zu haben.
Lösungsüberblick
Wir verwenden AWS CloudFormation, um die Datentransformationspipeline bereitzustellen und alle erforderlichen Konfigurationen zu erläutern, um eine End-to-End-Verschlüsselung Ihrer Daten in einem Data Lake zu erreichen.
Das folgende Diagramm zeigt eine generische Infrastruktur eines serverlosen Datensees, erweitert durch Verschlüsselung. Transformationen wie das Entfernen doppelter oder fehlerhafter Daten sind erforderlich. Anschließend möchten wir die Daten automatisch katalogisieren, um sie mit unseren Verbrauchern zu verwenden (durch SQL-Abfragen, Analyse-Dashboards oder maschinelle Lerndienste).
Das reproduzierbare Muster zur Unterstützung der Verschlüsselung mit vom Kunden verwalteten Schlüsseln erfordert die folgenden Schritte:
- Konfigurieren Sie den S3-Bucket für die Verwendung der serverseitigen Verschlüsselung.
- Richten Sie eine KMS-Schlüsselrichtlinie ein, um dies zu ermöglichen AWS Identity and Access Management and (IAM)-Rolle für Lake Formation, um den Schlüssel für die Verschlüsselung zu verwenden.
- Erstellen Sie die AWS Glue-Sicherheitskonfiguration, um die Schlüssel anzugeben, die für die Verschlüsselung mit AWS Glue verwendet werden sollen.
Voraussetzungen:
Bevor Sie beginnen, erfüllen Sie die folgenden Voraussetzungen:
- Melden Sie sich bei der an AWS-Managementkonsole und wählen Sie die Region USA Ost (Nord-Virginia) für diese Beispielbereitstellung aus.
- Stellen Sie sicher, dass in Lake Formation die Administratoren eingerichtet sind und dass die Standardberechtigungen für alle neu erstellten Datenbanken und Tabellen über Lake Formation laufen.
Stellen Sie die Lösung bereit
Führen Sie die folgenden Schritte aus, um die Lösung bereitzustellen:
- Wählen Sie in der Lake Formation-Konsole aus Fügen Sie Administratoren hinzu.
- Fügen Sie Ihre aktuelle Rolle und Ihren Benutzer als Administrator hinzu.
- Im Navigationsbereich unter Datenkatalog, wählen Einstellungen .
- Deaktivieren Verwenden Sie für neue Datenbanken nur den IAM-Zugriff und Verwenden Sie nur die IAM-Zugriffssteuerung für neue Tabellen in neuen Datenbanken.
Dadurch wird sichergestellt, dass sowohl IAM- als auch Lake Formation-Berechtigungsmodule verwendet werden.
- Auswählen Speichern.
- Laden Sie den Inhalt hier herunter GitHub-Repository. Das Repo sollte die folgenden Dateien enthalten:
- Die Rohdaten-Beispieldatei data.json
- Das AWS Glue-Skriptbeispiel script.py
- Die CloudFormation-Vorlage „lakeformation_encryption_demo.yaml“.
- Erstellen Sie einen S3-Bucket in us-east-1 und laden Sie das AWS Glue-Skript hoch.
- Notieren Sie den Skriptpfad, der als Parameter für den CloudFormation-Stack verwendet werden soll.
Sie stellen nun den CloudFormation-Stack bereit.
- Auswählen
Stack starten:
- Belassen Sie den Standardspeicherort für die Vorlage und wählen Sie Weiter.
- Auf dem Geben Sie die Stapeldetails an Geben Sie auf der Seite einen Stack-Namen ein.
- Aussichten für GlueJobScriptBucketPathGeben Sie den Bucket ein, der das AWS Glue-Skript enthält.
- Aussichten für DataLakeBucketGeben Sie den Namen des Buckets ein, den der Stack erstellt.
- Auf dem Konfigurieren Sie die Stapeloptionen Seite wählen Weiter.
- Auf dem Bewertung Aktivieren Sie auf der Seite die Kontrollkästchen.
- Auswählen Stapel erstellen.
Zu diesem Zeitpunkt haben Sie erfolgreich die Ressourcen für die Data Lake-Lösung erstellt, die die End-to-End-Verschlüsselung unterstützt.
Der Stack stellt einen S3-Bucket bereit, in den Sie die Datei hochladen, und registriert diesen Bucket in Lake Formation. Ein AWS Glue-Job wandelt die Daten in das Parquet-Format um und ein AWS Glue-Crawler erkennt das Schema der verarbeiteten Daten. Darüber hinaus stellt der Stack alle AWS KMS-Ressourcen bereit, die wir im nächsten Abschnitt ausführlich beschreiben.
Was passiert im Hintergrund?
In diesem Abschnitt beschreiben wir den Verschlüsselungs-/Entschlüsselungsprozess detaillierter. Wir sprechen insbesondere darüber, wie verschlüsselte Daten in den S3-Bucket hochgeladen werden und welche Rolle die AWS Glue-Sicherheitskonfiguration dabei spielt, Glue-Jobs und Crawler für die Verwendung eines bestimmten KMS-Schlüssels zu konfigurieren.
KMS-Schlüssel
Wie im folgenden Screenshot gezeigt, ermöglicht die KMS-Schlüsselrichtlinie den Zugriff für mehrere IAM-Rollen.
See-Formations-Demo-Rolle: Lake Formation ist der zentrale Dienst, der den Zugriff auf die Daten verwaltet. Damit der Lake Formation-Dienst den KMS-Schlüssel verwenden kann, fügen wir der Schlüsselrichtlinie, die in dieser Lösung verwendet wird, die IAM-Rolle hinzu, die zum Registrieren des S3-Buckets bei Lake Formation verwendet wird.
demo-lake-formation-glue-job-role: Die AWS Glue-Jobrolle muss nach der Ausführung des ETL-Jobs auch den KMS-Schlüssel verwenden, um die Ausgabedaten zu verschlüsseln.
demo-lake-formation-glue-crawler-role: Schließlich verwendet der AWS Glue-Crawler den KMS-Schlüssel, um die Daten zu entschlüsseln und das Schema der Daten abzuleiten.
Erfahren Sie mehr über die Registrierung eines S3-Standorts bei Lake Formation im AWS-Dokumentation.
Amazon S3-Speicher lädt nur verschlüsselte Daten hoch
Der Data Lake S3-Bucket verfügt über eine Bucket-Richtlinie, die die Verschlüsselung aller Daten erzwingt, die mit dem KMS-Schlüssel in den Bucket hochgeladen werden. Dies ermöglicht es jedem Benutzer auch, seine eigenen KMS-Schlüssel zum Verschlüsseln der Daten zu verwenden. Darüber hinaus können Teams innerhalb einer Organisation beim Hochladen der Daten unterschiedliche Schlüssel verwenden, was die Trennung des Zugriffs innerhalb einer Organisation unterstützt.
Der folgende Screenshot zeigt die über den CloudFormation-Stack implementierte S3-Bucket-Richtlinie. Die Richtlinie verweigert Amazon S3 Put-API-Aufrufe für Objekte, die nicht mit AWS KMS verschlüsselt sind.
AWS Glue-Sicherheitskonfiguration
Eine AWS Glue-Sicherheitskonfiguration enthält die Eigenschaften, die zum Lesen und Schreiben verschlüsselter Daten erforderlich sind. Um alle AWS-Sicherheitskonfigurationen zu erstellen und anzuzeigen, wählen Sie in der AWS Glue-Konsole Sicherheitskonfigurationen im Navigationsbereich.
Dem AWS Glue-Job und dem Crawler wurde eine Sicherheitskonfiguration hinzugefügt, um zu konfigurieren, welchen Verschlüsselungsschlüssel AWS Glue beim Ausführen eines Jobs oder Crawlers verwenden soll.
Testen Sie die Lösung
In diesem Abschnitt gehen wir die Schritte der End-to-End-Verschlüsselungspipeline durch:
- Laden Sie Beispieldaten auf Amazon S3 hoch.
- Führen Sie den AWS Glue-Job aus.
- Erteilen Sie dem AWS Glue-Crawler Berechtigungen für den Amazon S3-Standort und führen Sie den Crawler aus.
- Richten Sie Berechtigungen für die neue Rolle ein, um die neue Tabelle abzufragen.
- Führen Sie eine Athena-Abfrage aus.
Laden Sie Beispieldaten auf Amazon S3 hoch
Verwenden Sie den folgenden Befehl, um eine Beispieldatei auf Amazon S3 hochzuladen:
Aussichten für <LAKE_FORMATION_KMS_DATA_KEY>
Geben Sie als Wert die Schlüssel-ID des km-Schlüssels mit dem Alias ein lakeformation-kms-data-key
, die Sie in der AWS KMS-Servicekonsole finden.
Im vorherigen Befehl ist data.json die Datei, die wir auf Amazon S3 hochladen, und wir geben das Präfix an raw
. Beim Hochladen stellen wir den KMS-Schlüssel zur Verfügung, um die Datei mit diesem Verschlüsselungsschlüssel zu verschlüsseln.
Führen Sie den AWS Glue-Job aus
Wir sind jetzt bereit, unseren AWS Glue-Auftrag auszuführen.
- Wählen Sie in der AWS Glue-Konsole aus Jobs im Navigationsbereich.
- Wählen Sie den Job aus
lake-formation-demo-glue-job
. - Auf dem Action Menü, wählen Sie Job ausführen.
Wenn der Auftrag abgeschlossen ist, sollten wir die verarbeiteten Daten in dem S3-Bucket sehen, den Sie unter dem Präfix konfiguriert haben processed
. Wenn wir die Eigenschaften der Ausgabedatei überprüfen, sollten wir feststellen, dass die Daten mit dem KMS-Schlüssel verschlüsselt sind lakeformation-kms-data-key
.
Erteilen Sie dem AWS Glue-Crawler Berechtigungen und führen Sie den Crawler aus
Wir erteilen dem AWS Glue-Crawler nun Berechtigungen für den Zugriff auf Amazon S3 und führen dann den Crawler aus.
- Auf der Lake Formation-Konsole unter Berechtigungen, wählen Datenstandorte.
- Auswählen Gewähren.
- Auswählen Mein Konto.
- Aussichten für IAM-Benutzer und -Rollen, wählen demo-lake-formation-glue-crawler-role.
- Aussichten für Speicherorte, wählen Sie den S3-Bucket aus, in dem Ihre Daten gespeichert sind.
- Aussichten für Registrierter KontostandortGeben Sie die aktuelle Kontonummer ein.
- Auswählen Gewähren.
Dieser Schritt ist erforderlich, damit der Crawler über Berechtigungen für den Amazon S3-Speicherort verfügt, an dem die zu crawlenden Daten gespeichert sind.
- Wählen Sie in der AWS Glue-Konsole aus Crawlers.
- Wählen Sie den konfigurierten Crawler aus und wählen Sie Führen Sie den Crawler aus.
Der Crawler leitet das Schema der verarbeiteten Daten ab und eine neue Tabelle ist nun in der Datenbank sichtbar: lakeformation-glue-catalog-db
.
Diese Tabelle ist auch auf der Lake Formation-Konsole sichtbar.
Richten Sie Berechtigungen für die aktuelle Rolle ein, um die Tabelle abzufragen
Als Nächstes konfigurieren wir Athena so, dass es über die entsprechenden Rechte verfügt, diese neu erstellte Tabelle über die verschlüsselten Daten abzufragen.
Ein Vorteil der Verwendung von Lake Formation zum Einrichten von Berechtigungen ist die Möglichkeit, den Zugriff auf PII einzuschränken, um die Vorschriften einzuhalten und die Privatsphäre Ihrer Kunden zu schützen. Für diesen Beitrag beschränken wir den Zugriff auf alle Spalten im processed
Datenbank, die nicht vorhanden ist symbol
.
- Auf der Lake Formation-Konsole unter Datenkatalogwählen Tische.
- Wähle aus verarbeitet
- Klicken Sie auf Aktionen und wählen Sie Gewähren.
- Auswählen Mein Konto.
- Aussichten für IAM-Benutzer und -Rollen, wählen Sie den aktuellen Benutzer/die aktuelle Rolle.
- Aussichten für Spaltenbasierte Berechtigungen, wählen Spalten einschließen.
- Aussichten für Spalten einschließen, wähle die Spalte
symbol
. - Aussichten für TabellenberechtigungenWählen Auswählen.
- Auswählen Gewähren.
Führen Sie eine Athena-Abfrage aus
Wir können nun die Datenbank mit Athena abfragen.
- Wählen Sie auf der Athena-Konsole die Datenbank aus
lakeformation-glue-catalog-db
. - Wählen Sie das Optionssymbol neben
processed
Tisch und wählen Vorschautabelle. - Geben Sie die folgende Abfrage ein:
- Auswählen Abfrage ausführen.
Der folgende Screenshot zeigt unsere Ausgabe, in der wir den Wert von sehen können symbol
Spalte. Die anderen Spalten sind aufgrund der Sicherheitskonfiguration auf Spaltenebene nicht sichtbar.
Weitere Schritte
Wir können auch die Verschlüsselung im Ruhezustand für die Athena-Ergebnisse aktivieren, was bedeutet, dass Athena die Abfrageergebnisse in Amazon S3 verschlüsselt. Weitere Informationen finden Sie unter Verschlüsseln der in Amazon S3 gespeicherten Abfrageergebnisse.
Zusammenfassung
In diesem Beitrag haben wir uns mit dem Anwendungsfall von Kunden mit strengen gesetzlichen Auflagen befasst, die eine Ende-zu-Ende-Datenverschlüsselung erfordern, um die Vorschriften ihres Landes einzuhalten. Darüber hinaus haben wir einen Data Lake eingerichtet, um die Sicherheit auf Spaltenebene zu unterstützen und den Zugriff auf PII innerhalb von Tabellen einzuschränken. Wir haben eine Schritt-für-Schritt-Anleitung beigefügt und die Lösung mit AWS CloudFormation automatisiert, um sie umgehend bereitzustellen.
Wenn Sie Hilfe beim Aufbau von Data Lakes benötigen, wenden Sie sich bitte an Professionelle AWS-Services. Wenn Sie Fragen zu diesem Beitrag haben, teilen Sie uns dies im Kommentarbereich mit oder starten Sie einen neuen Thread dazu Forum zur Seeentstehung.
Über die Autoren
Daniela Dorneanu ist Data Lake Architect bei AWS. Im Rahmen der Professional Services unterstützt Daniela Kunden praxisnah dabei, mehr Wert aus ihren Daten zu schöpfen. Daniela setzt sich für integrative und vielfältige Arbeitsumgebungen ein und ist Co-Vorsitzende des Konferenzprogramms „Software Engineering“ bei der Grace Hopper Celebration, dem größten Treffen von Frauen in der Informatik.
Muhammad Shahzad ist ein Professional Services-Berater, der Kunden bei der Implementierung von DevOps unterstützt, indem er Prinzipien erklärt, automatisierte Lösungen liefert und Best Practices auf ihrem Weg in die Cloud integriert.
- 100
- 107
- 7
- 9
- Zugang
- Konto
- Vorteil
- Alle
- Amazon
- unter
- Analyse
- Analytik
- Bienen
- Automatisiert
- AWS
- BESTE
- Best Practices
- bauen
- Building
- Cloud
- Kolonne
- Bemerkungen
- Compliance
- Computing
- Konferenz
- Berater
- KUNDEN
- Inhalt
- Strom
- Kunden
- Cyber-
- technische Daten
- Datenzugriff
- Datenanalyse
- Datensee
- Datenschutz
- Datenschutz
- Datenbase
- Datenbanken
- Entschlüsseln
- liefern
- Detail
- DevOps
- Verschlüsselung
- End-to-End-Verschlüsselung
- Entwicklung
- Merkmal
- Eigenschaften
- Format
- Guide
- Ultraschall
- Hilfe
- HTTPS
- IAM
- ICON
- Identitätsschutz
- Einschließlich
- Information
- Infrastruktur
- geistiges Eigentum
- IT
- Job
- Jobs
- Wesentliche
- Tasten
- Gesetze
- lernen
- Standorte
- Maschinelles Lernen
- Management
- nämlich
- Menü
- Optionen
- Auftrag
- Andere
- Schnittmuster
- pii
- Politik durchzulesen
- Datenschutzrichtlinien
- Datenschutz
- Resorts
- Risiken zu minimieren
- Sicherheit
- Angebot
- Roh
- Rohdaten
- Vorschriften
- Downloads
- REST
- Die Ergebnisse
- Führen Sie
- Laufen
- Sicherheitdienst
- Sicherheitsrichtlinien
- Sicherheitsbedrohungen
- Serverlos
- Lösungen
- kompensieren
- Einstellung
- Einfacher
- Software
- Softwareentwicklung
- Lösungen
- SQL
- Anfang
- begonnen
- bleiben
- Lagerung
- Support
- Unterstützt
- Bedrohungen
- verfolgen sind
- Transformation
- us
- Nutzer
- Wert
- Anzeigen
- Virginia
- Sicherheitslücken
- WHO
- .
- Damen
- Arbeiten