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.
Fasi:
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
-
Esegui una di queste operazioni:
Controlla l'elenco dei modelli delle funzioni di rotazione. 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.
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
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.
-
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
-
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
-
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-account123456789012
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.