

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

# Rotazione automatica delle password per utenti
<a name="User-Secrets-Manager"></a>

Con Gestione dei segreti AWS, puoi sostituire le credenziali codificate nel codice (comprese le password) con una chiamata API a Secrets Manager per recuperare il segreto a livello di codice. Questo approccio aiuta a garantire che il segreto non venga compromesso da qualcuno che esamina il codice, perché semplicemente il segreto non è presente. Inoltre, puoi configurare Secrets Manager affinché ruoti automaticamente il segreto in base a una pianificazione specificata. In questo modo puoi sostituire i segreti a lungo termine con altri a breve termine, contribuendo a ridurre notevolmente il rischio di compromissione.

Utilizzando Secrets Manager, è possibile ruotare automaticamente le password ElastiCache per Redis OSS (ovvero segrete) utilizzando una AWS Lambda funzione fornita da Secrets Manager.

[Per ulteriori informazioni su Gestione dei segreti AWS, consulta What is?Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)

## Come ElastiCache utilizza i segreti
<a name="how-elasticache-uses-secrets"></a>

Valkey 7.2 e versioni successive hanno un set di funzionalità equivalente a Redis OSS 7.0. In Redis OSS 6, ElastiCache introdotto [Controllo accessi basato sui ruoli (RBAC)](Clusters.RBAC.md) per proteggere il cluster Valkey o Redis OSS. Questa funzionalità consente di limitare determinate connessioni in termini di comandi che è possibile eseguire e tasti a cui è possibile accedere. Con RBAC, mentre il cliente crea un utente con password, i valori delle password devono essere immessi manualmente in testo normale e sono visibili per l'operatore. 

Con Secrets Manager, le applicazioni recuperano la password da Secrets Manager anziché inserirle manualmente e archiviarle nella configurazione dell'applicazione. Per informazioni su come fare, consulta [In che modo ElastiCache gli utenti vengono associati al segreto](#How-User-Secrets-Manager-Associate).

L'utilizzo di segreti comporta un costo. Per informazioni sui prezzi, consulta [Prezzi di AWS Secrets Manager](https://aws.amazon.com/secrets-manager/pricing/).

## In che modo ElastiCache gli utenti vengono associati al segreto
<a name="How-User-Secrets-Manager-Associate"></a>

Secrets Manager manterrà un riferimento per l'utente associato nel campo `SecretString` del segreto. Non ci sarà alcun riferimento al segreto da ElastiCache parte di Side.

```
{
    "password": "strongpassword",
    "username": "user1",
    "user_arn": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" //this is the bond between the secret and the user
}
```

## Funzione di rotazione Lambda
<a name="lambda-rotation-function"></a>

Per abilitare la rotazione automatica delle password di Secrets Manager, creare una funzione Lambda che interagisce con l'API [modify-user](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-user.html) per aggiornare le password dell'utente. 

Per informazioni sul funzionamento, consulta [Come funzione la rotazione](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html#rotate-secrets_how).

**Nota**  
Per alcuni AWS servizi, per evitare il confuso scenario sostitutivo, si AWS consiglia di utilizzare sia i tasti di condizione `aws:SourceArn` sia i tasti di condizione `aws:SourceAccount` globale. Tuttavia, se includi la condizione `aws:SourceArn` nella tua policy della funzione di rotazione, la funzione di rotazione può essere utilizzata solo per ruotare il segreto specificato da tale ARN. Ti consigliamo di includere solo la chiave di contesto `aws:SourceAccount` in modo da poter utilizzare la funzione di rotazione per più segreti.

Per eventuali problemi, consulta [Risoluzione dei problemi relativi alla rotazione di AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot_rotation.html).

## Come creare un ElastiCache utente e associarlo a Secrets Manager
<a name="User-Secrets-Manager-Associate"></a>

Nei passaggi seguenti viene illustrato come creare un utente e associarlo a Secrets Manager:

1. **Creazione di un utente non attivo**

   Per Linux, macOS o Unix:

   ```
   aws elasticache create-user \
    --user-id user1 \
    --user-name user1 \
    --engine "REDIS" \
    --no-password \ // no authentication is required
    --access-string "*off* +get ~keys*" // this disables the user
   ```

   Per Windows:

   ```
   aws elasticache create-user ^
    --user-id user1 ^
    --user-name user1 ^
    --engine "REDIS" ^
    --no-password ^ // no authentication is required
    --access-string "*off* +get ~keys*" // this disables the user
   ```

   Noterai una risposta simile alla seguente:

   ```
   {
       "UserId": "user1",
       "UserName": "user1",
       "Status": "active",
       "Engine": "redis",
       "AccessString": "off ~keys* -@all +get",
       "UserGroupIds": [],
       "Authentication": {
           "Type": "no_password"
       },
       "ARN": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1"
   }
   ```

1. **Creazione di un segreto**

   Per Linux, macOS o Unix:

   ```
   aws secretsmanager create-secret \
   --name production/ec/user1 \
   --secret-string \
   '{
      "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", 
       "username":"user1"
    }'
   ```

   Per Windows:

   ```
   aws secretsmanager create-secret ^
   --name production/ec/user1 ^
   --secret-string ^
   '{
      "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", 
       "username":"user1"
    }'
   ```

   Noterai una risposta simile alla seguente:

   ```
   {
    "ARN": "arn:aws:secretsmanager:us-east-1:123456xxxx:secret:production/ec/user1-eaFois",
    "Name": "production/ec/user1",
    "VersionId": "aae5b963-1e6b-4250-91c6-ebd6c47d0d95"
   }
   ```

1. **Configurazione di una funzione Lambda per ruotare la password **

   1. Accedi Console di gestione AWS e apri la console Lambda all'indirizzo [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/elasticache/)

   1. Nel riquadro di navigazione, seleziona **Functions** (Funzioni), quindi scegli la funzione da creare. Scegli il nome della funzione, non la casella di controllo alla sua sinistra.

   1. Scegli la scheda **Configurazione**.

   1. In **General configuration** (Configurazione generale), scegli **Edit** (Modifica), quindi imposta **Timeout** su almeno 12 minuti.

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

   1. Scegli **Environmental variables** (Variabili di ambiente), quindi imposta le seguenti opzioni:

      1. SECRETS\$1MANAGER\$1ENDPOINT – https://secretsmanager.**REGION**.amazonaws.com

      1. SECRET\$1ARN – Il nome della risorsa Amazon (ARN) del segreto creato nella Fase 2.

      1. USER\$1NAME — Nome utente dell'utente, ElastiCache 

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

   1. Seleziona **Permissions** (Autorizzazioni)

   1. In **Execution role** (Ruolo di esecuzione), scegli il nome del ruolo della funzione Lambda da visualizzare sulla console IAM.

   1. La funzione Lambda avrà bisogno della seguente autorizzazione per modificare gli utenti e impostare la password: 

      ElastiCache

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:DescribeUsers",
                      "elasticache:ModifyUser"
                  ],
                  "Resource": "arn:aws:elasticache:us-east-1:123456789012:user:user1"
              }
          ]
      }
      ```

------

      Secrets Manager

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "secretsmanager:GetSecretValue",
                      "secretsmanager:DescribeSecret",
                      "secretsmanager:PutSecretValue",
                      "secretsmanager:UpdateSecretVersionStage"
                  ],
                  "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:XXXX"
              },
              {
                  "Effect": "Allow",
                  "Action": "secretsmanager:GetRandomPassword",
                  "Resource": "*"
              }
          ]
      }
      ```

------

1. Impostazione della rotazione segreto di Secrets Manager

   1. **Utilizzo di Console di gestione AWS, vedi [Impostare la rotazione automatica per AWS i segreti di Secrets Manager utilizzando la console](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_turn-on-for-other.html)**

      Per ulteriori informazioni sulla configurazione di una pianificazione della rotazione, consulta la pagina relativa alle [espressioni di pianificazione nella rotazione Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_schedule.html).

   1. **Utilizzando il AWS CLI, vedere [Impostare la rotazione automatica per Gestione dei segreti AWS l'utilizzo di AWS Command Line Interface](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets-cli.html)**