Imposta la rotazione automatica utilizzando AWS CLI - AWS Secrets Manager

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 AWS CLI

Questo tutorial descrive come eseguire la configurazione Rotazione tramite funzione Lambda 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). Per altri tipi di segreti, consulta la sezione Rotazione automatica per i segreti non relativi al database (console).

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.

Prerequisito per i segreti del database: scegliere una strategia di rotazione

Per informazioni sulle strategie offerte da Secrets Manager, vedereStrategie di rotazione delle funzioni Lambda.

Opzione 1: strategia per utente singolo

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

Opzione 2: strategia per utenti alternati

Se scegli la strategia per utenti alternati, devi:

  • Crea un database segreto 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 AWS Secrets Manager.

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

Fase 1: scrivere il codice della funzione di rotazione

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

Per scrivere il codice della funzione di rotazione
  1. Esegui una di queste operazioni:

  2. Salvate il file in un file ZIP my-function.zip insieme a tutte le dipendenze richieste.

Fase 2: Creare la funzione Lambda

In questo passaggio, si crea la funzione Lambda utilizzando il file ZIP creato nel passaggio 1. È inoltre possibile impostare il ruolo di esecuzione Lambda, 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 ulteriori informazioni, consulta. Autorizzazioni del ruolo di esecuzione della funzione di rotazione Lambda per AWS Secrets Manager 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.

  2. Crea il ruolo di esecuzione Lambda e applica la policy di fiducia creata nel passaggio precedente chiamando. iam create-role

    aws iam create-role \ --role-name rotation-lambda-role \ --assume-role-policy-document file://trust-policy.json
  3. Crea la funzione Lambda dal file ZIP chiamando lambda create-function.

    aws lambda create-function \ --function-name my-rotation-function \ --runtime python3.7 \ --zip-file fileb://my-function.zip \ --handler .handler \ --role arn:aws:iam::123456789012:role/service-role/rotation-lambda-role
  4. Imposta una policy delle risorse sulla funzione Lambda per consentire a Gestione dei segreti di richiamarla effettuando una chiamata lambda add-permission.

    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

Per ulteriori informazioni, consulta Accesso alla rete per la funzione di rotazione Lambda.

Fase 4: Configurare il segreto per la rotazione

Per attivare la rotazione automatica del segreto, chiama rotate-secret. 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.

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

Passaggi successivi

Per informazioni, consulta Risolvi i problemi AWS Secrets Manager di rotazione.