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
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-Dienste, AWS Secrets Manager und IAM-API-Operationen, die für die Authentifizierung und den Zugriff auf einen Amazon 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 verwenden AWS Secrets Manager Um sich zu authentifizieren, bestätigen Sie, dass die Richtlinie die Verwendung von zulässt
secretsmanager:GetSecretValueAktion zum Abrufen des Geheimnisses, das mit dem Schlüssel versehen istRedshiftDataFullAccess. -
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 1:1 der Quelle zugeordnet AWS Identity and Access Management (IAM) -Identität. 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.
Die folgenden Links bieten weitere Informationen zu AWS Identity and Access Management in der 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 das anhängen AWS verwaltete Richtlinie AmazonRedshiftDataFullAccess zur IAM-Rolle von Konto B. 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 Ressourcen auf Redshift Serverless Workgroups und Amazon Redshift-Cluster in einem beschränkt AWS-Konto
Sie können Ressourcen-ARNs in Ihrer identitätsbasierten Richtlinie angeben, um den Zugriff auf Redshift-Serverless-Arbeitsgruppen und Amazon-Redshift-Cluster in einem AWS-Konto zu steuern. 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.