

 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](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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à
<a name="identity-center-authentication"></a>

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
<a name="identity-center-auth-prerequisites"></a>

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](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html).
**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.](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html)
+ **Autorizzazioni IAM:** il tuo ruolo o utente IAM deve disporre delle autorizzazioni per chiamare l'`GetIdentityCenterAuthToken`API e accedere ai cluster o ai gruppi di lavoro specificati. Autorizzazioni richieste:
  + Per i cluster predisposti: su cluster (formato:`redshift:GetIdentityCenterAuthToken`) ARNs `arn:aws:redshift:region:account:cluster:cluster-name`
  + Per gruppi di lavoro senza server: `redshift-serverless:GetIdentityCenterAuthToken` sul gruppo di lavoro (formato:) ARNs `arn: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](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-install.html) 2.0
  + Driver ODBC: consulta [Installazione e configurazione del driver ODBC Amazon Redshift versione 2.0](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-install.html)

## Come funziona l'autenticazione Identity Center
<a name="identity-center-auth-overview"></a>

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

1. L'applicazione chiama l'`GetIdentityCenterAuthToken`API utilizzando credenziali con identità avanzata che contengono informazioni sull'identità utente incorporate.

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

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

1. 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](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html).  
Se chiami l'API senza credenziali con identità avanzata, riceverai un errore. `UnsupportedOperationFault`

## GetIdentityCenterAuthToken Operazioni API
<a name="identity-center-auth-apis"></a>

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
<a name="provisioned-identity-center-auth"></a>

Per i cluster Amazon Redshift forniti, utilizza `GetIdentityCenterAuthToken` l'API nel servizio Amazon Redshift per generare token autorizzati.

#### Sintassi della richiesta
<a name="provisioned-request-syntax"></a>

```
{
   "ClusterIds": [ "string" ]
}
```

#### Parametri della richiesta
<a name="provisioned-request-parameters"></a>

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
<a name="provisioned-cli-examples"></a>

**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
<a name="serverless-identity-center-auth"></a>

Per i gruppi di lavoro Amazon Redshift Serverless, utilizza l'`GetIdentityCenterAuthToken`API nel servizio Amazon Redshift Serverless per generare token autorizzati.

#### Sintassi della richiesta
<a name="serverless-request-syntax"></a>

```
{
   "WorkgroupNames": [ "string" ]
}
```

#### Parametri della richiesta
<a name="serverless-request-parameters"></a>

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
<a name="serverless-cli-examples"></a>

**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
<a name="identity-center-auth-response"></a>

Entrambi APIs restituiscono la stessa struttura di risposta:

```
{
   "AuthorizedToken": "string",
   "ExpirationTime": "timestamp"
}
```

#### Parametri di risposta
<a name="identity-center-response-parameters"></a>

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
<a name="identity-center-response-example"></a>

```
{
    "AuthorizedToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNjQwOTk1MjAwLCJleHAiOjE2NDA5OTg4MDAsImNsdXN0ZXJzIjpbIm15LWNsdXN0ZXIiXX0...",
    "ExpirationTime": "2024-01-01T12:00:00Z"
}
```

## Integrazione dei driver
<a name="identity-center-auth-driver-integration"></a>

I driver Amazon Redshift supportano l'autenticazione di Identity Center tramite l'utilizzo diretto di token:

### Utilizzo diretto dei token
<a name="direct-token-usage"></a>

Dopo aver chiamato l'`GetIdentityCenterAuthToken`API 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](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-to-cluster.html).

### Esempio di codice Java
<a name="java-code-example"></a>

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
<a name="identity-center-auth-iam-permissions"></a>

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
<a name="identity-center-auth-iam-api-permissions"></a>

Per i cluster assegnati, la sessione di ruolo IAM avanzata deve avere:
+ `redshift:GetIdentityCenterAuthToken`sul 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:GetIdentityCenterAuthToken`sul gruppo di lavoro (formato: ARNs ) `arn:aws:redshift-serverless:region:account:workgroup/workgroup-name`

### Policy IAM di esempio
<a name="identity-center-auth-iam-policy-examples"></a>

**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
<a name="identity-center-auth-regional-availability"></a>

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.