Stellen Sie über identitätserweiterte IAM-Rollensitzungen eine Connect zu Redshift her - Amazon Redshift

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 GetIdentityCenterAuthToken API aufzurufen und auf die angegebenen Cluster oder Arbeitsgruppen zuzugreifen. Erforderliche Berechtigungen:

    • Für bereitgestellte Cluster: redshift:GetIdentityCenterAuthToken auf einem Cluster (Format:) ARNs arn:aws:redshift:region:account:cluster:cluster-name

    • Für serverlose Arbeitsgruppen: in redshift-serverless:GetIdentityCenterAuthToken einer 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:

Wie funktioniert die Identity Center-Authentifizierung

Die Identity Center-Authentifizierung für Amazon Redshift verwendet den folgenden Workflow:

  1. Ihre Anwendung ruft die GetIdentityCenterAuthToken API mit identitätsoptimierten Anmeldeinformationen auf, die eingebettete Benutzeridentitätsinformationen enthalten.

  2. 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.

  3. Ihre Anwendung verwendet dieses Token, um eine Verbindung mit dem angegebenen Amazon Redshift Redshift-Cluster oder der angegebenen Arbeitsgruppe herzustellen.

  4. 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.