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.
Stellen Sie über identitätserweiterte IAM-Rollensitzungen eine Connect zu Redshift her
Sie können IAM Identity Center verwenden, um Verbundzugriff auf Ihre Amazon Redshift Redshift-Cluster und serverlosen Arbeitsgruppen bereitzustellen. Dieser Ansatz ermöglicht es Benutzern, sich mit ihren Identity Center-Anmeldeinformationen zu authentifizieren.
Amazon Redshift bietet GetIdentityCenterAuthToken API-Operationen zur Generierung eines autorisierten Tokens, das Benutzeridentitätsinformationen enthält. Diese APIs sind sowohl für bereitgestellte Cluster als auch für serverlose Arbeitsgruppen verfügbar. Die Token ermöglichen einen nahtlosen Single Sign-On-Zugriff auf Amazon Redshift Redshift-Datenbanken unter Verwendung Ihrer vorhandenen Identity Center-Setup.
Voraussetzungen
Bevor Sie die Identity Center-Authentifizierung mit Amazon Redshift verwenden, stellen Sie sicher, dass Sie über Folgendes verfügen:
-
Identity Center-Einrichtung: In Ihrem Konto muss IAM Identity Center mit Benutzeridentitäten und entsprechenden Anwendungszuweisungen konfiguriert sein. Anweisungen zur Einrichtung finden Sie unter IAM Identity Center einrichten.
Wichtig
Wenn Sie eine Verbindung zu Redshift herstellen möchten, müssen Sie den Bereich redshift:connect verwenden.
-
Identitätserweiterte Anmeldeinformationen: Ihre Anwendung muss identitätserweiterte Anmeldeinformationen verwenden, die eingebettete Benutzeridentitätsinformationen enthalten. Weitere Informationen finden Sie unter Verwenden von IAM-Rollensitzungen mit erweiterter Identität.
-
IAM-Berechtigungen: Ihre IAM-Rolle oder Ihr IAM-Benutzer muss berechtigt sein, die
GetIdentityCenterAuthTokenAPI aufzurufen und auf die angegebenen Cluster oder Arbeitsgruppen zuzugreifen. Erforderliche Berechtigungen:-
Für bereitgestellte Cluster:
redshift:GetIdentityCenterAuthTokenauf einem Cluster (Format:) ARNsarn:aws:redshift:region:account:cluster:cluster-name -
Für serverlose Arbeitsgruppen: in
redshift-serverless:GetIdentityCenterAuthTokeneiner Arbeitsgruppe ARNs (Format:)arn:aws:redshift-serverless:region:account:workgroup/workgroup-name
-
-
Kompatible Treiber: Verwenden Sie Amazon Redshift JDBC- oder ODBC-Treiber, die autorisierte Identity Center-Token unterstützen:
-
JDBC-Treiber: Siehe Installation und Konfiguration des Amazon Redshift JDBC-Treibers Version 2.0
-
ODBC-Treiber: Siehe Installation und Konfiguration des Amazon Redshift ODBC-Treibers Version 2.0
-
Wie funktioniert die Identity Center-Authentifizierung
Die Identity Center-Authentifizierung für Amazon Redshift verwendet den folgenden Workflow:
-
Ihre Anwendung ruft die
GetIdentityCenterAuthTokenAPI mit identitätsoptimierten Anmeldeinformationen auf, die eingebettete Benutzeridentitätsinformationen enthalten. -
Amazon Redshift validiert die Identity Center-Identität und generiert ein verschlüsseltes autorisiertes Token, das auf bestimmte Cluster oder Arbeitsgruppen beschränkt ist. Sehen Sie sich Beispiele für IAM-Richtlinien an.
-
Ihre Anwendung verwendet dieses Token, um eine Verbindung mit dem angegebenen Amazon Redshift Redshift-Cluster oder der angegebenen Arbeitsgruppe herzustellen.
-
Die Amazon Redshift Redshift-Datenebene validiert das Token und gewährt Zugriff auf der Grundlage der Berechtigungen des Identity Center-Benutzers innerhalb der Identity Center-Anwendung.
Wichtig
Für diese API sind identitätserweiterte Anmeldeinformationen erforderlich. Weitere Informationen finden Sie unter Verwenden von IAM-Rollensitzungen mit erweiterter Identität.
Wenn Sie die API ohne identitätserweiterte Anmeldeinformationen aufrufen, erhalten Sie eine Fehlermeldung. UnsupportedOperationFault
GetIdentityCenterAuthToken API-Operationen
Amazon Redshift bietet zwei separate GetIdentityCenterAuthToken API-Operationen: einen für bereitgestellte Cluster und einen für serverlose Arbeitsgruppen. Beide Operationen haben denselben Namen, akzeptieren jedoch je nach Zielressourcentyp unterschiedliche Parameter.
GetIdentityCenterAuthToken für bereitgestellte Cluster
Verwenden Sie für bereitgestellte Amazon Redshift Redshift-Cluster die GetIdentityCenterAuthToken API im Amazon Redshift Redshift-Service, um autorisierte Token zu generieren.
Erforderliche Syntax
{ "ClusterIds": [ "string" ] }
Anforderungsparameter
- ClusterIds
-
Eine Liste der Amazon Redshift Redshift-Cluster-Identifikatoren, auf die das Token zugreifen darf. Das Token kann nur zur Authentifizierung bei den in dieser Liste angegebenen Clustern verwendet werden.
Typ: Zeichenfolgen-Array
Längenbeschränkungen: Mindestens 1 Artikel. Maximal 20 Artikel.
Erforderlich: Ja
CLI-Beispiele
Beispiel: Holen Sie sich ein autorisiertes Token für einen einzelnen Cluster
aws redshift get-identity-center-auth-token \ --cluster-ids my-redshift-cluster
Beispiel: Holen Sie sich ein autorisiertes Token für mehrere Cluster
aws redshift get-identity-center-auth-token \ --cluster-ids my-cluster-1 my-cluster-2
GetIdentityCenterAuthToken für serverlose Arbeitsgruppen
Verwenden Sie für Amazon Redshift Serverless-Arbeitsgruppen die GetIdentityCenterAuthToken API im Amazon Redshift Serverless-Service, um autorisierte Token zu generieren.
Erforderliche Syntax
{ "WorkgroupNames": [ "string" ] }
Anforderungsparameter
- WorkgroupNames
-
Eine Liste der Amazon Redshift Serverless-Arbeitsgruppennamen, auf die das Token zugreifen darf. Das Token kann nur zur Authentifizierung bei den in dieser Liste angegebenen Arbeitsgruppen verwendet werden.
Typ: Zeichenfolgen-Array
Längenbeschränkungen: Mindestens 1 Artikel. Maximal 20 Artikel.
Erforderlich: Ja
CLI-Beispiele
Beispiel: Holen Sie sich ein autorisiertes Token für eine einzelne Arbeitsgruppe
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names my-workgroup
Beispiel: Holen Sie sich ein autorisiertes Token für mehrere Arbeitsgruppen
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names workgroup-1 workgroup-2
Antwortsyntax
Beide APIs geben dieselbe Antwortstruktur zurück:
{ "AuthorizedToken": "string", "ExpirationTime": "timestamp" }
Antwortparameter
- AuthorizedToken
-
Ein verschlüsseltes autorisiertes Token, das die Benutzeridentitätsinformationen und die Liste der autorisierten Cluster oder Arbeitsgruppen enthält. Dieses Token sollte als vertrauliche Daten behandelt werden.
Typ: Zeichenfolge
- ExpirationTime
-
Das Datum und die Uhrzeit, zu der das Token abläuft, in UTC. Token sind ab dem Zeitpunkt der Generierung 1 Stunde lang gültig.
Typ: Zeitstempel
Beispielantwort
{ "AuthorizedToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNjQwOTk1MjAwLCJleHAiOjE2NDA5OTg4MDAsImNsdXN0ZXJzIjpbIm15LWNsdXN0ZXIiXX0...", "ExpirationTime": "2024-01-01T12:00:00Z" }
Integration von Treibern
Amazon Redshift Redshift-Treiber unterstützen die Identity Center-Authentifizierung durch direkte Token-Verwendung:
Direkte Token-Verwendung
Nachdem Sie die GetIdentityCenterAuthToken API aufgerufen haben, um ein Token zu erhalten, verwenden Sie das IdpTokenAuthPlugin mit dem SUBJECT_TOKEN Tokentyp.
Konfiguration der Verbindung:
plugin_name = com.amazon.redshift.plugin.IdpTokenAuthPlugin token_type = SUBJECT_TOKEN token = {encrypted_token_from_api_response}
Ausführliche Informationen zu Identity Center-Authentifizierungs-Plug-ins und zur Treiberkonfiguration finden Sie unter Verbindung zu einem Amazon Redshift Redshift-Cluster herstellen.
Beispiel für Java-Code
Java-Beispielcode für die Verbindung mithilfe der Identity Center-Authentifizierung:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; // Get token from GetIdentityCenterAuthToken API String token = "your_encrypted_token_from_api_response"; // Configure connection properties Properties props = new Properties(); props.setProperty("user", "your_username"); props.setProperty("plugin_name", "com.amazon.redshift.plugin.IdpTokenAuthPlugin"); props.setProperty("token_type", "SUBJECT_TOKEN"); props.setProperty("token", token); // Connect to Redshift String url = "jdbc:redshift://your-cluster.region.redshift.amazonaws.com:5439/your_database"; try (Connection conn = DriverManager.getConnection(url, props)) { // Use connection System.out.println("Connected successfully!"); } catch (SQLException e) { e.printStackTrace(); }
Anforderungen an die IAM-Richtlinie
Um die Identity Center-Authentifizierung mit Amazon Redshift zu verwenden, sind spezifische IAM-Berechtigungen erforderlich, die über die Standardberechtigungen hinausgehen, die für die Verbindung mit Amazon Redshift Redshift-Clustern und Arbeitsgruppen erforderlich sind.
API-Berechtigungen
Für bereitgestellte Cluster muss Ihre erweiterte IAM-Rollensitzung über Folgendes verfügen:
-
redshift:GetIdentityCenterAuthTokenauf dem Cluster ARNs (Format:)arn:aws:redshift:region:account:cluster:cluster-name
Für serverlose Arbeitsgruppen muss Ihre erweiterte IAM-Rollensitzung über Folgendes verfügen:
-
redshift-serverless:GetIdentityCenterAuthTokenin der Arbeitsgruppe ARNs (Format:)arn:aws:redshift-serverless:region:account:workgroup/workgroup-name
IAM-Beispielrichtlinien
Beispielrichtlinie für bereitgestellte Cluster:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift:us-east-1:123456789012:cluster:my-cluster" ] } ] }
Beispielrichtlinie für serverlose Arbeitsgruppen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-serverless:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/my-workgroup" ] } ] }
Beispielrichtlinie für mehrere Ressourcen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift:*:123456789012:cluster/*" ] }, { "Effect": "Allow", "Action": [ "redshift-serverless:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift-serverless:*:123456789012:workgroup/*" ] } ] }
Regionale Verfügbarkeit
Die Identity Center-Authentifizierung ist in den folgenden AWS Regionen verfügbar:
-
Kommerzielle Regionen: Alle unterstützten Amazon Redshift Redshift-Regionen
-
AWS GovCloud: Verfügbar in us-gov-east -1 und us-gov-west -1
-
Regionen China: Verfügbar in cn-north-1 und cn-northwest-1
Anmerkung
Die Verfügbarkeit der Funktionen kann bei der ersten Einführung variieren.