Amazon Redshift unterstützt ab Patch 198 nicht mehr die Erstellung neuer Python-UDFs. Bestehende Python-UDFs werden bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im Blog-Posting
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Hochladen verschlüsselter Daten in Amazon S3
Amazon S3 unterstützt sowohl die serverseitige als auch die clientseitige Verschlüsselung. In diesem Thema werden die Unterschiede zwischen serverseitiger und clientseitiger Verschlüsselung sowie die Schritte zur Verwendung der clientseitigen Verschlüsselung mit Amazon Redshift beschrieben. Server-sideDie Verschlüsselung ist für Amazon Redshift transparent.
Server-side Verschlüsselung
Server-side Verschlüsselung ist Datenverschlüsselung im Ruhezustand, d. h. Amazon S3 verschlüsselt Ihre Daten beim Hochladen und entschlüsselt sie für Sie, wenn Sie darauf zugreifen. Wenn Sie Tabellen mittels eines COPY-Befehls laden, gibt es in Bezug auf die Art und Weise des Ladens aus serverseitig verschlüsselten oder nicht verschlüsselten Objekten in Amazon S3 keinen Unterschied. Weitere Informationen zur serverseitigen Verschlüsselung finden Sie unter Server-Side Verschlüsselung verwenden im Amazon Simple Storage Service-Benutzerhandbuch.
Client-side Verschlüsselung
Bei der clientseitigen Verschlüsselung verwaltet Ihre Clientanwendung die Verschlüsselung Ihrer Daten, die Verschlüsselungsschlüssel und die entsprechenden Tools. Sie können Daten unter Verwendung einer clientseitigen Verschlüsselung zu einem Amazon S3 Bucket hochladen und die Daten anschließend mittels des Befehls COPY mit der Option ENCRYPTED und eines privaten Verschlüsselungsschlüssels laden, um größere Sicherheit zu erzielen.
Sie verschlüsseln Ihre Daten mittels einer Envelope-Verschlüsselung. Mittels einer Envelope-Verschlüsselung verarbeitet ausschließlich Ihre Anwendung die gesamte Verschlüsselung. Ihre privaten Verschlüsselungsschlüssel und Ihre unverschlüsselten Daten werden niemals an Dritte gesendet. AWS Daher ist es sehr wichtig, dass Sie Ihre Verschlüsselungsschlüssel sicher verwalten. Wenn Sie Ihre Verschlüsselungsschlüssel verlieren, können Sie Ihre Daten nicht mehr entschlüsseln, und Sie können Ihre Verschlüsselungsschlüssel von nicht wiederherstellen. AWS Die Envelope-Verschlüsselung kombiniert die Leistung einer schnellen symmetrischen Verschlüsselung mit der größeren Sicherheit, die eine Schlüsselverwaltung mit asymmetrischen Schlüsseln bietet. Von Ihrem Amazon-S3-Verschlüsselungsclient wird ein einmal verwendeter symmetrischer Schlüssel (der symmetrische Envelope-Schlüssel) generiert, um Ihre Daten zu verschlüsseln. Anschließend wird dieser Schlüssel von Ihrem Root-Schlüssel verschlüsselt und zusammen mit Ihren Daten in Amazon S3 gespeichert. Wenn Amazon Redshift während eines Ladevorgangs auf Ihre Daten zugreift, wird der verschlüsselte symmetrische Schlüssel abgerufen und mit Ihrem echten Schlüssel entschlüsselt. Anschließend werden die Daten entschlüsselt.
Um mit clientseitig verschlüsselten Amazon S3 S3-Daten in Amazon Redshift zu arbeiten, befolgen Sie die im Amazon Simple Storage Service-Benutzerhandbuch unter Schutz von Daten mithilfe von Client-Side Verschlüsselung beschriebenen Schritte mit den zusätzlichen Anforderungen, die Sie verwenden:
-
Symmetrische Verschlüsselung Die Klasse AWS SDK for Java
AmazonS3EncryptionClientverwendet die zuvor beschriebene Envelope-Verschlüsselung, die auf einer symmetrischen Schlüsselverschlüsselung basiert. Verwenden Sie diese Klasse, um einen Amazon-S3-Client für das Hochladen von clientseitig verschlüsselten Daten zu erstellen. -
Symmetrischer 256-Bit-AES-Root-Schlüssel Ein Root-Schlüssel verschlüsselt den Envelope-Schlüssel. Sie übergeben den Root-Schlüssel an Ihre Instance der Klasse
AmazonS3EncryptionClient. Speichern Sie diesen Schlüssel, da Sie diesen benötigen, um Daten zu Amazon Redshift zu kopieren. -
Objektmetadaten zum Speichern des verschlüsselten Envelope-Schlüssels Standardmäßig speichert Amazon S3 den Envelope-Schlüssel in Form von Objektmetadaten für die
AmazonS3EncryptionClient-Klasse. Der in Form von Objektmetadaten gespeicherte verschlüsselte Envelope-Schlüssel wird während des Entschlüsselungsprozesses verwendet.
Anmerkung
Wenn Sie während der ersten Verwendung der Verschlüsselungs-API eine Verschlüsselungsfehlermeldung erhalten, enthält Ihre Version des JDK möglicherweise eine Java Cryptography Extension (JCE)-Jurisdiktionsrichtlinie, die die maximale Schlüssellänge für Verschlüsselungs- und Entschlüsselungstransformationen auf 128 Bits begrenzt. Informationen zur Behebung dieses Problems finden Sie unter Spezifying Client-Side Encryption Using the AWS SDK for Java im Amazon Simple Storage Service User Guide.
Weitere Informationen zum Laden von clientseitig verschlüsselten Dateien in Ihre Amazon-Redshift-Tabellen unter Verwendung des Befehls COPY finden Sie unter Laden verschlüsselter Datendateien aus Amazon S3.
Beispiel: Hochladen von clientseitig verschlüsselten Daten
Ein Beispiel für die Verwendung des AWS SDK for Java zum Hochladen von clientseitig verschlüsselten Daten finden Sie unter Schützen von Daten mit clientseitiger Verschlüsselung im Amazon Simple Storage Service-Benutzerhandbuch.
In der zweiten Option werden die Entscheidungen gezeigt, die Sie während der clientseitigen Verschlüsselung treffen müssen, damit die Daten in Amazon Redshift geladen werden können. Insbesondere zeigt das Beispiel die Verwendung von Objektmetadaten für das Speichern des verschlüsselten Envelope-Schlüssels und die Verwendung eines symmetrischen 256-Bit-AES-Root-Schlüssels.
Dieses Beispiel enthält Beispielcode, der das AWS SDK for Java verwendet, um einen symmetrischen 256-Bit-AES-Stammschlüssel zu erstellen und ihn in einer Datei zu speichern. Anschließend wird mittels eines S3-Verschlüsselungsclients, der die Beispieldaten zunächst clientseitig verschlüsselt, ein Objekt zu Amazon S3 hochgeladen. Das Beispiel zeigt auch den Download des Objekts und die Überprüfung, ob die Daten identisch ist.