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 zum Ende der Lebensdauer von Python und zu den Migrationsoptionen finden Sie im Blogbeitrag
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. AWS Für diesen Schutz verwendet sie AWS KMS Verschlüsselungsschlüssel, deren Eigentümer sind.
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 Sie einen Cluster aufrufen ExecuteStatement oder BatchExecuteStatement gegen einen Cluster aufrufen, der mit einem vom Kunden verwalteten Schlüssel verschlüsselt ist, erstellt Amazon Redshift in Ihrem Namen einen Zuschuss, indem es eine CreateGrant Anfrage an AWS KMS sendet. 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 Sie
EncryptAnfragen an, AWS KMS um Abfrage-Metadaten mit Ihrem vom Kunden verwalteten Schlüssel zu verschlüsseln. -
Senden Sie
GenerateDataKeyAnfragen AWS KMS zur Generierung von Datenschlüsseln, die mit Ihrem vom Kunden verwalteten Schlüssel verschlüsselt werden. -
Senden Sie
DecryptAnfragen AWS KMS zur Entschlüsselung der verschlüsselten Datenschlüssel, damit Ihre Daten verschlüsselt werden 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 nach dem Widerruf der Gewährung versuchen, Abfrageergebnisse abzurufen oder den Abfragestatus zu verfolgen, gibt die Daten-API eine AccessDeniedException zurück.
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.
Im Folgenden finden Sie 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 Anforderung zum Verschlüsseln von Daten einbeziehen, wird der Verschlüsselungskontext AWS KMS an die verschlüsselten Daten gebunden. Um die Daten zu entschlüsseln, müssen Sie denselben Verschlüsselungskontext in die Anfrage aufnehmen.
Die Daten-API verwendet bei allen AWS KMS kryptografischen Vorgängen für bereitgestellte Cluster dieselben drei Schlüssel-Wert-Paare für den Verschlüsselungskontext:
-
aws:redshift:arn— Der Amazon-Ressourcenname (ARN) des Clusters -
aws:redshift:createtime— Der Zeitstempel, als 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 bei allen AWS KMS kryptografischen Vorgängen für serverlose Arbeitsgruppen zwei Schlüssel-Wert-Paare für den Verschlüsselungskontext:
-
aws:redshift-serverless:arn— Der Amazon-Ressourcenname (ARN) des Namespace -
serviceName— API RedshiftData
"EncryptionContextSubset": { "aws:redshift-serverless:arn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace:12345678-1234-1234-1234-123456789012", "serviceName": "RedshiftDataAPI" }
Weitere Informationen zur Verschlüsselung finden Sie unter Einführung in die kryptografischen Details von AWS KMS. Weitere Informationen zu Amazon Redshift und zur AWS KMS Integration finden Sie unter Verwendung von Amazon Redshift. AWS KMS