View a markdown version of this page

Connettiti a Redshift con le sessioni di ruolo Identity-enhanced IAM - Amazon Redshift

Amazon Redshift non supporterà più l'uso delle UDF Python dopo il 30 giugno 2026. Inizieremo ad applicarlo per fasi. Per ulteriori informazioni sulla fine del ciclo di vita e sulle opzioni di migrazione di Python, consulta il post del blog pubblicato il 30 giugno 2025.

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

Connettiti a Redshift con le sessioni di ruolo Identity-enhanced IAM

Puoi utilizzare IAM Identity Center per fornire un 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 che contengono informazioni sull'identità dell'utente. Queste API 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 di Amazon Redshift utilizzando la configurazione esistente dell'Identity Center.

Prerequisiti

Prima di utilizzare l'autenticazione Identity Center con Amazon Redshift, assicurati di disporre di quanto segue:

  • Configurazione dell'Identity Center: il tuo account deve avere IAM Identity Center configurato con le identità degli utenti e le assegnazioni appropriate delle applicazioni. Per le istruzioni di configurazione, consulta Configurazione di IAM Identity Center.

    Importante

    Se vuoi connetterti a Redshift, devi usare redshift:connect scope.

  • Identity-enhanced credenziali: l'applicazione deve utilizzare credenziali con identità avanzata che contengano informazioni sull'identità dell'utente incorporate. Per ulteriori informazioni, consulta Utilizzo di sessioni di ruolo IAM con identità avanzate.

  • Autorizzazioni IAM: il ruolo o l'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 con provisioning: redshift:GetIdentityCenterAuthToken sugli ARN del cluster (formato:) arn:aws:redshift:region:account:cluster:cluster-name

    • Per gruppi di lavoro serverless: redshift-serverless:GetIdentityCenterAuthToken sugli ARN dei gruppi di lavoro (formato:) arn:aws:redshift-serverless:region:account:workgroup/workgroup-name

  • Driver compatibili: utilizza driver JDBC o ODBC di Amazon Redshift che supportano i token autorizzati di Identity Center:

  • Configurazione di rete per il routing VPC avanzato: se il routing VPC avanzato è attivato, il VPC deve essere in grado di raggiungere i servizi Identity Center. Gli endpoint Interface VPC sono il modo consigliato per fornire questa connettività. Configura questa connettività prima che gli utenti effettuino l'accesso. Per ulteriori informazioni sui requisiti avanzati di routing VPC per Identity Center, consulta. Utilizzo AWS Autenticazione IAM Identity Center con routing VPC avanzato

Come funziona l'autenticazione di Identity Center

L'autenticazione Identity Center per Amazon Redshift utilizza il seguente flusso di lavoro:

  1. L'applicazione chiama l'GetIdentityCenterAuthTokenAPI utilizzando credenziali con identità avanzata che contengono informazioni sull'identità dell'utente incorporate.

  2. Amazon Redshift convalida l'identità di Identity Center e genera un token autorizzato crittografato con ambito per cluster o gruppi di lavoro specifici. Vedi esempi di policy IAM.

  3. L'applicazione utilizza questo token per connettersi al cluster o al gruppo di lavoro Amazon Redshift specificato.

  4. 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à avanzate. Per ulteriori informazioni, consulta Utilizzo di sessioni di ruolo IAM con identità avanzate.

Se chiami l'API senza credenziali con identità avanzata, riceverai un errore. UnsupportedOperationFault

GetIdentityCenterAuthToken Operazioni API

Amazon Redshift fornisce 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 su cui è stato effettuato il provisioning

Per i cluster Amazon Redshift con provisioning, utilizza l'GetIdentityCenterAuthTokenAPI nel servizio Amazon Redshift per generare un token autorizzato.

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 elemento. Massimo 20 articoli.

Obbligatorio: sì

Esempi di CLI

Esempio: ottenere 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 serverless

Per i gruppi di lavoro Amazon Redshift Serverless, utilizza l'GetIdentityCenterAuthTokenAPI nel servizio Amazon Redshift Serverless per generare un token autorizzato.

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

Entrambe le API 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: stringa

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 Identity Center tramite l'utilizzo diretto dei token:

L'utilizzo diretto dei token

Dopo aver chiamato l'GetIdentityCenterAuthTokenAPI per ottenere un token, utilizza IdpTokenAuthPlugin 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 plug-in di autenticazione di Identity Center e sulla configurazione dei driver, consulta Connessione a un cluster Amazon Redshift.

Esempio di codice Java

Esempio di codice Java per connettersi 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 ai cluster e ai gruppi di lavoro di Amazon Redshift.

Autorizzazioni API

Per i cluster con provisioning, la sessione di ruolo IAM avanzata deve contenere:

  • redshift:GetIdentityCenterAuthTokensugli ARN del cluster (formato:) arn:aws:redshift:region:account:cluster:cluster-name

Per i gruppi di lavoro serverless, la sessione di ruolo IAM avanzata deve contenere:

  • redshift-serverless:GetIdentityCenterAuthTokensugli ARN dei gruppi di lavoro (formato:) arn:aws:redshift-serverless:region:account:workgroup/workgroup-name

Policy IAM di esempio

Esempio di politica per i cluster con provisioning:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift:us-east-1:123456789012:cluster:my-cluster" ] } ] }

Esempio di politica per gruppi di lavoro serverless:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-serverless:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/my-workgroup" ] } ] }

Esempio di politica 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 in 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.