

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

# Connessione a un database tramite RDS Proxy
<a name="rds-proxy-connecting"></a>

Il modo per connettersi a un’istanza database RDS tramite un proxy o connettendosi al database è generalmente lo stesso. Per ulteriori informazioni, consulta [Panoramica degli endpoint proxy](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 

**Topics**
+ [Connessione a un database utilizzando le credenziali del database](#rds-proxy-connecting-native)
+ [Connessione a un database tramite l'autenticazione IAM](#rds-proxy-connecting-iam)
+ [Considerazioni sulla connessione a Microsoft SQL Server](#rds-proxy-connecting-sqlserver)
+ [Considerazioni sulla connessione a PostgreSQL](#rds-proxy-connecting-postgresql)

## Connessione a un database utilizzando le credenziali del database
<a name="rds-proxy-connecting-native"></a>

 Utilizza i seguenti passaggi per connetterti a un proxy utilizzando le credenziali del database: 

1.  Trova l'endpoint del proxy. In Console di gestione AWS, puoi trovare l'endpoint nella pagina dei dettagli del proxy corrispondente. Con AWS CLI, è possibile utilizzare il [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)comando. L’esempio seguente mostra come. 

   ```
   # Add --output text to get output as a simple tab-separated list.
   $ aws rds describe-db-proxies --query '*[*].{DBProxyName:DBProxyName,Endpoint:Endpoint}'
   [
       [
           {
               "Endpoint": "the-proxy.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy"
           },
           {
               "Endpoint": "the-proxy-other-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-other-secret"
           },
           {
               "Endpoint": "the-proxy-rds-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-rds-secret"
           },
           {
               "Endpoint": "the-proxy-t3.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-t3"
           }
       ]
   ]
   ```

1.  Specificare l’endpoint come parametro host nella stringa di connessione per l’applicazione client. Ad esempio, specificare l'endpoint proxy come valore per l'opzione `mysql -h` o l'opzione `psql -h`. 

1.  Fornisci lo stesso nome utente e la stessa password del database come fai normalmente. 

## Connessione a un database tramite l'autenticazione IAM
<a name="rds-proxy-connecting-iam"></a>

 Quando utilizzi l'autenticazione IAM con RDS Proxy, hai due opzioni per l'autenticazione tra il client e il proxy:
+ Configura gli utenti del database in modo che si autentichino con nomi utente e password normali. RDS Proxy recupera le credenziali del nome utente e della password da Secrets Manager. La connessione da RDS Proxy al database sottostante non passa tramite IAM.
+ È inoltre possibile utilizzare l'autenticazione end-to-end IAM, che si connette al database tramite il proxy utilizzando IAM senza richiedere le credenziali del database.

 Per connetterti a Server proxy per RDS con l’autenticazione IAM, utilizza la stessa procedura di connessione generale utilizzata per l’autenticazione IAM con un’istanza database RDS. Per informazioni generali sull'utilizzo di IAM, consulta [Sicurezza in Amazon RDS ](UsingWithRDS.md). Se utilizzi l'autenticazione end-to-end IAM, fornisci il plug-in di autenticazione IAM al tuo utente DB. Per informazioni, consulta [Creazione di un account database tramite l’autenticazione IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

 Le principali differenze nell'utilizzo di IAM per RDS Proxy includono le seguenti: 
+ Con l'autenticazione IAM standard, gli utenti del database dispongono di credenziali regolari all'interno del database. Si impostano i segreti Secrets Manager contenenti questi nomi utente e password e si autorizza RDS Proxy a recuperare le credenziali da Secrets Manager. L'autenticazione IAM si applica alla connessione tra il programma client e il proxy. Il proxy esegue quindi l'autenticazione nel database utilizzando il nome utente e le credenziali della password recuperate da Secrets Manager.
+ Con l'autenticazione end-to-end IAM, non è necessario configurare i segreti di Secrets Manager per le credenziali del database. L'autenticazione IAM si applica alla connessione tra il client al proxy e il proxy al database.
+ Invece dell'istanza, del cluster o dell'endpoint dell'istanza di lettura, specifica l'endpoint del proxy. Per informazioni dettagliate sull'endpoint proxy, vedere [Connessione all'istanza tramite l'autenticazione IAM](UsingWithRDS.IAMDBAuth.Connecting.md).
+ Quando ci si connette a un proxy utilizzando l'autenticazione IAM è necessario utilizzare Transport Layer Security (TLS)/Secure Sockets Layer (SSL).

È possibile concedere a un utente specifico l'accesso al proxy modificando la policy IAM. Di seguito è riportato un esempio.

```
"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"
```

**Suggerimento**  
Quando configuri l'autenticazione IAM per le connessioni proxy RDS, segui queste importanti linee guida per evitare problemi di connessione:  
Non concedete il `rds_iam` ruolo mantenendo l'autenticazione generale con password per lo stesso utente o ruolo del database.
Ricorda che mentre i client si connettono al proxy RDS utilizzando l'autenticazione IAM, il proxy RDS si connette sempre al database utilizzando l'autenticazione tramite password tramite Secrets Manager.
Se si verificano frequenti interruzioni e riconnessioni della connessione, rimuovi eventuali `rds_iam` concessioni esistenti dall'utente o dal ruolo e utilizza solo l'autenticazione tramite password.
Assicurati che la tua politica in materia di password soddisfi i requisiti relativi ai caratteri sicuri SCRAM-SHA-256.
La combinazione di metodi di autenticazione IAM e password per lo stesso utente del database può causare instabilità della connessione.

## Considerazioni sulla connessione a Microsoft SQL Server
<a name="rds-proxy-connecting-sqlserver"></a>

Per connettere un proxy con l'autenticazione IAM, non utilizzare il campo della password. Fornisci invece la proprietà token appropriata per ogni tipo di driver di database nel campo del token. Ad esempio, utilizza la proprietà `accessToken` per JDBC, la proprietà `sql_copt_ss_access_token` per ODBC Oppure usa la `AccessToken` proprietà per il driver.NET SqlClient . Non puoi usare l'autenticazione IAM con i client che non supportano le proprietà dei token.

In alcune condizioni, il proxy non può condividere una connessione al database e associa la connessione dall'applicazione client al proxy a una connessione al database dedicata. Per ulteriori informazioni su queste condizioni, consulta [Evitare di effettuare il pinning di un Server proxy per RDS](rds-proxy-pinning.md).

## Considerazioni sulla connessione a PostgreSQL
<a name="rds-proxy-connecting-postgresql"></a>

Se si crea un nuovo utente del database PostgreSQL per la connessione a Server proxy per RDS, assicurarsi di concedere all’utente il privilegio `CONNECT` sul database. Senza questo privilegio, l’utente non può stabilire una connessione. Per ulteriori informazioni, consulta [Aggiungere un nuovo utente del database a un database PostgreSQL quando si utilizza Server proxy per RDS](rds-proxy-new-db-user.md#rds-proxy-new-db-user-pg).

Quando un client avvia una connessione a un database PostgreSQL, invia un messaggio di avvio che include coppie di stringhe di nome parametro e valore. Per i dettagli, vedere i `StartupMessage` in [Formati dei messaggi PostgreSQL](https://www.postgresql.org/docs/current/protocol-message-formats.html) nella documentazione di PostgreSQL. 

Quando si effettua la connessione tramite un proxy RDS, il messaggio di avvio può includere i seguenti parametri attualmente riconosciuti: 
+  `user` 
+  `database`

 Il messaggio di avvio può includere anche i seguenti parametri di runtime aggiuntivi: 
+ `[application\$1name](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-APPLICATION-NAME) `
+ `[client\$1encoding](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-CLIENT-ENCODING) `
+ `[DateStyle](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-DATESTYLE) `
+ `[TimeZone](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-TIMEZONE) `
+  `[extra\$1float\$1digits](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-EXTRA-FLOAT-DIGITS) `
+  `[ search\$1path ](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-SEARCH-PATH)` 

 Per ulteriori informazioni sulla messaggistica PostgreSQL, vedere [Frontend/Backend Protocol](https://www.postgresql.org/docs/current/protocol.html) nella documentazione di PostgreSQL.

 Per PostgreSQL, se si utilizza JDBC, è consigliabile effettuare quanto segue per evitare il pinning:
+ Impostare il parametro `assumeMinServerVersion` di connessione JDBC su almeno `9.0` per evitare il pinning. In questo modo si impedisce al driver JDBC di eseguire un ulteriore round trip durante l’avvio della connessione quando viene eseguito `SET extra_float_digits = 3`. 
+ Impostare il parametro di connessione JDBC `ApplicationName` su `any/your-application-name` per evitare il pinning. In questo modo si impedisce al driver JDBC di eseguire un ulteriore round trip durante l'avvio della connessione quando viene eseguito `SET application_name = "PostgreSQL JDBC Driver"`. Si noti che il parametro JDBC è `ApplicationName` ma il parametro `StartupMessage` PostgreSQL è `application_name`.

Per ulteriori informazioni, consulta [Evitare di effettuare il pinning di un Server proxy per RDS](rds-proxy-pinning.md). Per ulteriori informazioni sulla connessione tramite JDBC, vedere [Connessione al database](https://jdbc.postgresql.org/documentation/setup/) nella documentazione di PostgreSQL.