

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

# Generazione di credenziali di database per un’identità IAM mediante la CLI o l’API di Amazon Redshift
<a name="generating-iam-credentials-cli-api"></a>

Per generare in modo programmatico credenziali utente temporanee del database, Amazon Redshift fornisce il [get-cluster-credentials](https://docs.aws.amazon.com/cli/latest/reference/redshift/get-cluster-credentials.html)comando per il funzionamento AWS Command Line Interface (AWS CLI) e dell'API. [GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html) In alternativa, puoi configurare il tuo client SQL con i driver JDBC o ODBC di Amazon Redshift, che gestiscono il processo di chiamata dell'operazione `GetClusterCredentials`, di recupero delle credenziali utente di database e di connessione tra il client SQL e il database Amazon Redshift. Per ulteriori informazioni, consulta [Opzioni JDBC e ODBC per la creazione delle credenziali dell’utente di database](options-for-providing-iam-credentials.md#jdbc-and-odbc-options-for-database-credentials).

**Nota**  
Consigliamo di utilizzare i driver JDBC o ODBC di Amazon Redshift per generare credenziali utente di database.

In questa sezione, puoi trovare i passaggi per richiamare a livello di codice l'`GetClusterCredentials`operazione o il get-cluster-credentials comando, recuperare le credenziali utente del database e connetterti al database.

**Per generare e utilizzare credenziali di database temporanee**

1. Crea o modifica un utente o un ruolo con le autorizzazioni necessarie. Per ulteriori informazioni sulle autorizzazioni IAM, consultare [Fase 3: Creare un ruolo IAM con le autorizzazioni per chiamare IAM o GetClusterCredentialsWith GetClusterCredentials](generating-iam-credentials-steps.md#generating-iam-credentials-role-permissions).

1. Come utente o ruolo autorizzato nel passaggio precedente, esegui il comando get-cluster-credentials CLI o chiama l'operazione `GetClusterCredentials` API e fornisci i seguenti valori:
   + **Identificatore del cluster**: il nome del cluster contenente il database.
   + **Nome utente del database**: il nome di un utente del database esistente o nuovo.
     + Se l'utente non esiste nel database ed AutoCreate è vero, viene creato un nuovo utente con PASSWORD disattivata.
     +  Se l'utente non esiste ed AutoCreate è falso, la richiesta ha esito negativo. 
     + Per questo esempio, il nome utente di database è `temp_creds_user`. 
   +  **Autocreate**: (facoltativo) crea un nuovo utente se il nome utente di database non esiste.
   +  **Nome database**: il nome del database a cui l'utente è autorizzato ad accedere. Se il nome di database non è specificato, l'utente può accedere a qualsiasi database del cluster.
   +  **Gruppi di database**: (facoltativo) un elenco di gruppi di utenti di database esistenti. Se l'accesso va a buon fine, l'utente di database viene aggiunto al gruppo di utenti specificato. Se non viene specificato alcun gruppo, l'utente dispone solo di autorizzazioni PUBLIC. I nomi dei gruppi di utenti devono corrispondere alle risorse dbgroup ARNs specificate nella policy IAM allegata all'utente o al ruolo. 
   +  **Tempo scadenza**: (facoltativo) il tempo, in secondi, fino alla scadenza delle credenziali temporanee. È possibile specificare un valore compreso tra 900 secondi (15 minuti) e 3600 secondi (60 minuti). Il valore predefinito è 900 secondi.

1. Amazon Redshift verifica che l'utente disponga dell'autorizzazione per chiamare l'operazione `GetClusterCredentials` con le risorse specificate. 

1. Amazon Redshift restituisce una password temporanea e il nome utente di database.

   L'esempio seguente utilizza la CLI di Amazon Redshift per generare credenziali di database temporanee per un utente esistente denominato `temp_creds_user`.

   ```
   aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --db-name exampledb --duration-seconds 3600
   ```

   Il risultato è illustrato di seguito.

   ```
   {
     "DbUser": "IAM:temp_creds_user", 
     "Expiration": "2016-12-08T21:12:53Z", 
     "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
   }
   ```

   L'esempio seguente utilizza la CLI di Amazon Redshift con autocreate per generare credenziali di database temporanee per un nuovo utente e per aggiungere l'utente al gruppo `example_group`.

   ```
   aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --auto-create --db-name exampledb --db-groups example_group --duration-seconds 3600
   ```

   Il risultato è illustrato di seguito.

   ```
   {
     "DbUser": "IAMA:temp_creds_user:example_group", 
     "Expiration": "2016-12-08T21:12:53Z", 
     "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
   }
   ```

1. Stabilisci una connessione di autenticazione Secure Sockets Layer (SSL) con il cluster Amazon Redshift e invia una richiesta di accesso con il nome utente e la password contenuti nella risposta `GetClusterCredentials`. Includere il prefisso `IAM:` o `IAMA:` con il nome utente, ad esempio `IAM:temp_creds_user` o `IAMA:temp_creds_user`.
**Importante**  
Configurare il client SQL per richiedere SSL. Se non si esegue questa operazione e il client SQL tenta automaticamente di connettersi con SSL, può utilizzare di nuovo una connessione non SSL in caso di problemi. In tal caso, il primo tentativo di connessione può non riuscire in quanto le credenziali sono scadute o invalide e il secondo non riesce perché la connessione non è SSL. Se ciò si verifica, è possibile non vedere il primo messaggio di errore. Per ulteriori informazioni sulla connessione al cluster mediante SSL, consultare [Configurazione delle opzioni di sicurezza per le connessioni](connecting-ssl-support.md).

1. Se la connessione non utilizza SSL, il tentativo di connessione non riesce. 

1. Il cluster invia una richiesta `authentication` al client SQL. 

1. Il client SQL invia quindi la password temporanea al cluster. 

1. Se la password è valida e non è scaduta, il cluster completa la connessione. 