Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Connect a Redshift con sessioni di ruolo IAM ottimizzate per l'identità
Puoi utilizzare IAM Identity Center per fornire accesso federato ai tuoi cluster Amazon Redshift e ai gruppi di lavoro serverless. Questo approccio consente agli utenti di autenticarsi utilizzando le proprie credenziali Identity Center.
Amazon Redshift fornisce operazioni GetIdentityCenterAuthToken API per generare token autorizzati contenenti informazioni sull'identità degli utenti. APIs Sono disponibili sia per i cluster con provisioning che per i gruppi di lavoro serverless. I token consentono l'accesso Single Sign-On senza interruzioni ai database Amazon Redshift utilizzando la configurazione esistente di Identity Center.
Prerequisiti
Prima di utilizzare l'autenticazione Identity Center con Amazon Redshift, assicurati di disporre di quanto segue:
-
Configurazione di Identity Center: sul tuo account deve essere configurato IAM Identity Center con identità utente e assegnazioni di applicazioni appropriate. Per istruzioni di configurazione, consulta Configurazione di IAM Identity Center.
Importante
Se vuoi connetterti a Redshift, devi usare redshift:connect scope.
-
Credenziali con identità avanzata: l'applicazione deve utilizzare credenziali con identità avanzata che contengono informazioni sull'identità utente incorporate. Per ulteriori informazioni, consulta Utilizzo di sessioni di ruolo IAM con identità migliorata.
-
Autorizzazioni IAM: il tuo ruolo o utente IAM deve disporre delle autorizzazioni per chiamare l'
GetIdentityCenterAuthTokenAPI e accedere ai cluster o ai gruppi di lavoro specificati. Autorizzazioni richieste:-
Per i cluster predisposti: su cluster (formato:
redshift:GetIdentityCenterAuthToken) ARNsarn:aws:redshift:region:account:cluster:cluster-name -
Per gruppi di lavoro senza server:
redshift-serverless:GetIdentityCenterAuthTokensul gruppo di lavoro (formato:) ARNsarn:aws:redshift-serverless:region:account:workgroup/workgroup-name
-
-
Driver compatibili: utilizza i driver Amazon Redshift JDBC o ODBC che supportano i token autorizzati di Identity Center:
-
Driver JDBC: consulta Installazione e configurazione del driver JDBC Amazon Redshift versione 2.0
-
Driver ODBC: consulta Installazione e configurazione del driver ODBC Amazon Redshift versione 2.0
-
Come funziona l'autenticazione Identity Center
L'autenticazione Identity Center per Amazon Redshift utilizza il seguente flusso di lavoro:
-
L'applicazione chiama l'
GetIdentityCenterAuthTokenAPI utilizzando credenziali con identità avanzata che contengono informazioni sull'identità utente incorporate. -
Amazon Redshift convalida l'identità dell'Identity Center e genera un token crittografato autorizzato destinato a cluster o gruppi di lavoro specifici. Vedi esempi di politiche IAM.
-
L'applicazione utilizza questo token per connettersi al cluster o al gruppo di lavoro Amazon Redshift specificato.
-
Il piano dati di Amazon Redshift convalida il token e concede l'accesso in base alle autorizzazioni dell'utente di Identity Center all'interno dell'applicazione Identity Center.
Importante
Questa API richiede credenziali con identità avanzata. Per ulteriori informazioni, consulta Utilizzo di sessioni di ruolo IAM con identità migliorata.
Se chiami l'API senza credenziali con identità avanzata, riceverai un errore. UnsupportedOperationFault
GetIdentityCenterAuthToken Operazioni API
Amazon Redshift offre due operazioni GetIdentityCenterAuthToken API separate: una per i cluster con provisioning e una per i gruppi di lavoro serverless. Entrambe le operazioni hanno lo stesso nome ma accettano parametri diversi a seconda del tipo di risorsa di destinazione.
GetIdentityCenterAuthToken per i cluster predisposti
Per i cluster Amazon Redshift forniti, utilizza GetIdentityCenterAuthToken l'API nel servizio Amazon Redshift per generare token autorizzati.
Sintassi della richiesta
{ "ClusterIds": [ "string" ] }
Parametri della richiesta
- ClusterIds
-
Un elenco di identificatori di cluster Amazon Redshift a cui il token sarà autorizzato ad accedere. Il token può essere utilizzato solo per l'autenticazione con i cluster specificati in questo elenco.
Tipo: array di stringhe
Vincoli di lunghezza: minimo 1 articolo. Massimo 20 articoli.
Obbligatorio: sì
Esempi di CLI
Esempio: ottieni un token autorizzato per un singolo cluster
aws redshift get-identity-center-auth-token \ --cluster-ids my-redshift-cluster
Esempio: ottieni un token autorizzato per più cluster
aws redshift get-identity-center-auth-token \ --cluster-ids my-cluster-1 my-cluster-2
GetIdentityCenterAuthToken per gruppi di lavoro senza server
Per i gruppi di lavoro Amazon Redshift Serverless, utilizza l'GetIdentityCenterAuthTokenAPI nel servizio Amazon Redshift Serverless per generare token autorizzati.
Sintassi della richiesta
{ "WorkgroupNames": [ "string" ] }
Parametri della richiesta
- WorkgroupNames
-
Un elenco di nomi di gruppi di lavoro Amazon Redshift Serverless a cui il token sarà autorizzato ad accedere. Il token può essere utilizzato solo per l'autenticazione con i gruppi di lavoro specificati in questo elenco.
Tipo: array di stringhe
Vincoli di lunghezza: minimo 1 articolo. Massimo 20 articoli.
Obbligatorio: sì
Esempi di CLI
Esempio: ottieni un token autorizzato per un singolo gruppo di lavoro
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names my-workgroup
Esempio: ottieni un token autorizzato per più gruppi di lavoro
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names workgroup-1 workgroup-2
Sintassi della risposta
Entrambi APIs restituiscono la stessa struttura di risposta:
{ "AuthorizedToken": "string", "ExpirationTime": "timestamp" }
Parametri di risposta
- AuthorizedToken
-
Un token autorizzato crittografato che contiene le informazioni sull'identità dell'utente e l'elenco dei cluster o dei gruppi di lavoro autorizzati. Questo token deve essere trattato come dati sensibili.
Tipo: String
- ExpirationTime
-
La data e l'ora di scadenza del token, in UTC. I token sono validi per 1 ora dal momento della generazione.
Tipo: Timestamp
Esempio di risposta
{ "AuthorizedToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNjQwOTk1MjAwLCJleHAiOjE2NDA5OTg4MDAsImNsdXN0ZXJzIjpbIm15LWNsdXN0ZXIiXX0...", "ExpirationTime": "2024-01-01T12:00:00Z" }
Integrazione dei driver
I driver Amazon Redshift supportano l'autenticazione di Identity Center tramite l'utilizzo diretto di token:
Utilizzo diretto dei token
Dopo aver chiamato l'GetIdentityCenterAuthTokenAPI per ottenere un token, usa il IdpTokenAuthPlugin con il tipo di SUBJECT_TOKEN token.
Configurazione della connessione:
plugin_name = com.amazon.redshift.plugin.IdpTokenAuthPlugin token_type = SUBJECT_TOKEN token = {encrypted_token_from_api_response}
Per informazioni dettagliate sui plugin di autenticazione di Identity Center e sulla configurazione dei driver, consulta Connessione a un cluster Amazon Redshift.
Esempio di codice Java
Codice Java di esempio per la connessione tramite l'autenticazione Identity Center:
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(); }
Requisiti della policy IAM
Per utilizzare l'autenticazione Identity Center con Amazon Redshift, sono necessarie autorizzazioni IAM specifiche oltre alle autorizzazioni standard necessarie per la connessione a cluster e gruppi di lavoro Amazon Redshift.
Autorizzazioni API
Per i cluster assegnati, la sessione di ruolo IAM avanzata deve avere:
-
redshift:GetIdentityCenterAuthTokensul cluster ARNs (formato:)arn:aws:redshift:region:account:cluster:cluster-name
Per i gruppi di lavoro senza server, la sessione di ruolo IAM avanzata deve avere:
-
redshift-serverless:GetIdentityCenterAuthTokensul gruppo di lavoro (formato: ARNs )arn:aws:redshift-serverless:region:account:workgroup/workgroup-name
Policy IAM di esempio
Esempio di politica per i cluster predisposti:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift:us-east-1:123456789012:cluster:my-cluster" ] } ] }
Esempio di policy per gruppi di lavoro senza server:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-serverless:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/my-workgroup" ] } ] }
Politica di esempio per più risorse:
{ "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/*" ] } ] }
Disponibilità regionale
L'autenticazione Identity Center è disponibile nelle seguenti AWS aree:
-
Regioni commerciali: tutte le regioni Amazon Redshift supportate
-
AWS GovCloud: Disponibile nelle versioni us-gov-east -1 e us-gov-west -1
-
Regioni della Cina: disponibile in cn-north-1 e cn-northwest-1
Nota
La disponibilità delle funzionalità può variare durante l'implementazione iniziale.