

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

# Gestione dei segreti AWS tutorial
<a name="tutorials"></a>

**Topics**
+ [Trova segreti non protetti nel tuo codice con Amazon Reviewer CodeGuru](integrating-codeguru.md)
+ [Sposta i segreti codificati in Gestione dei segreti AWS](hardcoded.md)
+ [Sposta le credenziali del database codificate in Gestione dei segreti AWS](hardcoded-db-creds.md)
+ [Imposta la rotazione alternata degli utenti per Gestione dei segreti AWS](tutorials_rotation-alternating.md)
+ [Imposta la rotazione di un singolo utente per Gestione dei segreti AWS](tutorials_rotation-single.md)

# Trova segreti non protetti nel tuo codice con Amazon Reviewer CodeGuru
<a name="integrating-codeguru"></a>

Amazon CodeGuru Reviewer è un servizio che utilizza l'analisi dei programmi e l'apprendimento automatico per rilevare potenziali difetti difficili da trovare per gli sviluppatori e offre suggerimenti per migliorare il codice Java e Python. CodeGuru Reviewer si integra con Secrets Manager per trovare segreti non protetti nel codice. Per i tipi di segreti che riesce a trovare, consulta [Tipi di segreti rilevati da CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/recommendations.html#secrets-found-types) nella *Amazon CodeGuru Reviewer User* Guide.

Dopo aver trovato i segreti codificati, completa le seguenti operazioni per sostituirli:
+ [Sposta le credenziali del database codificate in Gestione dei segreti AWS](hardcoded-db-creds.md)
+ [Sposta i segreti codificati in Gestione dei segreti AWS](hardcoded.md)

# Sposta i segreti codificati in Gestione dei segreti AWS
<a name="hardcoded"></a>

Se nel codice sono presenti segreti in testo semplice, si consiglia di ruotarli e poi archiviarli in Secrets Manager. Lo spostamento delle credenziali in Secrets Manager risolve il problema di visibilità del segreto a chiunque veda il codice, perché andando avanti il codice recupera il segreto direttamente da Secrets Manager. La rotazione del segreto revoca il segreto codificato corrente in modo che non sia più valido. 

Per i segreti delle credenziali del database, consulta [Sposta le credenziali del database codificate in Gestione dei segreti AWS](hardcoded-db-creds.md).

Prima di iniziare, è necessario determinare chi ha bisogno di accedere al segreto. Consigliamo di utilizzare due ruoli IAM per gestire l'autorizzazione al tuo segreto:
+ Un ruolo che gestisce i segreti nella tua organizzazione. Per ulteriori informazioni, consulta [Autorizzazioni di amministrazione di Secrets Manager](auth-and-access.md#auth-and-access_admin). Questo ruolo sarà utilizzato per creare e ruotare il segreto.
+ Un ruolo che può utilizzare il segreto in fase di esecuzione, ad esempio in questo tutorial che usi. *RoleToRetrieveSecretAtRuntime* Il tuo codice assume questo ruolo per recuperare il segreto. In questo tutorial, si concede al ruolo solo l'autorizzazione per recuperare il valore di un segreto e si concede l'autorizzazione utilizzando la policy delle risorse del segreto. Per le alternative, consulta [Fasi successive](#hardcoded_step-next).

**Topics**
+ [Fase 1: creazione del segreto](#hardcoded_step-1)
+ [Fase 2: aggiornamento del codice](#hardcoded_step-2)
+ [Fase 3: aggiornamento del segreto](#hardcoded_step-3)
+ [Fasi successive](#hardcoded_step-next)

## Fase 1: creazione del segreto
<a name="hardcoded_step-1"></a>

Il primo passo consiste nel copiare il segreto codificato esistente in Secrets Manager. Se il segreto è correlato a una AWS risorsa, memorizzalo nella stessa regione della risorsa. Altrimenti, archivialo nella regione con la latenza più bassa per il tuo caso d'uso.

**Creazione di un segreto (console)**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Scegli **Archivia un nuovo segreto**.

1. Nella pagina **Choose secret type** (Scegli il tipo di segreto), effettua le seguenti operazioni:

   1. Per **Secret type** (Tipo di segreto), scegli **Other type of secret** (Altro tipo di segreto).

   1. Inserisci il tuo segreto come **coppie chiave/valore** o in **testo semplice**. Alcuni esempi:

------
#### [ API key ]

      Entra in key/value coppia:

      **ClientID** : *my\$1client\$1id*

      **ClientSecret** : *wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY*

------
#### [ OAuth token ]

      Inserisci come testo semplice:

      *AKIAI44QH8DHBEXAMPLE*

------
#### [ Digital certificate ]

      Inserisci come testo semplice:

      ```
      -----BEGIN CERTIFICATE-----
      EXAMPLE
      -----END CERTIFICATE-----
      ```

------
#### [ Private key ]

      Inserisci come testo semplice:

      ```
      –--- BEGIN PRIVATE KEY ----
      EXAMPLE
      ––-- END PRIVATE KEY –---
      ```

------

   1. In **Encryption key** (Chiave di crittografia), scegli **aws/secretsmanager** per utilizzare la Chiave gestita da AWS per Secrets Manager. L'utilizzo di questa chiave non prevede costi aggiuntivi. Puoi inoltre utilizzare la tua chiave gestita dal cliente, ad esempio per [accedere al segreto da un altro Account AWS](auth-and-access_examples_cross.md). Per informazioni sui costi di utilizzo di una chiave gestita dal cliente, consulta la sezione [Prezzi](intro.md#asm_pricing).

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Choose secret type** (Scegli il tipo di segreto), effettua le seguenti operazioni:

   1. Inserisci un **Secret name** (Nome del segreto) e una **Description** (Descrizione) descrittivi. 

   1. In **Resource permissions** (Autorizzazioni della risorsa), scegli **Edit permissions** (Modifica autorizzazioni). **Incolla la seguente politica, che consente di *RoleToRetrieveSecretAtRuntime* recuperare il segreto, quindi scegli Salva.**

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/RoleToRetrieveSecretAtRuntime"
                  },
                  "Action": "secretsmanager:GetSecretValue",
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. Nella parte inferiore della pagina scegli **Next** (Avanti).

1. Nella pagina **Configure rotation** (Configura la rotazione), mantieni la rotazione disattivata. Scegli **Next (Successivo)**.

1. Nella pagina **Review (Revisione)**, rivedi i dettagli dei segreti e quindi scegli **Store (Archivia)**.

## Fase 2: aggiornamento del codice
<a name="hardcoded_step-2"></a>

Il codice deve assumere il ruolo IAM *RoleToRetrieveSecretAtRuntime* per poter recuperare il segreto. Per ulteriori informazioni, consulta [Passare a un ruolo IAM (AWS API).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html)

Successivamente, aggiorna il codice per recuperare il segreto da Secrets Manager utilizzando il codice di esempio fornito da Secrets Manager. 

**Ricerca del codice di esempio**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Nella pagina dell'elenco **Secrets (Segreti)** scegli il segreto.

1. Scorrere verso il basso fino a **Sample code** (Codice di esempio). Scegli il linguaggio di programmazione, quindi copia il frammento di codice.

Nell'applicazione, rimuovi il segreto codificato e incolla il frammento di codice. A seconda del linguaggio del codice, potrebbe essere necessario aggiungere una chiamata alla funzione o al metodo nel frammento.

Verifica che la tua applicazione funzioni come previsto con il segreto al posto del segreto codificato.

## Fase 3: aggiornamento del segreto
<a name="hardcoded_step-3"></a>

L'ultima fase è la revoca e l'aggiornamento del segreto codificato. Fai riferimento all'origine del segreto per trovare le istruzioni per revocare e aggiornare il segreto. Ad esempio, potrebbe essere necessario disattivare il segreto corrente e generarne uno nuovo.

**Aggiornamento del segreto con il nuovo valore**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Scegli **Secrets** (Segreti), quindi scegli il segreto.

1. Nella pagina **Secret details** (Dettagli del segreto), scorri verso il basso e scegli **Retrieve secret value** (Recupera il valore del segreto), quindi **Edit** (Modifica).

1. Aggiorna il segreto, quindi scegli **Save** (Salva). 

Quindi, verifica che la tua applicazione funzioni come previsto con il nuovo segreto.

## Fasi successive
<a name="hardcoded_step-next"></a>

Dopo aver rimosso un segreto codificato dal codice, ecco alcuni concetti da considerare:
+ [Per trovare segreti codificati nelle tue applicazioni Java e Python, ti consigliamo Amazon Reviewer. CodeGuru ](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html)
+ È possibile migliorare le prestazioni e ridurre i costi tramite la memorizzazione nella cache dei segreti. Per ulteriori informazioni, consulta [Ottieni segreti da Gestione dei segreti AWS](retrieving-secrets.md).
+ Per i segreti a cui accedi da più regioni, considera la possibilità di replicare il tuo segreto per migliorare la latenza. Per ulteriori informazioni, consulta [Replica i Gestione dei segreti AWS segreti in tutte le regioni](replicate-secrets.md).
+ In questo tutorial, hai concesso *RoleToRetrieveSecretAtRuntime* solo l'autorizzazione per recuperare il valore segreto. Per concedere al ruolo più autorizzazioni, ad esempio per ottenere metadati sul segreto o per visualizzare un elenco di segreti, consulta [Policy basate sulle risorse](auth-and-access_resource-policies.md). 
+ In questo tutorial, hai concesso l'autorizzazione *RoleToRetrieveSecretAtRuntime* utilizzando la politica delle risorse del segreto. Per altri modi per concedere l'autorizzazione, consulta [Policy basate sull’identità](auth-and-access_iam-policies.md).

# Sposta le credenziali del database codificate in Gestione dei segreti AWS
<a name="hardcoded-db-creds"></a>

Se nel codice sono presenti credenziali di database in testo semplice, si consiglia di spostare le credenziali in Secrets Manager e quindi ruotarle immediatamente. Lo spostamento delle credenziali in Secrets Manager risolve il problema di visibilità delle credenziali a chiunque veda il codice, perché andando avanti il codice recupera le credenziali direttamente da Secrets Manager. La rotazione del segreto aggiorna la password e quindi revoca la password codificata corrente in modo che non sia più valida. 

Per i database Amazon RDS, Amazon Redshift e Amazon DocumentDB, utilizza la procedura descritta in questa pagina per spostare le credenziali codificate in Secrets Manager. Per altri tipi di credenziali e altri segreti, consulta [Sposta i segreti codificati in Gestione dei segreti AWS](hardcoded.md).

Prima di iniziare, è necessario determinare chi ha bisogno di accedere al segreto. Consigliamo di utilizzare due ruoli IAM per gestire l'autorizzazione al tuo segreto:
+ Un ruolo che gestisce i segreti nella tua organizzazione. Per ulteriori informazioni, consulta [Autorizzazioni di amministrazione di Secrets Manager](auth-and-access.md#auth-and-access_admin). Questo ruolo sarà utilizzato per creare e ruotare il segreto.
+ Un ruolo che può utilizzare le credenziali in fase di esecuzione, *RoleToRetrieveSecretAtRuntime* in questo tutorial. Il tuo codice assume questo ruolo per recuperare il segreto.

**Topics**
+ [Fase 1: creazione del segreto](#hardcoded-db-creds_step2)
+ [Fase 2: aggiornamento del codice](#hardcoded-db-creds_step3)
+ [Fase 3: rotazione del segreto](#hardcoded-db-creds_step5)
+ [Fasi successive](#hardcoded-db-creds_nextsteps)

## Fase 1: creazione del segreto
<a name="hardcoded-db-creds_step2"></a>

Il primo passo consiste nel copiare le credenziali codificate esistenti in un segreto in Secrets Manager. Per la latenza più bassa, archivia il segreto nella stessa regione del database. 

**Per creare un segreto**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Scegli **Archivia un nuovo segreto**.

1. Nella pagina **Choose secret type** (Scegli il tipo di segreto), effettua le seguenti operazioni:

   1. Per **Secret type** (Tipo di segreto), scegli il tipo di credenziali del database da archiviare:
      + **Database Amazon RDS**
      + **Database di Amazon DocumentDB**
      + **Data warehouse Amazon Redshift**.
      + Per altri tipi di segreti, consulta [Sostituzione dei segreti codificati](https://docs.aws.amazon.com/secretsmanager/latest/userguide/hardcoded.html).

   1. Per **Credenziali**, inserisci le credenziali codificate per il database.

   1. In **Encryption key** (Chiave di crittografia), scegli **aws/secretsmanager** per utilizzare la Chiave gestita da AWS per Secrets Manager. L'utilizzo di questa chiave non prevede costi aggiuntivi. Puoi inoltre utilizzare la tua chiave gestita dal cliente, ad esempio per [accedere al segreto da un altro Account AWS](auth-and-access_examples_cross.md). Per informazioni sui costi di utilizzo di una chiave gestita dal cliente, consulta la sezione [Prezzi](intro.md#asm_pricing).

   1. Per **Database**, scegli il database.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Configure secret** (Configura il segreto), effettua le seguenti operazioni:

   1. Inserisci un **Secret name** (Nome del segreto) e una **Description** (Descrizione) descrittivi. 

   1. In **Resource permissions** (Autorizzazioni della risorsa), scegli **Edit permissions** (Modifica autorizzazioni). **Incolla la seguente policy, che *RoleToRetrieveSecretAtRuntime* consente di recuperare il segreto, quindi scegli Salva.**

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/RoleToRetrieveSecretAtRuntime"
                  },
                  "Action": "secretsmanager:GetSecretValue",
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. Nella parte inferiore della pagina scegli **Next** (Avanti).

1. Nella pagina **Configure rotation** (Configura la rotazione), mantieni la rotazione disattivata per il momento. La attiverai più tardi. Scegli **Next (Successivo)**.

1. Nella pagina **Review (Revisione)**, rivedi i dettagli dei segreti e quindi scegli **Store (Archivia)**.

## Fase 2: aggiornamento del codice
<a name="hardcoded-db-creds_step3"></a>

Il codice deve assumere il ruolo IAM *RoleToRetrieveSecretAtRuntime* per poter recuperare il segreto. Per ulteriori informazioni, consulta [Passare a un ruolo IAM (AWS API).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html)

Successivamente, aggiorna il codice per recuperare il segreto da Secrets Manager utilizzando il codice di esempio fornito da Secrets Manager. 

**Ricerca del codice di esempio**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Nella pagina dell'elenco **Secrets (Segreti)** scegli il segreto.

1. Scorrere verso il basso fino a **Sample code** (Codice di esempio). Scegli il linguaggio, quindi copia il frammento di codice. 

Nell'applicazione, rimuovi le credenziali codificate e incolla il frammento di codice. A seconda del linguaggio del codice, potrebbe essere necessario aggiungere una chiamata alla funzione o al metodo nel frammento.

Verifica che la tua applicazione funzioni come previsto con il segreto al posto delle credenziali codificate.

## Fase 3: rotazione del segreto
<a name="hardcoded-db-creds_step5"></a>

L'ultimo passo è revocare le credenziali codificate ruotando il segreto. La *rotazione* è il processo di aggiornamento periodico di un segreto. Quando si ruota un segreto, vengono aggiornate le credenziali sia nel segreto che nel database. Secrets Manager può ruotare automaticamente un segreto su un programma configurato.

Parte del processo di configurazione della rotazione è garantire che la funzione di rotazione Lambda possa accedere sia a Secrets Manager che al database. Quando si attiva la rotazione automatica, Secrets Manager crea la funzione di rotazione Lambda nello stesso VPC del database in modo che abbia accesso di rete al database. La funzione di rotazione Lambda deve anche essere in grado di effettuare chiamate a Secrets Manager per aggiornare il segreto. Ti consigliamo di creare un endpoint Secrets Manager nel VPC in modo che le chiamate da Lambda a Secrets Manager non lascino l'infrastruttura. AWS Per istruzioni, consulta [Utilizzo di un Gestione dei segreti AWS endpoint VPC](vpc-endpoint-overview.md).

**Attivazione della rotazione**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Nella pagina dell'elenco **Secrets (Segreti)** scegli il segreto.

1. Nella pagina **Secret details (Dettagli del segreto)**, nella sezione **Rotation configuration (Configurazione rotazione)** scegli **Edit rotation (Modifica rotazione)**.

1. Nella finestra di dialogo **Edit rotation configuration (modifica configurazione rotazione)**, procedi come indicato di seguito:

   1. Attiva **Automatic rotation** (Rotazione automatica).

   1. In **Rotation schedule** (Programma di rotazione), inserisci il programma nel fuso orario UTC. 

   1. Scegli **Rotate immediately when the secret is stored** (Ruota immediatamente quando viene memorizzato il segreto) per ruotare il segreto al salvataggio delle modifiche.

   1. In **Rotation function** (Funzione di rotazione), scegli **Create a new Lambda function** (Crea una nuova funzione Lambda) ed immetti un nome per la nuova funzione. Secrets Manager aggiunge "SecretsManager" all'inizio del nome della funzione.

   1. Per **Strategia di rotazione** scegli **Utente singolo**.

   1. Scegli **Save** (Salva).

**Verifica che il segreto sia stato ruotato**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Scegli **Secrets** (Segreti), quindi scegli il segreto.

1. Nella pagina **Secret details** (Dettagli del segreto), scorri e scegli **Retrieve secret value** (Recupera il valore del segreto).

   Se il valore del segreto è cambiato, allora la rotazione è riuscita. Se il valore segreto non è cambiato, devi farlo [Risoluzione dei problemi della rotazione](troubleshoot_rotation.md) guardando CloudWatch i log per la funzione di rotazione.

Verifica che la tua applicazione funzioni come previsto con il segreto ruotato.

## Fasi successive
<a name="hardcoded-db-creds_nextsteps"></a>

Dopo aver rimosso un segreto codificato dal codice, ecco alcuni concetti da considerare:
+ È possibile migliorare le prestazioni e ridurre i costi tramite la memorizzazione nella cache dei segreti. Per ulteriori informazioni, consulta [Ottieni segreti da Gestione dei segreti AWS](retrieving-secrets.md).
+ È possibile scegliere un diverso programma di rotazione. Per ulteriori informazioni, consulta [Pianificazioni di rotazione](rotate-secrets_schedule.md).
+ [Per trovare segreti codificati nelle tue applicazioni Java e Python, ti consigliamo Amazon Reviewer. CodeGuru ](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html)

# Imposta la rotazione alternata degli utenti per Gestione dei segreti AWS
<a name="tutorials_rotation-alternating"></a>

In questo tutorial, imparerai come impostare la rotazione a utenti alternati per un segreto che contiene le credenziali del database. La *rotazione a utenti alternati* è una strategia di rotazione in cui Secrets Manager clona l'utente e quindi alterna quali credenziali dell'utente vengono aggiornate. Questa strategia è una buona scelta se hai bisogno di disponibilità elevata per il segreto, perché uno degli utenti alternati ha le credenziali correnti per il database mentre l'altro è in fase di aggiornamento. Per ulteriori informazioni, consulta [Strategia di rotazione a utenti alternati](rotation-strategy.md#rotating-secrets-two-users). 

Per impostare la rotazione a utenti alternati, sono necessari due segreti:
+ Un segreto con le credenziali da ruotare.
+ Un secondo segreto con credenziali di amministratore. 

  Questo utente dispone delle autorizzazioni per clonare il primo utente e modificare la password del primo utente. In questo tutorial, chiedi ad Amazon RDS di creare questo segreto per un utente amministratore. Amazon RDS gestisce anche la rotazione delle password dell'amministratore. Per ulteriori informazioni, consulta [Rotazione gestita per Gestione dei segreti AWS i segreti](rotate-secrets_managed.md).

La prima parte di questo tutorial tratta la configurazione di un ambiente realistico. Per mostrare come funziona la rotazione, questo tutorial utilizza un esempio di database Amazon RDS MySQL. Per motivi di sicurezza, il database si trova in un VPC che limita l'accesso a Internet. Per connettersi al database dal computer locale tramite Internet, è necessario utilizzare un *host bastione*, un server nel VPC in grado di connettersi al database, ma che consente anche connessioni SSH da Internet. L'host bastione in questo tutorial è un'istanza Amazon EC2 e i gruppi di sicurezza per l'istanza impediscono altri tipi di connessioni. 

Al termine del tutorial, si consiglia di ripulire le risorse del tutorial. Non utilizzarle in un ambiente di produzione.

La rotazione di Secrets Manager utilizza una AWS Lambda funzione per aggiornare il segreto e il database. Per ulteriori informazioni sui costi di utilizzo della funzione Lambda, consulta la sezione [Prezzi](intro.md#asm_pricing).

**Topics**
+ [Permissions](#tutorials_rotation-alternating-permissions)
+ [Prerequisiti](#tutorials_rotation-alternating-step-setup)
+ [Fase 1: creazione di un utente del database Amazon RDS](#tutorials_rotation-alternating-step-database)
+ [Fase 2: creazione di un segreto per le credenziali dell'utente](#tutorials_rotation-alternating_step-rotate)
+ [Fase 3: eseguire il test del segreto ruotato](#tutorials_rotation-alternating_step-test-secret)
+ [Fase 4: Eliminazione delle risorse](#tutorials_rotation-alternating_step-cleanup)
+ [Fasi successive](#tutorials_rotation-alternating_step-next)

## Permissions
<a name="tutorials_rotation-alternating-permissions"></a>

Per i prerequisiti del tutorial, hai bisogno di autorizzazioni di amministrazione per il tuo Account AWS. In un ambiente di produzione, è consigliabile utilizzare ruoli diversi per ciascun passaggio. Ad esempio, un ruolo con le autorizzazioni dell'amministratore del database creerebbe il database Amazon RDS e un ruolo con autorizzazioni di amministrazione di rete configurerebbe il VPC e i gruppi di sicurezza. Per i passaggi del tutorial, suggeriamo di continuare a utilizzare la stessa identità.

Per informazioni su come configurare le autorizzazioni in un ambiente di produzione, consulta [Autenticazione e controllo degli accessi per Gestione dei segreti AWS](auth-and-access.md).

## Prerequisiti
<a name="tutorials_rotation-alternating-step-setup"></a>

**Topics**
+ [Prerequisito A: Amazon VPC](#tutorials_rotation-alternating-step-vpc)
+ [Prerequisito B: istanza Amazon EC2](#tutorials_rotation-alternating-step-setup_ec2)
+ [Prerequisito C: database Amazon RDS e un segreto in Secrets Manager per le credenziali di amministratore](#tutorials_rotation-alternating-step-database)
+ [Prerequisito D: consenti al computer locale di connettersi all'istanza EC2.](#tutorials_rotation-alternating-step-ec2connect)

### Prerequisito A: Amazon VPC
<a name="tutorials_rotation-alternating-step-vpc"></a>

In questa fase viene creato un VPC in cui è necessario avviare un database Amazon RDS e un'istanza Amazon EC2. In una fase successiva, utilizzerai il tuo computer per connetterti tramite Internet all'host bastione e al database, quindi dovrai consentire al traffico di uscire dal VPC. Per fare ciò, Amazon VPC collega un gateway Internet al gateway Internet e aggiunge un routing alla tabella di routing in modo che il traffico destinato al di fuori del VPC venga inviato al gateway Internet.

All'interno del VPC, crei un endpoint Secrets Manager e un endpoint Amazon RDS. Quando si imposta la rotazione automatica in una fase successiva, Secrets Manager crea la funzione di rotazione Lambda all'interno del VPC in modo che abbia accesso al database. La funzione di rotazione Lambda chiama anche Secrets Manager per aggiornare il segreto e chiama Amazon RDS per ottenere le informazioni di connessione al database. Creando endpoint all'interno del VPC, ti assicuri che le chiamate dalla funzione Lambda a Secrets Manager e Amazon RDS non lascino l'infrastruttura. AWS Invece, vengono instratade all'endpoint all'interno del VPC.

**Per creare un VPC**

1. Apri la console Amazon VPC all'indirizzo [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Seleziona **Crea VPC**.

1. Nella pagina **Create VPC** (Crea VPC), scegli **VPC and more** (VPC e altro).

1. In **Name tag auto-generation** (Generazione automatica del tag del nome), sotto a **Auto-generate** (genera automaticazione), inserisci **SecretsManagerTutorial**.

1. Per **le opzioni DNS**, scegli entrambi **Enable DNS hostnames** e **Enable DNS resolution**.

1. Seleziona **Crea VPC**.

**Creare un endpoint di Secrets Manager all'interno del VPC**

1. Nella console Amazon VPC, sotto **Endpoints**, scegli **Create endpoint** (crea endpoint).

1. In **Endpoint settings** (Impostazioni endpoint), per **Name** (Nome) inserisci **SecretsManagerTutorialEndpoint**.

1. Sotto a **Services** (Servizi), inserisci **secretsmanager** per filtrare l'elenco e quindi seleziona l'endpoint di Secrets Manager nella Regione AWS. Per esempio, negli Stati Uniti orientali (Virginia settentrionale), scegli `com.amazonaws.us-east-1.secretsmanager`. 

1. Per **VPC**, scegli **vpc\$1\$1\$1\$1 (SecretsManagerTutorial)**.

1. Per **Subnets** (Sottoreti), seleziona tutte le **Availability Zones** (Zone di disponibilità) e poi per ognuna di esse scegli un **Subnet ID** (ID sottorete) da includere.

1. Per **Tipo di indirizzo IP**, scegli **IPv4**.

1. Da **Security Groups** (Gruppi di sicurezza), scegli il gruppo di sicurezza di default.

1. Per **Policy type** (Tipo di policy), scegli **Full access**. 

1. Seleziona **Crea endpoint**.

**Creare un endpoint di Amazon RDS all'interno del VPC**

1. Nella console Amazon VPC, sotto **Endpoints**, scegli **Create endpoint** (crea endpoint).

1. In **Endpoint settings** (Impostazioni endpoint), per **Name** (Nome) inserisci **RDSTutorialEndpoint**.

1. Sotto a **Services** (Servizi), inserisci **rds** per filtrare l'elenco e quindi seleziona l'endpoint di Amazon RDS in Regione AWS. Per esempio, negli Stati Uniti orientali (Virginia settentrionale), scegli `com.amazonaws.us-east-1.rds`. 

1. Per **VPC**, scegli **vpc\$1\$1\$1\$1 (SecretsManagerTutorial)**.

1. Per **Subnets** (Sottoreti), seleziona tutte le **Availability Zones** (Zone di disponibilità) e poi per ognuna di esse scegli un **Subnet ID** (ID sottorete) da includere.

1. Per **Tipo di indirizzo IP**, scegli **IPv4**.

1. Da **Security Groups** (Gruppi di sicurezza), scegli il gruppo di sicurezza di default.

1. Per **Policy type** (Tipo di policy), scegli **Full access**. 

1. Seleziona **Crea endpoint**.

### Prerequisito B: istanza Amazon EC2
<a name="tutorials_rotation-alternating-step-setup_ec2"></a>

Il database Amazon RDS che creerai in una fase successiva sarà nel cloud VPC, per accedervi è necessario un host bastione. L'host bastione è presente anche nel VPC, ma in una fase successiva, configurerai un gruppo di sicurezza per consentire al computer locale di connettersi all'host bastione con SSH. 

**Creare un'istanza EC2 per un host bastione**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Scegliere **Instances** (Istanze), quindi scegliere **Launch Instances** (Avvia istanze).

1. Nell'area **Name and tags** (Nome e tag), in **Name** (Nome) inserisci **SecretsManagerTutorialInstance**.

1. In **Application and OS Images (Immagini dell'applicazione e del sistema operativo)**, mantieni l'impostazione predefinita **Amazon Linux 2 AMI (HMV) Kernel 5.10**.

1. In **Instance type (Tipo di istanza)**, mantieni l'impostazione predefinita **t2.micro**.

1. In **Key pair (coppia di chiavi)**, scegli **Crea coppia di chiavi**.

   Nella finestra di dialogo **Create Key Pair (Crea coppia di chiavi)**, per **Key pair name (Nome coppia di chiavi)**, inserisci **SecretsManagerTutorialKeyPair**, quindi scegli **Create (Crea)**.

   La chiave privata viene scaricata automaticamente.

1. In **Network settings** (Impostazioni di rete), scegli **Edit** (Modifica) ed esegui le operazioni qui descritte:

   1. Per **VPC**, scegliere **vpc-\$1\$1\$1\$1 SecretsManagerTutorial**.

   1. Per **Auto-assign Public IP** (Assegna automaticamente IP pubblico), scegliere **Enable**.

   1. Per **Firewall**, scegli **Select existing security group** (seleziona gruppo di sicurezza esistente).

   1. Per i **gruppi di sicurezza comuni**, scegli **default**. 

1. Scegliere **Launch Instance (Avvia istanza)**.

### Prerequisito C: database Amazon RDS e un segreto in Secrets Manager per le credenziali di amministratore
<a name="tutorials_rotation-alternating-step-database"></a>

In questa fase, crei un database Amazon MySQL e lo configuri in modo che Amazon RDS crei un segreto per contenere le credenziali di amministratore. Quindi Amazon RDS gestisce automaticamente la rotazione del segreto di amministratore per te. Per ulteriori informazioni, consulta [Rotazione gestita](rotate-secrets_managed.md).

Durante la creazione del database, è necessario specificare l'host bastione creato nel passaggio precedente. Quindi Amazon RDS configura i gruppi di sicurezza in modo che il database e l'istanza possano accedere vicendevolmente. Si aggiunge una regola al gruppo di sicurezza collegato all'istanza per consentire anche al computer locale di connettersi ad essa. 

**Per creare un database Amazon RDS con un segreto di Secrets Manager contenente le credenziali di amministratore**

1. Nella console Amazon RDS scegli **Create databases (Crea database)**.

1. Nella sezione **Engine options (Opzioni motore)** per **Engine type (tipo motore)** scegli **MySQL**.

1. Nella sezione **Templates (Modelli)**, seleziona **Free tier**.

1. Nella sezione **Rule settings (Impostazioni regole)**, procedi nel seguente modo:

   1. Per l'**identificatore dell'istanza DB**, inserisci **SecretsManagerTutorial**.

   1. **In **Impostazioni delle credenziali**, seleziona Gestisci le credenziali principali in. Gestione dei segreti AWS**

1. Nella sezione **Connectivity (Connettività)**, per **Computer resource (Risorsa computer)**, scegli **Connect to an EC2 computer resource (Connetti a una risorsa computer EC2)** e quindi, per l'**istanza EC2**, scegli **SecretsManagerTutorialInstance**.

1. Scegliere **Crea database**.

### Prerequisito D: consenti al computer locale di connettersi all'istanza EC2.
<a name="tutorials_rotation-alternating-step-ec2connect"></a>

In questo passaggio, configuri l'istanza EC2 creata nel Prerequisito B per consentire al computer locale di connettersi ad essa. A tale scopo, modifichi il gruppo di sicurezza aggiunto da Amazon RDS in Prereq C per includere una regola che consenta all'indirizzo IP del tuo computer di connettersi a SSH. La regola consente al computer locale (identificato dal tuo attuale indirizzo IP) di connettersi all'host bastione utilizzando SSH su Internet.

**Prerequisito D: consenti al computer locale di connettersi all'istanza EC2.**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nell'istanza EC2 **SecretsManagerTutorialInstance**, nella scheda **Sicurezza**, in **Gruppi di sicurezza**, scegli. **sg-\$1\$1\$1 (ec2-rds-X)**

1. Sotto a **Inbound rules (Regole in entrata)**, seleziona **Edit inbound rules (Modifica regole in entrata)**.

1. Scegli **Add rule (Aggiungi regola)**, poi per la regola esegui le seguenti operazioni:

   1. In **Tipo**, scegli **SSH**.

   1. Per **Source** (origine), scegli **My IP**.

## Fase 1: creazione di un utente del database Amazon RDS
<a name="tutorials_rotation-alternating-step-database"></a>

Innanzitutto, è necessario un utente le cui credenziali saranno memorizzate nel segreto. Per creare l'utente, accedi al database Amazon RDS con le credenziali di amministratore. Per semplicità, nel tutorial, si crea un utente con piena autorizzazione per un database. In un ambiente di produzione questo non succede normalmente e ti consigliamo di seguire il principio del privilegio minimo.

Per connettersi al database, si utilizza uno strumento client MySQL. In questa esercitazione, sarà possibile usare MySQL Workbench, un'applicazione basata su GUI. Scaricare e installare MySQL Workbench dalla pagina di [Download MySQL Workbench](http://dev.mysql.com/downloads/workbench/) (Scarica MySQL Workbench).

Per connettersi al database, è necessario creare una configurazione di connessione in MySQL Workbench. Per la configurazione, sono necessarie alcune informazioni sia da Amazon EC2 che Amazon RDS.

**Creare una connessione al database in MySQL Workbench**

1. In MySQL Workbench, accanto a **MySQL Connections** (Connessioni MySQL), scegli il pulsante (\$1).

1. Nella finestra di dialogo **Setup New Connection** (Configura una nuova connessione), segui questi passaggi:

   1. Per **Connection Name** (Nome connessione), inserisci **SecretsManagerTutorial**.

   1. Per **Connection Method** (Metodo di connessione), scegli **Standard TCP/IP over SSH**.

   1. Nella scheda **Parameters** (Parametri), procedi come segue:

      1. Per **Hostname SSH** (Nome host SSH), inserisci l'indirizzo IP pubblico dell'istanza Amazon EC2.

         Puoi trovare l'indirizzo IP sulla console Amazon EC2 scegliendo l'istanza. **SecretsManagerTutorialInstance** Copia l'indirizzo IP in **Public IPv4 DNS**.

      1. Per **SSH Username** (Nome utente SSH), inserisci **ec2-user**.

      1. Per **SSH Keyfile**, scegli il file di coppia di chiavi **SecretsManagerTutorialKeyPair.pem** che hai scaricato nel prerequisito precedente. 

      1. Per **MySQL Hostname** (Home host MySQL), inserisci l'indirizzo dell'endpoint Amazon RDS.

         Puoi trovare l'indirizzo endpoint sulla console Amazon RDS scegliendo l'istanza di database **secretsmanagertutorialdb**. Copia l'indirizzo in **Endpoint**.

      1. Per **Username** (Nome utente), inserisci **admin**.

   1. Scegli **OK**.

**Recuperare la password dell'amministratore**

1. Nella console Amazon RDS scegli il database.

1. Nella scheda **Configuration (Configurazione)**, in **Master Credentials ARN (ARN delle credenziali principali)**, scegli **Manage in Secrets Manager (gestisci in secrets manager)**.

   Si apre la console Secrets Manager.

1. Nella pagina dei dettagli del segreto, scegli **Retrieve secret value** (Recupera il valore di un segreto).

1. La password viene visualizzata nella sezione **Secret value (valore segreto)**.

**Per creare un utente del database**

1. In MySQL Workbench, scegli la connessione. **SecretsManagerTutorial** 

1. Inserisci la password dell'amministratore che hai recuperato dal segreto. 

1.  In MySQL Workbench, nella finestra **Query**, inserisci i seguenti comandi (inclusa una password sicura) e quindi scegli **Execute** (Esegui). La funzione di rotazione verifica il segreto aggiornato utilizzando SELECT, quindi **appuser** deve avere almeno quel privilegio.

   ```
   CREATE DATABASE myDB;
   CREATE USER 'appuser'@'%' IDENTIFIED BY 'EXAMPLE-PASSWORD';
   GRANT SELECT ON myDB . * TO 'appuser'@'%';
   ```

   Nella finestra **Output**, viene visualizzato l'esito positivo dei comandi.

## Fase 2: creazione di un segreto per le credenziali dell'utente
<a name="tutorials_rotation-alternating_step-rotate"></a>

Successivamente, creerai un segreto per archiviare le credenziali dell'utente appena creato. Questo è il segreto che verrà ruotato. Attiva la rotazione automatica e, per indicare la strategia a utenti alternati, scegli un segreto di un utente con privilegi avanzati separato che dispone dell'autorizzazione per modificare la password del primo utente.

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Scegli **Archivia un nuovo segreto**.

1. Nella pagina **Choose secret type** (Scegli il tipo di segreto), effettua le seguenti operazioni:

   1. Per **Secret type** (Tipo segreto), scegli **Credentials for Amazon RDS database** (Credenziali per il database Amazon RDS).

   1. Per **Credentials** (Credenziali), inserisci il nome utente **appuser** e la password inseritaper l'utente del database creato utilizzando MySQL Workbench.

   1. Per **Database**, scegli **secretsmanagertutorialdb**.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Configure secret** (Configura il segreto), per **Secret name** (Nome del segreto), inserisci **SecretsManagerTutorialAppuser** e scegli **Next** (Successivo).

1. Nella pagina **Configure rotation** (Configura la rotazione), effetua le seguenti operazioni:

   1. Attiva **Automatic rotation** (Rotazione automatica).

   1. Per **Rotation schedule** (Pianificazione della rotazione), imposta una pianificazione di **Days** (Giorni): **2** Days with **Duration**: **2h** (2 giorni con durata: 2 h). Mantieni selezionato **Rotate immediately** (Ruota immediatamente). 

   1. Per **Rotation function** (Funzione di rotazione), scegli **Create a rotation function** (Crea una funzione di rotazione) e per il nome della funzione inserisci **tutorial-alternating-users-rotation**.

   1. Per **Strategia di rotazione**, scegli **Utenti alternati**, quindi in **Segreto credenziali amministratore** scegli il segreto denominato **rds\$1cluster...** che ha una **Descrizione** che include il nome del database creato in questo tutorial **secretsmanagertutorial**, ad esempio `Secret associated with primary RDS DB instance: arn:aws:rds:Region:AccountId:db:secretsmanagertutorial`.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Review** (Rivedi), scegli **Store** (Archivia).

   Secrets Manager torna alla pagina dei dettagli segreti. Nella parte superiore della pagina, è possibile visualizzare lo stato della configurazione di rotazione. Secrets Manager utilizza CloudFormation per creare risorse come la funzione di rotazione Lambda e un ruolo di esecuzione che esegue la funzione Lambda. Al CloudFormation termine, il banner diventa **Segreto programmato per la rotazione**. La prima rotazione è completa.

## Fase 3: eseguire il test del segreto ruotato
<a name="tutorials_rotation-alternating_step-test-secret"></a>

Ora che il segreto è stato ruotato, è possibile verificare che il segreto contenga ancora credenziali valide. La password nel segreto è cambiata rispetto alle credenziali originali.

**Recuperare la nuova password dal segreto**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Scegli **Secrets** (Segreti) e quindi scegli il segreto **SecretsManagerTutorialAppuser**.

1. Nella pagina **Secret details** (Dettagli del segreto), scorri e scegli **Retrieve secret value** (Recupera il valore del segreto).

1. Nella tabella **Key/value** (Chiave/valore), copia il **Secret value** (Valore segreto) per la **password**.

**Testare le credenziali**

1. **In MySQL Workbench, fai clic con il pulsante destro del mouse sulla **SecretsManagerTutorial**connessione e quindi scegli Modifica connessione.**

1. Nella finestra di dialogo **Manage Server Connections** (Gestisci connessioni al server), per **Username** (Nome utente), inserisci **appuser** e scegli **Close** (Chiudi).

1. Tornando in MySQL Workbench, scegli la connessione. **SecretsManagerTutorial**

1. Nella finestra di dialogo **Open SSH Connection** (Apri connessione SSH), per **Password** incolla la password recuperata dal segreto, quindi scegli **OK**.

   Se le credenziali sono valide, MySQL Workbench si apre alla pagina di progettazione del database.

Questa mostra che la rotazione del segreto ha esito positivo. Le credenziali nel segreto sono state aggiornate e consistono in una password valida per connettersi al database. 

## Fase 4: Eliminazione delle risorse
<a name="tutorials_rotation-alternating_step-cleanup"></a>

Per provare un'altra strategia di rotazione, *la rotazione a utente singolo*, salta la pulizia delle risorse e vai a [Imposta la rotazione di un singolo utente per Gestione dei segreti AWS](tutorials_rotation-single.md). 

Per evitare potenziali addebiti e per rimuovere l'istanza EC2 che ha accesso a Internet, elimina le seguenti risorse create in questo tutorial e i relativi prerequisiti:
+ Istanza database Amazon RDS Per istruzioni, consulta [Eliminazione di un'istanza DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html) nella *Guida per l'utente di Amazon RDS*.
+ Istanza Amazon EC2. Per istruzioni, consulta [Terminare un'istanza nella Guida](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console) per l'utente di *Amazon EC2*.
+ Segreto di Secrets Manager `SecretsManagerTutorialAppuser`. Per istruzioni, consulta [Eliminare un Gestione dei segreti AWS segreto](manage_delete-secret.md).
+ Endpoint di Secrets Manager. Per istruzioni, consulta [Eliminazione di un endpoint VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/delete-vpc-endpoint.html) nella *Guida AWS PrivateLink *.
+ Endpoint VPC. Per istruzioni, consulta [Eliminazione di un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting) nella *Guida AWS PrivateLink *.

## Fasi successive
<a name="tutorials_rotation-alternating_step-next"></a>
+ Ottieni informazioni su come [recuperare i segreti nelle applicazioni](retrieving-secrets.md).
+ Scopri altri [programmi di rotazione](rotate-secrets_schedule.md).

# Imposta la rotazione di un singolo utente per Gestione dei segreti AWS
<a name="tutorials_rotation-single"></a>

In questo tutorial, imparerai come impostare la rotazione a utente singolo per un segreto che contiene le credenziali del database. La *rotazione a utente singolo* è una strategia di rotazione in cui Secrets Manager aggiorna le credenziali di un utente sia nel segreto che nel database. Per ulteriori informazioni, consulta [Strategia di rotazione a utente singolo](rotation-strategy.md#rotating-secrets-one-user-one-password). 

Al termine del tutorial, si consiglia di ripulire le risorse del tutorial. Non utilizzarle in un ambiente di produzione.

La rotazione di Secrets Manager utilizza una AWS Lambda funzione per aggiornare il segreto e il database. Per ulteriori informazioni sui costi di utilizzo della funzione Lambda, consulta la sezione [Prezzi](intro.md#asm_pricing).

**Contents**
+ [Permissions](#tutorials_rotation-single_permissions)
+ [Prerequisiti](#tutorials_rotation-single_step-setup)
+ [Fase 1: creazione di un utente del database Amazon RDS](#tutorials_rotation-single_step-dbuser)
+ [Fase 2: creazione di un segreto per le credenziali utente del database](#tutorials_rotation-single_step-rotate)
+ [Fase 3: esecuzione del test della password ruotata](#tutorials_rotation-single_step-connect-again)
+ [Fase 4: Eliminazione delle risorse](#tutorials_rotation-single_step-cleanup)
+ [Fasi successive](#tutorials_rotation-single_step-next)

## Permissions
<a name="tutorials_rotation-single_permissions"></a>

Per i prerequisiti del tutorial, hai bisogno di autorizzazioni di amministrazione per il tuo Account AWS. In un ambiente di produzione, è consigliabile utilizzare ruoli diversi per ciascun passaggio. Ad esempio, un ruolo con le autorizzazioni dell'amministratore del database creerebbe il database Amazon RDS e un ruolo con autorizzazioni di amministrazione di rete configurerebbe il VPC e i gruppi di sicurezza. Per i passaggi del tutorial, suggeriamo di continuare a utilizzare la stessa identità.

Per informazioni su come configurare le autorizzazioni in un ambiente di produzione, consulta [Autenticazione e controllo degli accessi per Gestione dei segreti AWS](auth-and-access.md).

## Prerequisiti
<a name="tutorials_rotation-single_step-setup"></a>

Il prerequisito per questo tutorial è [Imposta la rotazione alternata degli utenti per Gestione dei segreti AWS](tutorials_rotation-alternating.md). Non eliminare le risorse alla fine del primo tutorial. Dopo questo tutorial, disporrai di un ambiente realistico con un database Amazon RDS e un segreto di Secrets Manager che contiene le credenziali di amministratore per il database. Hai anche un secondo segreto che contiene le credenziali per un utente del database, ma non lo usi in questo tutorial.

È inoltre configurata una connessione in MySQL Workbench per connettersi al database con le credenziali dell'amministratore.

## Fase 1: creazione di un utente del database Amazon RDS
<a name="tutorials_rotation-single_step-dbuser"></a>

Innanzitutto, è necessario un utente le cui credenziali saranno memorizzate nel segreto. Per creare l'utente, accedi al database Amazon RDS con le credenziali di amministratore archiviate in un segreto. Per semplicità, nel tutorial, si crea un utente con piena autorizzazione per un database. In un ambiente di produzione questo non succede normalmente e ti consigliamo di seguire il principio del privilegio minimo.

**Recuperare la password dell'amministratore**

1. Nella console Amazon RDS scegli il database.

1. Nella scheda **Configuration (Configurazione)**, in **Master Credentials ARN (ARN delle credenziali principali)**, scegli **Manage in Secrets Manager (gestisci in secrets manager)**.

   Si apre la console Secrets Manager.

1. Nella pagina dei dettagli del segreto, scegli **Retrieve secret value** (Recupera il valore di un segreto).

1. La password viene visualizzata nella sezione **Secret value (valore segreto)**.

**Per creare un utente del database**

1. **In MySQL Workbench, fai clic con il pulsante destro del mouse sulla **SecretsManagerTutorial**connessione e quindi scegli Modifica connessione.**

1. Nella finestra di dialogo **Manage Server Connections** (Gestisci connessioni al server), per **Username** (Nome utente), inserisci **admin** e scegli **Close** (Chiudi).

1. Tornando in MySQL Workbench, scegli la connessione. **SecretsManagerTutorial**

1. Inserisci la password dell'amministratore che hai recuperato dal segreto. 

1.  In MySQL Workbench, nella finestra **Query**, inserisci i seguenti comandi (inclusa una password sicura) e quindi scegli **Execute** (Esegui). La funzione di rotazione verifica il segreto aggiornato utilizzando SELECT, quindi **dbuser** deve avere almeno quel privilegio.

   ```
   CREATE USER 'dbuser'@'%' IDENTIFIED BY 'EXAMPLE-PASSWORD';
   GRANT SELECT ON myDB . * TO 'dbuser'@'%';
   ```

   Nella finestra **Output**, viene visualizzato l'esito positivo dei comandi.

## Fase 2: creazione di un segreto per le credenziali utente del database
<a name="tutorials_rotation-single_step-rotate"></a>

Successivamente, creerai un segreto per archiviare le credenziali dell'utente appena creato e attiverai la rotazione automatica, inclusa una rotazione immediata. Secrets Manager ruota il segreto, il che significa che la password viene generata programmaticamente: nessun essere umano ha visto questa nuova password. L'avvio immediato della rotazione può anche aiutarti a determinare se la rotazione è impostata correttamente.

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Scegli **Archivia un nuovo segreto**.

1. Nella pagina **Choose secret type** (Scegli il tipo di segreto), effettua le seguenti operazioni:

   1. Per **Secret type** (Tipo segreto), scegli **Credentials for Amazon RDS database** (Credenziali per il database Amazon RDS).

   1. Per **Credentials** (Credenziali), inserisci il nome utente **dbuser** e la password inseritaper l'utente del database creato utilizzando MySQL Workbench.

   1. Per **Database**, scegli **secretsmanagertutorialdb**.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Configure secret** (Configura il segreto), per **Secret name** (Nome del segreto), inserisci **SecretsManagerTutorialDbuser** e scegli **Next** (Successivo).

1. Nella pagina **Configure rotation** (Configura la rotazione), effetua le seguenti operazioni:

   1. Attiva **Automatic rotation** (Rotazione automatica).

   1. Per **Rotation schedule** (Pianificazione della rotazione), imposta una pianificazione di **Days** (Giorni): **2** Days with **Duration**: **2h** (2 giorni con durata: 2 h). Mantieni selezionato **Rotate immediately** (Ruota immediatamente). 

   1. Per **Rotation function** (Funzione di rotazione), scegli **Create a rotation function** (Crea una funzione di rotazione) e per il nome della funzione inserisci **tutorial-single-user-rotation**.

   1. Per **Strategia di rotazione** scegli **Utente singolo**.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Review** (Rivedi), scegli **Store** (Archivia).

   Secrets Manager torna alla pagina dei dettagli segreti. Nella parte superiore della pagina, è possibile visualizzare lo stato della configurazione di rotazione. Secrets Manager utilizza CloudFormation per creare risorse come la funzione di rotazione Lambda e un ruolo di esecuzione che esegue la funzione Lambda. Al CloudFormation termine, il banner diventa **Segreto programmato per la rotazione**. La prima rotazione è completa.

## Fase 3: esecuzione del test della password ruotata
<a name="tutorials_rotation-single_step-connect-again"></a>

Dopo la prima rotazione segreta, che potrebbe richiedere alcuni secondi, è possibile verificare che il segreto contenga ancora credenziali valide. La password nel segreto è cambiata rispetto alle credenziali originali.

**Recuperare la nuova password dal segreto**

1. Apri la console Secrets Manager all'indirizzo [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Scegli **Secrets** (Segreti) e quindi scegli il segreto **SecretsManagerTutorialDbuser**.

1. Nella pagina **Secret details** (Dettagli del segreto), scorri e scegli **Retrieve secret value** (Recupera il valore del segreto).

1. Nella tabella **Key/value** (Chiave/valore), copia il **Secret value** (Valore segreto) per la **password**.

**Testare le credenziali**

1. **In MySQL Workbench, fai clic con il pulsante destro del mouse sulla **SecretsManagerTutorial**connessione e quindi scegli Modifica connessione.**

1. Nella finestra di dialogo **Manage Server Connections** (Gestisci connessioni al server), per **Username** (Nome utente), inserisci **dbuser** e scegli **Close** (Chiudi).

1. Tornando in MySQL Workbench, scegli la connessione. **SecretsManagerTutorial**

1. Nella finestra di dialogo **Open SSH Connection** (Apri connessione SSH), per **Password** incolla la password recuperata dal segreto, quindi scegli **OK**.

   Se le credenziali sono valide, MySQL Workbench si apre alla pagina di progettazione del database.

## Fase 4: Eliminazione delle risorse
<a name="tutorials_rotation-single_step-cleanup"></a>

Per evitare potenziali addebiti, elimina il segreto creato in questo tutorial. Per istruzioni, consulta [Eliminare un Gestione dei segreti AWS segreto](manage_delete-secret.md).

Per ripulire le risorse create nel tutorial precedente, consulta [Fase 4: Eliminazione delle risorse](tutorials_rotation-alternating.md#tutorials_rotation-alternating_step-cleanup).

## Fasi successive
<a name="tutorials_rotation-single_step-next"></a>
+ Ottieni informazioni su come recuperare i segreti nelle applicazioni. Per informazioni, consulta [Ottieni segreti da Gestione dei segreti AWS](retrieving-secrets.md).
+ Scopri altri programmi di rotazione. Per informazioni, consulta [Pianificazioni di rotazione](rotate-secrets_schedule.md).