Imposta la rotazione automatica per i segreti non relativi al database AWS Secrets Manager - 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 per i segreti non relativi al database AWS Secrets Manager

Questo tutorial descrive come configurare i segreti non relativi Rotazione tramite funzione Lambda al database. La rotazione è il processo di aggiornamento periodico di un segreto. Quando ruoti un segreto, aggiorni le credenziali sia nel segreto che nel database o nel servizio a cui si riferisce il segreto.

Per informazioni segrete sul database, consulta Rotazione automatica per i segreti del database (console).

avvertimento

Per attivare la rotazione automatica, è necessario disporre dell'autorizzazione per creare un ruolo di IAM esecuzione per la funzione di rotazione Lambda e allegare ad esso un criterio di autorizzazione. Sono necessarie entrambe le autorizzazioni iam:CreateRole e iam:AttachRolePolicy. La concessione di queste autorizzazioni consente a un'identità di concedersi qualsiasi autorizzazione.

Fase 1: Creare una funzione di rotazione generica

Per iniziare, crea una funzione di rotazione Lambda. Non conterrà il codice per ruotare il tuo segreto, quindi lo scriverai in un passaggio successivo. Per informazioni su come funziona una funzione di rotazione, consultaFunzioni di rotazione Lambda.

Nelle regioni supportate, è possibile utilizzare AWS Serverless Application Repository per creare la funzione da un modello. Per un elenco delle regioni supportate, consulta AWS Serverless Application Repository FAQs. In altre regioni, si crea la funzione da zero e si copia il codice del modello nella funzione.

Per creare una funzione di rotazione generica
  1. Per determinare se AWS Serverless Application Repository è supportata nella tua regione, consulta gli AWS Serverless Application Repository endpoint e le quote nel Riferimento AWS generale.

  2. Esegui una di queste operazioni:

    • Se AWS Serverless Application Repository è supportato nella tua regione:

      1. Nella console Lambda, scegli Applicazioni, quindi scegli Crea applicazione.

      2. Nella pagina Crea applicazione, scegli la scheda Applicazione Serverless.

      3. Nella casella di ricerca in Applicazioni pubbliche, inserisciSecretsManagerRotationTemplate.

      4. Seleziona Mostra app che creano IAM ruoli o politiche di risorse personalizzati.

      5. Scegli il SecretsManagerRotationTemplateriquadro.

      6. Nella pagina Rivedi, configura e distribuisci, nel riquadro Impostazioni applicazione, compila i campi obbligatori.

        • Per endpoint, inserisci l'endpoint per la tua regione, incluso. https:// Per un elenco di endpoint, consulta AWS Secrets Manager endpoint.

        • Per inserire la funzione Lambda in aVPC, includi Ids e vpcSecurityGroup. vpcSubnetIds

      7. Seleziona Deploy (Implementa).

    • Se AWS Serverless Application Repository non è supportato nella tua regione:

      1. Nella console Lambda, scegli Funzioni, quindi scegli Crea funzione.

      2. Nella pagina Create function (Crea funzione), procedere come segue:

        1. Scegli Author from scratch (Crea da zero).

        2. In Function name (Nome funzione), inserisci un nome per la funzione di rotazione.

        3. In Runtime, scegli Python 3.9.

        4. Scegli Crea funzione.

Fase 2: Scrittura del codice della funzione di rotazione

In questo passaggio, scrivi il codice che aggiorna il segreto e il servizio o il database a cui è destinato il segreto. Per informazioni sul funzionamento di una funzione di rotazione, inclusi suggerimenti su come scrivere una funzione di rotazione personalizzata, vedereFunzioni di rotazione Lambda. È inoltre possibile utilizzarla Modelli di funzione di rotazione come riferimento.

Fase 3: Configurare il segreto per la rotazione

In questo passaggio, imposti un programma di rotazione per il tuo segreto e connetti la funzione di rotazione al segreto.

Per configurare la rotazione e creare una funzione di rotazione vuota
  1. Apri la console Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/.

  2. Nella pagina dell'elenco Secrets (Segreti) scegli il segreto.

  3. Nella pagina Secret details (Dettagli del segreto), nella sezione Rotation configuration (Configurazione rotazione) scegli Edit rotation (Modifica rotazione). Nella finestra di dialogo Edit rotation configuration (modifica configurazione rotazione), procedi come indicato di seguito:

    1. Attiva Automatic rotation (Rotazione automatica).

    2. In Pianificazione di rotazione, inserisci la tua pianificazione in base al fuso UTC orario nel generatore di espressioni di pianificazione o come espressione di pianificazione. Gestione dei segreti memorizza la tua pianificazione come un'espressione rate() o cron(). La finestra di rotazione inizia automaticamente a mezzanotte, a meno che non si specifichi un'ora di inizio. Puoi ruotare un segreto anche ogni quattro ore. Per ulteriori informazioni, consulta Pianificazioni di rotazione.

    3. (Facoltativo) Per Window duration (Durata della finestra), scegli la lunghezza della finestra durante la quale vuoi che Secrets Manager ruoti il tuo segreto, ad esempio 3h per una finestra di tre ore. La finestra non deve continuare nella finestra di rotazione successiva. Se non si specifica la durata della finestra, per un programma di rotazione espresso in ore, la finestra si chiude automaticamente dopo un'ora. Per un programma di rotazione espresso in giorni, la finestra si chiude automaticamente alla fine della giornata.

    4. (Facoltativo) Scegli Rotate immediately when the secret is stored (Ruota immediatamente quando viene memorizzato il segreto) per ruotare il segreto al salvataggio delle modifiche. Deselezionando la casella di controllo, la prima rotazione inizierà nella pianificazione impostata.

    5. In Funzione di rotazione, scegli la funzione Lambda che hai creato nel passaggio 1.

    6. Selezionare Salva.

Passaggio 4: consentire alla funzione di rotazione di accedere a Secrets Manager e al database o al servizio

La funzione di rotazione Lambda richiede l'autorizzazione per accedere al segreto in Gestione dei segreti e necessita dell'autorizzazione per accedere al database o al servizio. In questo passaggio, concedi queste autorizzazioni al ruolo di esecuzione di Lambda. Se il segreto è crittografato con una KMS chiave diversa da Chiave gestita da AWS aws/secretsmanager, è necessario concedere al ruolo di esecuzione Lambda l'autorizzazione a utilizzare la chiave. È possibile utilizzare il contesto di ARN crittografia segreto per limitare l'uso della funzione di decrittografia, in modo che il ruolo della funzione di rotazione abbia accesso solo alla decrittografia del segreto di cui è responsabile della rotazione. Per esempi di policy, consulta Autorizzazioni per la rotazione.

Per istruzioni, consulta Ruolo di esecuzione di Lambda nella Guida per gli sviluppatori di AWS Lambda .

Passaggio 5: consentire a Secrets Manager di richiamare la funzione di rotazione

Per consentire a Secrets Manager di richiamare la funzione di rotazione nella pianificazione di rotazione impostata, è necessario concedere l'lambda:InvokeFunctionautorizzazione al responsabile del servizio Secrets Manager nella politica delle risorse della funzione Lambda.

Nella policy delle risorse per la funzione di rotazione, si consiglia di includere la chiave di contesto aws:SourceAccount per prevenire che Lambda venga usato come confused deputy. Per alcuni AWS servizi, per evitare il confuso scenario sostitutivo, si AWS consiglia di utilizzare sia i tasti di condizione aws:SourceArnsia i tasti di condizione aws:SourceAccountglobali. 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 collegare una policy sulle risorse a una funzione Lambda, consulta Utilizzo delle policy basate su risorse per Lambda.

La seguente politica consente a Secrets Manager di richiamare una funzione Lambda.

{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "secretsmanager.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" } }, "Resource": "LambdaRotationFunctionARN" } ] }

Fase 6: Configurare l'accesso alla rete per la funzione di rotazione

In questo passaggio, consenti alla funzione di rotazione di connettersi sia a Secrets Manager che al servizio o al database a cui è destinato il segreto. La funzione di rotazione deve avere accesso a entrambi per poter ruotare il segreto. Per informazioni, consulta Accesso alla rete per la funzione di rotazione Lambda.

Passaggi successivi

Quando hai configurato la rotazione nel Passaggio 3, hai impostato una pianificazione per la rotazione del segreto. Se la rotazione fallisce quando è pianificata, Secrets Manager tenterà la rotazione più volte. È inoltre possibile avviare immediatamente una rotazione seguendo le istruzioni riportate inRotazione immediata di un segreto.

Se la rotazione fallisce, vediRisoluzione dei problemi della rotazione.