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.
Stellen Sie mit Identity-enhanced IAM-Rollensitzungen eine Verbindung zu Redshift her
Sie können IAM Identity Center verwenden, um Verbundzugriff auf Ihre Amazon 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 Informationen zur Benutzeridentität enthält. Diese APIs sind sowohl für bereitgestellte Cluster als auch für serverlose Arbeitsgruppen verfügbar. Die Token ermöglichen den nahtlosen Single-Sign-On-Zugriff auf Amazon Redshift-Datenbanken mithilfe Ihres vorhandenen Identity Center-Setups.
Voraussetzungen
Bevor Sie die Identity Center-Authentifizierung mit Amazon Redshift verwenden, stellen Sie sicher, dass Sie über Folgendes verfügen:
-
Identity Center-Setup: 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 redshift:connect scope verwenden.
-
Identity-enhanced 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 über Berechtigungen verfügen, um die
GetIdentityCenterAuthTokenAPI aufzurufen und auf die angegebenen Cluster oder Arbeitsgruppen zuzugreifen. Erforderliche Berechtigungen:-
Für bereitgestellte Cluster:
redshift:GetIdentityCenterAuthTokenauf Cluster-ARNs (Format:)arn:aws:redshift:region:account:cluster:cluster-name -
Für serverlose Arbeitsgruppen:
redshift-serverless:GetIdentityCenterAuthTokenauf Arbeitsgruppen-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.x
-
ODBC-Treiber: Siehe Installation und Konfiguration des Amazon Redshift ODBC-Treibers Version 2.0
-
-
Netzwerkkonfiguration für erweitertes VPC-Routing: Wenn das erweiterte VPC-Routing aktiviert ist, muss Ihre VPC in der Lage sein, die Identity Center-Dienste zu erreichen. Schnittstellen-VPC-Endpunkte sind die empfohlene Methode, um diese Konnektivität bereitzustellen. Richten Sie diese Konnektivität ein, bevor sich Benutzer anmelden. Weitere Informationen zu den erweiterten VPC-Routing-Anforderungen für Identity Center finden Sie unterVerwenden AWS IAM Identity Center-Authentifizierung mit verbessertem VPC-Routing.
So funktioniert die Identity Center-Authentifizierung
Die Identity Center-Authentifizierung für Amazon Redshift verwendet den folgenden Workflow:
-
Ihre Anwendung ruft die
GetIdentityCenterAuthTokenAPI mithilfe identitätsverbesserter Anmeldeinformationen auf, die eingebettete Benutzeridentitätsinformationen enthalten. -
Amazon Redshift validiert die Identity Center-Identität und generiert ein verschlüsseltes autorisiertes Token, das bestimmten Clustern oder Arbeitsgruppen zugeordnet ist. Sehen Sie sich Beispiele für IAM-Richtlinien an.
-
Ihre Anwendung verwendet dieses Token, um eine Verbindung mit dem angegebenen Amazon Redshift-Cluster oder der angegebenen Arbeitsgruppe herzustellen.
-
Die Amazon Redshift-Datenebene validiert das Token und gewährt Zugriff auf der Grundlage der Berechtigungen des Identity Center-Benutzers in 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-Cluster die GetIdentityCenterAuthToken API im Amazon Redshift-Service, um autorisierte Token zu generieren.
Erforderliche Syntax
{ "ClusterIds": [ "string" ] }
Anforderungsparameter
- ClusterIds
-
Eine Liste von Amazon Redshift-Cluster-Identifikatoren, für deren Zugriff das Token autorisiert wird. 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: Autorisiertes Token für einen einzelnen Cluster abrufen
aws redshift get-identity-center-auth-token \ --cluster-ids my-redshift-cluster
Beispiel: Autorisiertes Token für mehrere Cluster abrufen
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 ein autorisiertes 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
-
Datum und Uhrzeit des Ablaufs des Tokens 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-Treiber unterstützen die Identity Center-Authentifizierung durch direkte Token-Nutzung:
Direkte Token-Nutzung
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}
Detaillierte Informationen zu Identity Center-Authentifizierungs-Plugins und zur Treiberkonfiguration finden Sie unter Verbindung zu einem Amazon Redshift-Cluster herstellen.
Beispiel für Java-Code
Java-Beispielcode zum Herstellen einer 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 spezielle IAM-Berechtigungen erforderlich, die über die Standardberechtigungen hinausgehen, die für die Verbindung mit Amazon Redshift-Clustern und Arbeitsgruppen erforderlich sind.
API-Berechtigungen
Für bereitgestellte Cluster muss Ihre erweiterte IAM-Rollensitzung über Folgendes verfügen:
-
redshift:GetIdentityCenterAuthTokenauf Cluster-ARNs (Format:)arn:aws:redshift:region:account:cluster:cluster-name
Für serverlose Arbeitsgruppen muss Ihre Sitzung mit erweiterter IAM-Rollenfunktion Folgendes aufweisen:
-
redshift-serverless:GetIdentityCenterAuthTokenkeine Arbeitsgruppen-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:
-
Gewerbliche Regionen: Alle unterstützten Amazon 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 beim ersten Rollout variieren.