Entladen verschlüsselter Datendateien - Amazon Redshift

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.

Entladen verschlüsselter Datendateien

UNLOAD erstellt die Dateien automatisch mit der serverseitigen Amazon-S3-Verschlüsselung und AWS-verwalteten Verschlüsselungsschlüsseln (SSE-S3). Sie können auch eine serverseitige Verschlüsselung mit einem AWS Key Management Service-Schlüssel (SSE-KMS) oder eine clientseitige Verschlüsselung mit einem vom Kunden verwalteten Schlüssel angeben. UNLOAD unterstützt keine serverseitige Amazon-S3-Verschlüsselung mit einem vom Kunden verwalteten Schlüssel. Weitere Informationen finden Sie unter Schützen von Daten mithilfe serverseitiger Verschlüsselung.

Um Daten zu Amazon S3 unter Verwendung der serverseitigen Verschlüsselung mittels eines AWS KMS-Schlüssels zu übertragen, verwenden Sie den Parameter KMS_KEY_ID zur Bereitstellung der Schlüssel-ID wie im folgenden Beispiel gezeigt.

unload ('select venuename, venuecity from venue') to 's3://mybucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' KMS_KEY_ID '1234abcd-12ab-34cd-56ef-1234567890ab' encrypted;

Wenn Sie Ihren eigenen Verschlüsselungsschlüssel bereitstellen möchten, können Sie clientseitig verschlüsselte Datendateien in Amazon S3 erstellen, indem Sie den UNLOAD-Befehl mit der Option ENCRYPTED verwenden. UNLOAD verwendet denselben Verschlüsselungsprozess wie die clientseitige Amazon-S3-Verschlüsselung. Anschließend können Sie den COPY-Befehl mit der Option ENCRYPTED verwenden, um die verschlüsselten Dateien zu laden.

Der Prozess funktioniert wie folgt:

  1. Sie erstellen einen base64-kodierten 256-Bit-AES-Schlüssel, den Sie als Ihren privaten Verschlüsselungsschlüssel bzw. symmetrischen Root-Schlüssel verwenden.

  2. Sie geben einen UNLOAD-Befehl aus, der Ihren symmetrischen Root-Schlüssel und die Option ENCRYPTED enthält.

  3. UNLOAD generiert einen symmetrischen Schlüssel zur einmaligen Verwendung (den so genannten Envelope Symmetric Key) und einen Initialisierungsvektor (IV), mit dem Ihre Daten verschlüsselt werden.

  4. UNLOAD verschlüsselt den Envelope Symmetric Key unter Verwendung Ihres symmetrischen Root-Schlüssels.

  5. Dann speichert UNLOAD die verschlüsselten Datendateien in Amazon S3 und den verschlüsselten Envelope Key und IV als Objektmetadaten mit jeder Datei. Der verschlüsselte Envelope Key wird als Objektmetadaten x-amz-meta-x-amz-key und der IV als Objektmetadaten x-amz-meta-x-amz-iv gespeichert.

Weitere Informationen zum Envelope-Verschlüsselungsprozess finden Sie im Artikel Clientseitige Datenverschlüsselung mit dem AWS SDK for Java und Amazon S3.

Fügen Sie zum Entladen verschlüsselter Datendateien den Root-Schlüssel-Wert der Anmeldedatenzeichenfolge hinzu und verwenden Sie die Option ENCRYPTED. Wenn Sie die MANIFEST-Option verwenden, wird die Manifestdatei ebenfalls verschlüsselt.

unload ('select venuename, venuecity from venue') to 's3://mybucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key '<root_key>' manifest encrypted;

Um verschlüsselte Datendateien mit GZIP-Komprimierung zu entladen, verwenden Sie die Option GZIP zusammen mit dem Root-Schlüssel-Wert und der Option ENCRYPTED.

unload ('select venuename, venuecity from venue') to 's3://mybucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key '<root_key>' encrypted gzip;

Um die verschlüsselten Datendateien zu laden, fügen Sie den Parameter MASTER_SYMMETRIC_KEY mit dem gleichen Root-Schlüssel-Wert hinzu und verwenden die Option ENCRYPTED.

copy venue from 's3://mybucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key '<root_key>' encrypted;