Rotazione automatica delle password per utenti - Amazon ElastiCache

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

Con AWS Secrets Manager, 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 AWS Secrets Manager, consulta What is? AWS Secrets Manager

Come ElastiCache utilizza i segreti

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

L'utilizzo di segreti comporta un costo. Per informazioni sui prezzi, consulta Prezzi di AWS Secrets Manager.

In che modo ElastiCache gli utenti vengono associati al segreto

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

Per abilitare la rotazione automatica delle password di Secrets Manager, creare una funzione Lambda che interagisce con l'API modify-user per aggiornare le password dell'utente.

Per informazioni sul funzionamento, consulta Come funzione la rotazione.

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.

Come creare un ElastiCache utente e associarlo a Secrets Manager

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" }
  2. 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" }
  3. Configurazione di una funzione Lambda per ruotare la password

    1. Accedi AWS Management Console e apri la console Lambda all'indirizzo https://console.aws.amazon.com/lambda/

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

    3. Scegli la scheda Configurazione.

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

    5. Seleziona Salva.

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

      1. SECRETS_MANAGER_ENDPOINT – https://secretsmanager.REGION.amazonaws.com

      2. SECRET_ARN – Il nome della risorsa Amazon (ARN) del segreto creato nella Fase 2.

      3. USER_NAME — Nome utente dell'utente, ElastiCache

      4. Seleziona Salva.

    7. Seleziona Permissions (Autorizzazioni)

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

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

      ElastiCache

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

      Secrets Manager

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "arn:aws:secretsmanager:us-east-1:xxxxxxxxxxx:secret:XXXX" }, { "Effect": "Allow", "Action": "secretsmanager:GetRandomPassword", "Resource": "*" } ] }
  4. Impostazione della rotazione segreto di Secrets Manager

    1. Utilizzo di AWS Management Console, vedi Impostare la rotazione automatica per AWS i segreti di Secrets Manager utilizzando la console

      Per ulteriori informazioni sulla configurazione di una pianificazione della rotazione, consulta la pagina relativa alle espressioni di pianificazione nella rotazione Secrets Manager.

    2. Utilizzando il AWS CLI, vedere Impostare la rotazione automatica per AWS Secrets Manager l'utilizzo di AWS Command Line Interface