Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
Verwenden der Data API mit Weitergabe von vertrauenswürdigen Identitäten
Als Amazon-Redshift-Kontoadministrator können Sie Ihren Amazon-Redshift-Cluster oder Ihre Arbeitsgruppe mit AWS IAM Identity Center integrieren. Dies erleichtert die Verwaltung des Zugriffs Ihrer Mitarbeiter auf Amazon Redshift mit Single Sign-On. Weitere Informationen finden Sie unter Einrichten der Integration von AWS IAM Identity Center mit Amazon Redshift. Die Amazon Redshift Data API unterstützt die Weitergabe von IAM-Identity-Center-Benutzeridentitäten an einen Amazon-Redshift-Cluster oder eine Arbeitsgruppe und an andere nachgelagerte Services wie z. B. AWS Lake Formation Sie können die Data API einrichten und Abfragen durchführen, indem Sie die Schritte in Access AWS services programmatically using trusted identity propagation
Wenn Sie die Data API mithilfe einer IAM-Identity-Center-Benutzeridentität aus einer IAM-Rollensitzung mit verbesserter Identität aufrufen, können Sie nur mit demselben IAM-Identity-Center-Benutzer auf die resultierende Anweisung und das Ergebnis der Anweisung zugreifen. Der folgende AWS CLI-Befehl ruft beispielsweise die Operation execute-statement zur Ausführung eines SQL-Befehls mit Weitergabe von vertrauenswürdigen Identitäten auf.
aws redshift-data execute-statement --sql "select current_user;" --cluster-idmycluster--databasedev
Der folgende AWS CLI-Befehl ruft die Operation batch-execute-statement zur Ausführung von zwei SQL-Befehlen auf.
aws redshift-data batch-execute-statement --sqls "select current_user;" "select current_date;" --cluster-idmycluster--databasedev
Für den Zugriff auf Anweisungen mit cancel-statement, describe-statement, get-statement-result und get-statement-result-v2, die über IAM-Rollensitzungen mit verbesserter Identität übermittelt wurden, müssen der IAM-Identity-Center-Benutzer und die IAM-Rolle mit den Anmeldeinformationen übereinstimmen, die für die Ausführung von execute-statment oder batch-execute-statement verwendet wurden. Der folgende AWS CLI-Befehl ruft die Ergebnisse einer SQL-Anweisung ab.
aws redshift-data get-statement-result --ida1b2c3d4-5678-90ab-cdef-EXAMPLE11111
Um Anweisungen aufzulisten, muss ein Parameter cluster-identifier oder workgroup-name angegeben werden, um sicherzustellen, dass der IAM-Identity-Center-Benutzer nur Zugriff auf die IAM-Identity-Center-Anwendungen von Amazon Redshift hat, denen er zugewiesen ist. Der folgende AWS CLI-Befehl listet beispielsweise Anweisungen für einen bestimmten Cluster auf.
aws redshift-data list-statements --cluster-identifiermycluster
Sie können auch die Data-API-Operationen aufrufen, die unter Verwendung der Weitergabe von vertrauenswürdigen Identitäten auf Datenbankobjekte in einem Cluster oder einer Arbeitsgruppe zugreifen. Dies umfasst die Operationen list-databases, list-schemas, list-tables und describe-table.
API-Aufrufe des IAM-Identity-Center-Benutzers können in AWS CloudTrail nachverfolgt werden. In einem Abschnitt onBehalfOf des CloudTrail-Ereignisses werden die IAM-Identity-Center-Benutzer-ID und der Identitätsspeicher-ARN angezeigt. Das folgende Beispiel zeigt einen Ausschnitt eines CloudTrail-Ereignisses mit dem Abschnitt onBehalfOf, der die Identity-Center-Benutzer-ID a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 und den Identitätsspeicher-ARN arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2 enthält.
{ "eventVersion":"1.10", "userIdentity":{ "type":"AssumedRole", ... }, "onBehalfOf":{ "userId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "identityStoreArn":"arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2" } }, "eventTime":"2025-01-13T04:46:27Z", "eventSource":"redshift-data.amazonaws.com", "eventName":"ExecuteStatement", "awsRegion":"us-east-1" }
Sie können den folgenden SQL-Befehl ausführen, um die vom IAM-Identity-Center-Benutzer eingereichte Abfrage zu überprüfen. In diesem Beispiel lautet die in Identity Center registrierte E-Mail-Adresse username@example.com.
SELECT h.query_id, h.database_name, h.status, h.query_text, u.usename, h.start_time, h.end_time FROM sys_query_history h LEFT JOIN pg_user u ON h.user_id = u.usesysid where u.usename='awsidc:username@example.com' ORDER BY h.start_time DESC;