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 a API 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 (RedisOSS) (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 ha un set di funzionalità equivalente a Redis OSS 7.0. In Redis OSS 6, ElastiCache introdotto Controllo degli 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. ConRBAC, mentre il cliente crea un utente con password, i valori della password devono essere inseriti manualmente in testo semplice e sono visibili all'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, creerai una funzione Lambda che interagirà con il modify-user API 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 le chiavi di condizione sia le aws:SourceArn chiavi di condizione globali. aws:SourceAccount Tuttavia, se si include la aws:SourceArn condizione nella politica della funzione di rotazione, la funzione di rotazione può essere utilizzata solo per ruotare il segreto da essa ARN specificato. 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 — L'Amazon Resource Name (ARN) del segreto che hai creato nel passaggio 2.

      3. USER_ NAME — Nome utente dell' ElastiCache utente,

      4. Seleziona Salva.

    7. Seleziona Permissions (Autorizzazioni)

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

    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