

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

# 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).