

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 automatica utilizzando il AWS CLI
<a name="rotate-secrets_turn-on-cli"></a>

Questo tutorial descrive come eseguire la configurazione [Rotazione tramite funzione Lambda](rotate-secrets_lambda.md) utilizzando AWS CLI. Quando ruoti un segreto, aggiorni le credenziali sia nel segreto che nel database o nel servizio a cui si riferisce il segreto. 

Puoi anche impostare la rotazione utilizzando la console. Per informazioni segrete sul database, consulta [Rotazione automatica per i segreti del database (console)](rotate-secrets_turn-on-for-db.md). Per altri tipi di segreti, consulta la sezione [Rotazione automatica per i segreti non relativi al database (console)](rotate-secrets_turn-on-for-other.md).

Per impostare la rotazione utilizzando AWS CLI, se si sta ruotando un database segreto, è necessario innanzitutto scegliere una strategia di rotazione. Se scegli la strategia a utenti alternati, è necessario archiviare un segreto separato con credenziali per un superutente del database. A questo punto, puoi scrivere il codice della funzione di rotazione. Gestione dei segreti fornisce modelli su cui puoi basare la funzione. Quindi, crei una funzione Lambda con il tuo codice e imposti le autorizzazioni sia per la funzione Lambda che per il ruolo di esecuzione Lambda. Il passaggio successivo consiste nell'assicurarsi che la funzione Lambda possa accedere sia a Secrets Manager che al database o al servizio tramite la rete. Infine, puoi configurare il segreto per la rotazione.

**Topics**
+ [Prerequisito per i segreti del database: scegliere una strategia di rotazione](#rotate-secrets_turn-on-cli_step1)
+ [Fase 1: scrivere il codice della funzione di rotazione](#rotate-secrets_turn-on-cli_write)
+ [Fase 2: Creare la funzione Lambda](#w2aac21c11c25c15)
+ [Passaggio 3: configurare l'accesso alla rete](#w2aac21c11c25c17)
+ [Fase 4: Configurare il segreto per la rotazione](#w2aac21c11c25c19)
+ [Fasi successive](#w2aac21c11c25c21)

## Prerequisito per i segreti del database: scegliere una strategia di rotazione
<a name="rotate-secrets_turn-on-cli_step1"></a>

Per informazioni sulle strategie offerte da Secrets Manager, vedere[Strategie di rotazione delle funzioni Lambda](rotation-strategy.md).

### Opzione 1: strategia per utente singolo
<a name="w2aac21c11c25c11b5"></a>

Se scegli la *strategia per utente singolo*, puoi continuare con la Fase 1. 

### Opzione 2: strategia per utenti alternati
<a name="w2aac21c11c25c11b7"></a>

Se scegli la *strategia per utenti alternati*, devi:
+ [Crea un segreto](create_secret.md#create_secret_cli) e memorizza le credenziali di superutente del database al suo interno. È necessario un segreto con credenziali di superutente perché la rotazione alternata degli utenti clona il primo utente e la maggior parte degli utenti non dispone di tale autorizzazione. 
+ Aggiungi l'ARN del segreto del superutente al segreto originale. Per ulteriori informazioni, consulta [Struttura dei segreti JSON Gestione dei segreti AWS](reference_secret_json_structure.md). 

Tieni presente che Amazon RDS Proxy non supporta la strategia di utenti alternati.

## Fase 1: scrivere il codice della funzione di rotazione
<a name="rotate-secrets_turn-on-cli_write"></a>

Per ruotare un segreto, hai bisogno di una funzione di rotazione. Una funzione di rotazione è una funzione Lambda chiamata da Gestione dei segreti per ruotare il tuo segreto. Per ulteriori informazioni, consulta [Rotazione tramite funzione Lambda](rotate-secrets_lambda.md). In questo passaggio, scrivi il codice che aggiorna il segreto e il servizio o il database a cui è destinato il segreto.

Secrets Manager fornisce modelli per i segreti dei database Amazon RDS, Amazon Aurora, Amazon Redshift e Amazon DocumentDB. [Modelli di funzione di rotazione](reference_available-rotation-templates.md) 

**Per scrivere il codice della funzione di rotazione**

1. Esegui una delle seguenti operazioni:
   + Controlla l'elenco dei [modelli delle funzioni di rotazione](reference_available-rotation-templates.md). Se ce n'è uno che corrisponde al tuo servizio e alla tua strategia di rotazione, copia il codice. 
   + Per altri tipi di segreti, scrivi la tua funzione di rotazione. Per istruzioni, consulta [Funzioni di rotazione Lambda](rotate-secrets_lambda-functions.md). 

1. Salva il file in un file ZIP *my-function.zip* insieme a tutte le dipendenze richieste.

## Fase 2: Creare la funzione Lambda
<a name="w2aac21c11c25c15"></a>

In questo passaggio, si crea la funzione Lambda utilizzando il file ZIP creato nel passaggio 1. È inoltre possibile impostare il [ruolo di esecuzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html), che è il ruolo che Lambda assume quando viene richiamata la funzione.

**Creazione di una funzione di rotazione Lambda e di un ruolo di esecuzione**

1. Crea una policy di attendibilità per il ruolo di esecuzione Lambda e salvalo come file JSON. Per esempi e maggiori informazioni, consulta [Autorizzazioni del ruolo di esecuzione della funzione di rotazione Lambda per Gestione dei segreti AWS](rotating-secrets-required-permissions-function.md). La policy deve:
   + Consentire al ruolo di chiamare le operazioni di Gestione dei segreti sul segreto. 
   + Consenti al ruolo di chiamare il servizio a cui è destinato il segreto, ad esempio per creare una nuova password. 

1. Crea il ruolo di esecuzione Lambda e applica la policy di fiducia creata nel passaggio precedente chiamando. [https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)

   ```
   aws iam create-role \
       --role-name rotation-lambda-role \
       --assume-role-policy-document file://trust-policy.json
   ```

1. Crea la funzione Lambda dal file ZIP chiamando [https://docs.aws.amazon.com/cli/latest/reference/lambda/create-function.html](https://docs.aws.amazon.com/cli/latest/reference/lambda/create-function.html).

   ```
   aws lambda create-function \
     --function-name my-rotation-function \
     --runtime python3.12 \
     --zip-file fileb://my-function.zip \
     --handler lambda_function.lambda_handler \
     --role arn:aws:iam::123456789012:role/service-role/rotation-lambda-role
   ```

1. Imposta una policy delle risorse sulla funzione Lambda per consentire a Gestione dei segreti di richiamarla effettuando una chiamata [https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html).

   ```
   aws lambda add-permission \
     --function-name my-rotation-function \
     --action lambda:InvokeFunction \
     --statement-id SecretsManager \
     --principal secretsmanager.amazonaws.com \
     --source-account 123456789012
   ```

## Passaggio 3: configurare l'accesso alla rete
<a name="w2aac21c11c25c17"></a>

Per ulteriori informazioni, consulta [Accesso alla rete per la funzione AWS Lambda di rotazione](rotation-function-network-access.md).

## Fase 4: Configurare il segreto per la rotazione
<a name="w2aac21c11c25c19"></a>

Per attivare la rotazione automatica del segreto, chiama [https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/rotate-secret.html](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/rotate-secret.html). Puoi impostare una pianificazione di rotazione con un'espressione di pianificazione `cron()` o `rate()` e impostare una durata della finestra di rotazione. Per ulteriori informazioni, consulta [Pianificazioni di rotazione](rotate-secrets_schedule.md).

```
aws secretsmanager rotate-secret \
    --secret-id MySecret \
    --rotation-lambda-arn arn:aws:lambda:aws-region:123456789012:function:my-rotation-function \
    --rotation-rules "{\"ScheduleExpression\": \"cron(0 16 1,15 * ? *)\", \"Duration\": \"2h\"}"
```

## Fasi successive
<a name="w2aac21c11c25c21"></a>

Per informazioni, consulta [Risolvi i problemi Gestione dei segreti AWS di rotazione](troubleshoot_rotation.md).