View a markdown version of this page

Verwenden AWS KMS mit der Amazon Redshift Data API - Amazon Redshift

Amazon Redshift unterstützt die Verwendung von Python-UDFs nach dem 30. Juni 2026 nicht mehr. Wir werden damit beginnen, es schrittweise durchzusetzen. Weitere Informationen zu den Details zum Ende der Lebensdauer von Python und zu den Migrationsoptionen finden Sie auf der Blogbeitrag das wurde am 30. Juni 2025 veröffentlicht.

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.

Verwenden AWS KMS mit der Amazon Redshift Data API

Wenn Sie Ihren Amazon Redshift-Cluster oder Ihre Redshift Serverless Workgroup mit einem vom Kunden verwalteten Schlüssel verschlüsseln, verwendet die Amazon Redshift Data API denselben vom Kunden verwalteten Schlüssel zum Speichern und Verschlüsseln Ihrer Abfragen und Ergebnisse.

Die Daten-API verschlüsselt Ihre Daten standardmäßig, um vertrauliche Informationen wie Abfragetext und Abfrageergebnisse zu schützen. Sie verwendet AWS KMS Verschlüsselungsschlüssel im Besitz von AWS für diesen Schutz.

Die Standardverschlüsselung für ruhende Daten reduziert den betrieblichen Aufwand und die Komplexität beim Schutz vertraulicher Daten. Dieser Ansatz hilft Ihnen bei der Entwicklung sicherer Anwendungen, die strenge Verschlüsselungsvorschriften und behördliche Anforderungen erfüllen.

Verwendung von Zuschüssen in AWS KMS

Für die Daten-API ist ein Zuschuss erforderlich, um Ihren vom Kunden verwalteten Schlüssel verwenden zu können.

Wenn du anrufst ExecuteStatement oder BatchExecuteStatement gegen einen Cluster, der mit einem vom Kunden verwalteten Schlüssel verschlüsselt ist, gewährt Amazon Redshift in Ihrem Namen einen Zuschuss, indem es eine CreateGrant Anfrage an AWS KMS. AWS KMS verwendet Zuschüsse, um der Daten-API Zugriff auf einen KMS-Schlüssel in Ihrem Konto zu gewähren.

Die Daten-API benötigt den Zuschuss, um Ihren vom Kunden verwalteten Schlüssel für die folgenden Vorgänge verwenden zu können:

  • Senden Encrypt Anfragen an AWS KMS um Abfrage-Metadaten mit Ihrem vom Kunden verwalteten Schlüssel zu verschlüsseln.

  • Senden GenerateDataKey Anfragen an AWS KMS um Datenschlüssel zu generieren, die mit Ihrem vom Kunden verwalteten Schlüssel verschlüsselt wurden.

  • Senden Decrypt Anfragen an AWS KMS um die verschlüsselten Datenschlüssel zu entschlüsseln, damit sie Ihre Daten verschlüsseln können.

Sie können den Zugriff auf die Gewährung jederzeit widerrufen oder Amazon Redshift den Zugriff auf Ihren vom Kunden verwalteten Schlüssel entziehen. Wenn Sie dies tun, kann die Daten-API nicht mehr auf Daten zugreifen, die mit Ihrem kundenverwalteten Schlüssel verschlüsselt wurden. Dies wirkt sich auf Abläufe aus, die von diesen Daten abhängen. Wenn Sie beispielsweise versuchen, Abfrageergebnisse abzurufen oder den Abfragestatus zu verfolgen, nachdem Sie die Gewährung widerrufen haben, gibt die Daten-API eine AccessDeniedException.

Wichtige Richtlinien für Ihren vom Kunden verwalteten Schlüssel

Schlüsselrichtlinien steuern den Zugriff auf den vom Kunden verwalteten Schlüssel. Jeder vom Kunden verwaltete Schlüssel muss über genau eine Schlüsselrichtlinie verfügen, die aussagt, wer den Schlüssel wie verwenden kann. Wenn Sie Ihren kundenseitig verwalteten Schlüssel erstellen, können Sie eine Schlüsselrichtlinie angeben. Weitere Informationen finden Sie unter Kundenverwaltete Schlüssel im AWS Key Management Service Entwicklerhandbuch.

Um Ihre vom Kunden verwalteten Schlüssel mit der Daten-API verwenden zu können, müssen Sie zunächst den Zugriff auf Amazon Redshift zulassen. Die folgenden API-Operationen müssen in der Schlüsselrichtlinie zulässig sein:

  • kms:CreateGrant: Fügt einem kundenverwalteten Schlüssel eine Erteilung hinzu. Gewährt Kontrollzugriff auf einen bestimmten AWS KMS Schlüssel, der den Zugriff auf Grant-Operationen ermöglicht, die Amazon Redshift benötigt. Weitere Informationen finden Sie unter Verwendung von Zuschüssen in AWS KMS.

Das Folgende ist ein Beispiel für eine wichtige Richtlinie:

"Statement":[ { "Sid":"Allow access to principals authorized to use Amazon Redshift", "Effect":"Allow", "Principal":{ "AWS":"*" }, "Action":[ "kms:DescribeKey", "kms:CreateGrant" ], "Resource":"*", "Condition":{ "StringEquals":{ "kms:ViaService":"redshift.amazonaws.com", "kms:CallerAccount":"111122223333" } } }, { "Sid":"AllowKeyAdministratorsAccess", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole" }, "Action":"kms:*", "Resource":"*" }, { "Sid":"AllowKeyUseForExampleRole", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action":[ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource":"*" } ]

Kontext der Daten-API-Verschlüsselung

Ein Verschlüsselungskontext ist ein optionaler Satz von Schlüssel-Wert-Paaren, der zusätzliche Kontextinformationen zu den Daten enthält. AWS KMS verwendet den Verschlüsselungskontext als zusätzliche authentifizierte Daten, um die authentifizierte Verschlüsselung zu unterstützen. Wenn Sie einen Verschlüsselungskontext in eine Anfrage zum Verschlüsseln von Daten einbeziehen, AWS KMS bindet den Verschlüsselungskontext an die verschlüsselten Daten. Um die Daten zu entschlüsseln, müssen Sie denselben Verschlüsselungskontext in die Anfrage aufnehmen.

Die Daten-API verwendet insgesamt die gleichen drei Schlüssel-Wert-Paare für den Verschlüsselungskontext AWS KMS kryptografische Operationen für bereitgestellte Cluster:

  • aws:redshift:arn — Der Amazon-Ressourcenname (ARN) des Clusters

  • aws:redshift:createtime — Der Zeitstempel, zu dem Sie die Cluster-Erstellung angefordert haben

  • serviceName – RedshiftDataAPI

"EncryptionContextSubset": { "aws:redshift:arn": "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster", "aws:redshift:createtime": "20250815T0000Z", "serviceName": "RedshiftDataAPI", }

Die Daten-API verwendet insgesamt zwei Schlüssel-Wert-Paare für den Verschlüsselungskontext AWS KMS kryptografische Operationen für serverlose Arbeitsgruppen:

  • aws:redshift-serverless:arn — Der Amazon-Ressourcenname (ARN) des Namespaces

  • serviceName — RedshiftDataAPI

"EncryptionContextSubset": { "aws:redshift-serverless:arn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace:12345678-1234-1234-1234-123456789012", "serviceName": "RedshiftDataAPI" }

Weitere Hinweise zur Verschlüsselung finden Sie unter Einführung in die kryptografischen Details von AWS KMS. Für weitere Informationen über Amazon Redshift und AWS KMS Integration, siehe Wie verwendet Amazon Redshift AWS KMS.