Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird 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.
Konfigurieren von IAM-Berechtigungen
Amazon Redshift stellt die von AmazonRedshiftDataFullAccess verwaltete Richtlinie bereit. Diese Richtlinie bietet vollständigen Zugriff auf die Amazon-Redshift-Data-API-Vorgänge. Diese Richtlinie ermöglicht auch den bereichsbezogenen Zugriff auf bestimmte Amazon Redshift- und IAM-API-OperationenAWS Secrets Manager, die für die Authentifizierung und den Zugriff auf einen Amazon Redshift Redshift-Cluster oder eine Redshift Serverless-Arbeitsgruppe erforderlich sind.
Sie können auch eine eigene IAM-Richtlinie erstellen, die den Zugriff auf bestimmte Ressourcen ermöglicht. Um Ihre Richtlinie zu erstellen, verwenden Sie die AmazonRedshiftDataFullAccess-Richtlinie als Ausgangspunkt. Nach dem Erstellen Ihrer Richtlinie können Sie diese jedem Benutzer hinzufügen, der Zugriff auf die Data API benötigt.
Berücksichtigen Sie die folgenden Anforderungen der IAM-Richtlinie, die mit dem Benutzer verknüpft ist:
-
Wenn Sie die Authentifizierung verwenden, vergewissern Sie AWS Secrets Manager sich, dass die Richtlinie die Verwendung der Aktion zum Abrufen des mit dem Schlüssel markierten Geheimnisses
secretsmanager:GetSecretValuezulässt.RedshiftDataFullAccess -
Wenn Sie temporäre Anmeldeinformationen für die Authentifizierung verwenden, prüfen Sie, ob die Richtlinie die Verwendung der
redshift:GetClusterCredentials-Aktion für den Datenbankbenutzernamenredshift_data_api_userfür jede Datenbank im Cluster erlaubt. Dieser Benutzername muss bereits in Ihrer Datenbank erstellt worden sein. -
Wenn Sie temporäre Anmeldeinformationen verwenden, um sich bei einer Serverless-Arbeitsgruppe zu authentifizieren, bestätigen Sie, dass die Richtlinie die Verwendung der Aktion
redshift-serverless:GetCredentialszum Abrufen der mit dem SchlüsselRedshiftDataFullAccessgekennzeichneten Arbeitsgruppe zulässt. Der Datenbankbenutzer wird der Quellidentität AWS Identity and Access Management (IAM) 1:1 zugeordnet. Der Benutzer sample_user ist beispielsweise einem DatenbankbenutzerIAM:sample_userund die IAM-Rolle sample_role istIAMR:sample_rolezugeordnet. Weitere Informationen zu unterschiedlichen IAM-Identitäten finden Sie unter IAM-Identitäten (Benutzer, Benutzergruppen und Rollen) im IAM-Benutzerhandbuch. -
Die IAM-Aktion
redshift-data:GetStatementResultermöglicht den Zugriff auf die API-OperationenGetStatementResultundGetStatementResultV2.
Unter den folgenden Links finden Sie weitere Informationen zum AWS Identity and Access Management IAM-Benutzerhandbuch.
-
Weitere Informationen zum Erstellen von IAM-Rollen finden Sie unter Erstellen von IAM-Rollen.
-
Informationen zum Erstellen einer IAM-Richtlinie finden Sie unter Erstellen von IAM-Richtlinien.
-
Informationen zum Hinzufügen einer IAM-Richtlinie zu einem Benutzer finden Sie unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen.
Ausführen einer Abfrage auf einem Cluster, der einem anderen Konto gehört
Um eine Abfrage in einem Cluster auszuführen, der einem anderen Konto gehört, muss das besitzende Konto eine IAM-Rolle bereitstellen, die die Data API im aufrufenden Konto übernehmen kann. Angenommen, Konto B besitzt einen Cluster, auf den Konto A zugreifen muss. Konto B kann die AWS verwaltete Richtlinie AmazonRedshiftDataFullAccess der IAM-Rolle von Konto B zuordnen. Dann vertraut Konto B Konto A mit einer Vertrauensrichtlinie wie der folgenden:
Schließlich muss die IAM-Rolle von Konto A die IAM-Rolle von Konto B übernehmen können.
Geben Sie eine IAM-Rolle an, die die Ressourcen auf Redshift-Serverless-Arbeitsgruppen und Amazon-Redshift-Cluster in einem AWS-Konto beschränkt.
Sie können ARNs in Ihrer identitätsbasierten Richtlinie eine Ressource angeben, um den Zugriff auf Redshift Serverless-Arbeitsgruppen und Amazon Redshift Redshift-Cluster in einem zu kontrollieren. AWS-Konto In diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen können, die den Zugriff auf die Data API nur für die Arbeitsgruppe und die Cluster in dem angegebenen AWS-Konto ermöglicht.
Konfigurieren Sie eine IAM-Richtlinie, die den Zugriff auf SQL-Anweisungsinformationen auf den Eigentümer der Anweisung beschränkt
Standardmäßig behandelt die Amazon Redshift Data API die IAM-Rolle, die beim Aufrufen von ExecuteStatement und BatchExecuteStatement verwendet wird, als Eigentümer der SQL-Anweisung. Jeder, der die Rolle übernehmen darf, kann auf Informationen über die SQL-Anweisung zugreifen, einschließlich ihrer Ergebnisse. Um den Zugriff auf Informationen zu SQL-Anweisungen auf eine IAM-Rollensitzung mit einem bestimmten Eigentümer zu beschränken, fügen Sie eine Bedingung redshift-data:statement-owner-iam-userid:
"${aws:userid}" hinzu. Die folgende IAM-Richtlinie beschränkt den Zugriff.
Sie können die Bedingung statement-owner-iam-userid mit CancelStatement, DescribeStatement, GetStatementResult und ListStatements verwenden. Weitere Informationen finden Sie unter Actions defined by Amazon Redshift Data API.
Konfigurieren Sie eine IAM-Richtlinie, die den Zugriff auf SQL-Ergebnisse auf den Sitzungseigentümer beschränkt
Standardmäßig behandelt die Amazon Redshift Data API die IAM-Rolle, die beim Aufrufen von ExecuteStatement und BatchExecuteStatement verwendet wird, als Eigentümer der Datenbanksitzung, in der die SQL-Anweisung ausgeführt wird. Jeder, der berechtigt ist, die Rolle anzunehmen, kann Abfragen an die Datenbanksitzung stellen. Um den Sitzungszugriff auf eine IAM-Rollensitzung mit einem bestimmten Eigentümer zu beschränken, fügen Sie eine Bedingung redshift-data:session-owner-iam-userid: "${aws:userid}" hinzu. Die folgende IAM-Richtlinie beschränkt den Zugriff.
Die folgende IAM-Richtlinie ermöglicht es nur dem Sitzungseigentümer, Anweisungsergebnisse abzurufen. Die Bedingung session-owner-iam-userid wird verwendet, um den Ressourcenzugriff auf die angegebene userid zu beschränken.
Sie können die Bedingung session-owner-iam-userid mit ExecuteStatement und BatchExecuteStatement verwenden. Weitere Informationen finden Sie unter Actions defined by Amazon Redshift Data API.