

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

# Autenticazione del database IAM
<a name="UsingWithRDS.IAMDBAuth"></a>

Puoi autenticarti nel tuo cluster di DB utilizzando l'autenticazione del database AWS Identity and Access Management (IAM). L'autenticazione del database IAM funziona con Aurora MySQL e Aurora PostgreSQL. Con questo metodo di autenticazione, non devi utilizzare una password quando esegui la connessione al cluster database. Utilizzi invece un token di autenticazione.

Un *token di autenticazione* è una stringa univoca di caratteri generata da Amazon Aurora su richiesta. I token di autenticazione vengono generati utilizzando la versione 4 di AWS Signature. Ciascun token ha un ciclo di vita di 15 minuti. Non devi archiviare le credenziali dell'utente nel database, perché l'autenticazione è gestita esternamente utilizzando IAM. Puoi anche utilizzare ancora l'autenticazione standard del database. Il token viene utilizzato solo per l'autenticazione e non influisce sulla sessione dopo che è stato stabilito.

L'autenticazione del database IAM fornisce i seguenti vantaggi:
+ Il traffico di rete da e verso il database viene crittografato utilizzando Secure Socket Layer (SSL) o Transport Layer Security (TLS). Per ulteriori informazioni sull'utilizzo SSL/TLS con Aurora, consulta. [Utilizzo SSL/TLS per crittografare una connessione a un'](UsingWithRDS.SSL.md)
+ Puoi usare IAM per gestire in modo centralizzato l'accesso alle risorse del database invece di gestire l'accesso singolarmente in ogni cluster database.
+ Per le applicazioni in esecuzione su Amazon EC2, puoi utilizzare le credenziali specifiche dell'istanza EC2 per accedere al database invece di una password, per maggiore sicurezza.

In generale, prendi in considerazione l'utilizzo dell'autenticazione del database IAM quando le applicazioni creano meno di 200 connessioni al secondo e non desideri gestire nomi utente e password direttamente nel codice dell'applicazione.

Il driver JDBC Amazon Web Services (AWS) supporta l’autenticazione del database IAM. Per ulteriori informazioni, consulta [AWS IAM Authentication Plugin](https://github.com/aws/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheIamAuthenticationPlugin.md) nel [repository di driver GitHub JDBC di Amazon Web Services (AWS)](https://github.com/aws/aws-advanced-jdbc-wrapper).

Il driver Python Amazon Web Services (AWS) supporta l’autenticazione del database IAM. Per ulteriori informazioni, consulta [AWS IAM Authentication Plugin](https://github.com/aws/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheIamAuthenticationPlugin.md) nel repository [Python Driver GitHub di Amazon Web Services (AWS)](https://github.com/aws/aws-advanced-python-wrapper).

Per apprendere il processo di impostazione di IAM per l’autenticazione del database, consulta i seguenti argomenti:
+ [Abilitazione e disabilitazione dell’autenticazione database IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Creazione e utilizzo di una policy IAM per l'accesso al database IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Creazione di un account database tramite l’autenticazione IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)
+ [Connessione al cluster di database tramite l'autenticazione IAM](UsingWithRDS.IAMDBAuth.Connecting.md) 

## Disponibilità di regioni e versioni
<a name="UsingWithRDS.IAMDBAuth.Availability"></a>

 La disponibilità e il supporto della funzionalità varia a seconda delle versioni specifiche di ciascun motore di database Aurora e in tutte le Regioni AWS. Per ulteriori informazioni sulla disponibilità di versioni e Regioni per l'autenticazione del database Aurora e IAM, consulta [Regioni e motori di database Aurora supportati per l’autenticazione del database IAM](Concepts.Aurora_Fea_Regions_DB-eng.Feature.IAMdbauth.md). 

Per Aurora MySQL, tutte le classi di istanza database supportate supportano l'autenticazione del database IAM, ad eccezione di db.t2.small e db.t3.small. Per informazioni sulle classi di istanza database supportate, consulta [Motori di database supportati per classi di istanza database](Concepts.DBInstanceClass.SupportAurora.md). 

## Supporto per CLI e SDK
<a name="UsingWithRDS.IAMDBAuth.cli-sdk"></a>

L'autenticazione del database IAM è disponibile per [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/rds/generate-db-auth-token.html)e per i seguenti linguaggi: AWS SDKs
+ [AWS SDK per .NET](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/RDS/TRDSAuthTokenGenerator.html)
+ [AWS SDK per C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/class_aws_1_1_r_d_s_1_1_r_d_s_client.html#ae134ffffed5d7672f6156d324e7bd392)
+ [AWS SDK per Go](https://docs.aws.amazon.com/sdk-for-go/api/service/rds/#pkg-overview)
+ [AWS SDK per Java](https://docs.aws.amazon.com/sdk-for-java/latest/reference/software/amazon/awssdk/services/rds/RdsUtilities.html)
+ [AWS SDK per JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_rds_signer.html)
+ [AWS SDK per PHP](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Rds.AuthTokenGenerator.html)
+ [AWS SDK per Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.generate_db_auth_token)
+ [AWS SDK per Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/AuthTokenGenerator.html)

## Limitazioni per l'autenticazione database IAM
<a name="UsingWithRDS.IAMDBAuth.Limitations"></a>

Quando utilizzi l'autenticazione database IAM, tieni presenti le seguenti limitazioni:
+ Attualmente, l'autenticazione database IAM non supporta nessuna delle chiavi di contesto delle condizioni globali.

  Per ulteriori informazioni sulle chiavi di contesto delle condizioni globali, consulta [Chiavi di contesto delle condizioni globali AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) nella *Guida per l'utente di IAM*.
+ Per PostgreSQL, se il ruolo IAM (`rds_iam`) viene aggiunto a un utente (incluso l'utente principale RDS), l'autenticazione IAM ha la precedenza sull'autenticazione tramite password, quindi l'utente deve accedere come un utente IAM.
+ Non è possibile utilizzare un record DNS Route 53 personalizzato anziché l'endpoint del cluster di databaseper generare il token di autenticazione.
+ CloudWatch e CloudTrail non registrate l'autenticazione IAM. Questi servizi non tengono traccia delle chiamate API `generate-db-auth-token` che autorizzano il ruolo IAM a consentire la connessione al database.
+ L’autenticazione del database IAM richiede risorse di calcolo sul cluster di database. Per una connettività affidabile è necessario disporre di una memoria aggiuntiva compresa tra 300 e 1000 MiB nel database. Per individuare la memoria necessaria per il carico di lavoro, si confronta la colonna RES per i processi RDS nell’elenco dei processi di monitoraggio avanzato prima e dopo aver abilitato l’autenticazione del database IAM. Per informazioni, consulta [Visualizzazione delle metriche nella console RDS](USER_Monitoring.OS.Viewing.md).

  Se si utilizza un’istanza di classe espandibile, evitare di esaurire la memoria riducendo della stessa quantità la memoria utilizzata da altri parametri, come buffer e cache.
+ Per Aurora MySQL, non è possibile utilizzare l'autenticazione basata su password per un utente del database configurato con l'autenticazione IAM.
+ L’autenticazione del database IAM non è supportata per RDS su Outposts per tutti i motori.

## Consigli per l'autenticazione del database IAM
<a name="UsingWithRDS.IAMDBAuth.ConnectionsPerSecond"></a>

Quando si utilizza l'autenticazione del database IAM, è consigliabile procedere come segue:
+ Utilizzare l'autenticazione del database IAM quando l'applicazione richiede meno di 200 nuove connessioni di autenticazione del database IAM al secondo.

  I motori di database che funzionano con Amazon Aurora non prevedono limitazioni per i tentativi di autenticazione al secondo. Tuttavia, quando utilizzi un'autenticazione database IAM, l'applicazione deve generare un token di autenticazione. L'applicazione usa quindi il token per connettersi al cluster database. Se eccedi il limite massimo di nuove connessioni al secondo, la gestione extra dell'autenticazione database IAM può causare throttling della connessione. 

  Valuta la possibilità di utilizzare il pool di connessioni nelle applicazioni per mitigare la creazione continua di connessioni. Questo può ridurre il sovraccarico derivante dall'autenticazione DB IAM e consentire alle applicazioni di riutilizzare le connessioni esistenti. In alternativa, per questi casi d'uso considera l'utilizzo di Server proxy per RDS. Per Server proxy per RDS sono previsti costi aggiuntivi. Consulta i [prezzi per Server proxy per RDS](https://aws.amazon.com/rds/proxy/pricing/).
+ La dimensione di un token di autenticazione del database IAM dipende da molti fattori, tra cui il numero di tag IAM, le policy di servizio IAM, la lunghezza del nome della risorsa Amazon (ARN) e altre proprietà IAM e del database. La dimensione minima del token è generalmente di circa 1 KB, ma può essere maggiore. Poiché questo token viene utilizzato come password nella stringa di connessione al database mediante l'autenticazione IAM, è necessario assicurarsi che il driver del database (ad esempio ODBC) and/or non limiti o altrimenti tronchi questo token a causa delle sue dimensioni. Un token troncato causa l'esito negativo della convalida dell'autenticazione effettuata dal database e da IAM.
+ Se si utilizzano credenziali temporanee durante la creazione di un token di autenticazione del database IAM, le credenziali temporanee devono essere ancora valide quando si utilizza il token di autenticazione del database IAM per effettuare una richiesta di connessione.

## Chiavi di contesto relative alle condizioni globali non supportate AWS
<a name="UsingWithRDS.IAMDBAuth.GlobalContextKeys"></a>

 L'autenticazione del database IAM non supporta il seguente sottoinsieme di chiavi di contesto delle condizioni AWS globali. 
+ `aws:Referer`
+ `aws:SourceIp`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:UserAgent`
+ `aws:VpcSourceIp`

Per ulteriori informazioni, consultare [Chiavi di contesto delle condizioni globali AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) nella *Guida per l'utente IAM*. 