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à.
Sposta le credenziali del database codificate in AWS Secrets Manager
Se nel codice sono presenti credenziali di database in testo semplice, si consiglia di spostare le credenziali in Secrets Manager e quindi ruotarle immediatamente. Lo spostamento delle credenziali in Secrets Manager risolve il problema di visibilità delle credenziali a chiunque veda il codice, perché andando avanti il codice recupera le credenziali direttamente da Secrets Manager. La rotazione del segreto aggiorna la password e quindi revoca la password codificata corrente in modo che non sia più valida.
Per i database Amazon RDS, Amazon Redshift e Amazon DocumentDB, utilizza la procedura descritta in questa pagina per spostare le credenziali codificate in Secrets Manager. Per altri tipi di credenziali e altri segreti, consulta Sposta i segreti codificati in AWS Secrets Manager.
Prima di iniziare, è necessario determinare chi ha bisogno di accedere al segreto. Consigliamo di utilizzare due ruoli IAM per gestire l'autorizzazione al tuo segreto:
-
Un ruolo che gestisce i segreti nella tua organizzazione. Per ulteriori informazioni, consulta Autorizzazioni di amministrazione di Secrets Manager. Questo ruolo sarà utilizzato per creare e ruotare il segreto.
-
Un ruolo che può utilizzare le credenziali in fase di esecuzione,
RoleToRetrieveSecretAtRuntime
in questo tutorial. Il tuo codice assume questo ruolo per recuperare il segreto.
Fasi:
Fase 1: creazione del segreto
Il primo passo consiste nel copiare le credenziali codificate esistenti in un segreto in Secrets Manager. Per la latenza più bassa, archivia il segreto nella stessa regione del database.
Per creare un segreto
-
Apri la console di Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/
. -
Scegli Archivia un nuovo segreto.
-
Nella pagina Choose secret type (Scegli il tipo di segreto), effettua le seguenti operazioni:
-
Per Secret type (Tipo di segreto), scegli il tipo di credenziali del database da archiviare:
-
Database Amazon RDS
-
Database di Amazon DocumentDB
-
Data warehouse Amazon Redshift.
-
Per altri tipi di segreti, consulta Sostituzione dei segreti codificati.
-
-
Per Credenziali, inserisci le credenziali codificate per il database.
-
In Encryption key (Chiave di crittografia), scegli aws/secretsmanager per utilizzare la Chiave gestita da AWS per Secrets Manager. L'utilizzo di questa chiave non prevede costi aggiuntivi. Puoi inoltre utilizzare la tua chiave gestita dal cliente, ad esempio per accedere al segreto da un altro Account AWS. Per informazioni sui costi di utilizzo di una chiave gestita dal cliente, consulta la sezione Prezzi.
-
Per Database, scegli il database.
-
Seleziona Successivo.
-
-
Nella pagina Configure secret (Configura il segreto), effettua le seguenti operazioni:
-
Inserisci un Secret name (Nome del segreto) e una Description (Descrizione) descrittivi.
-
In Resource permissions (Autorizzazioni della risorsa), scegli Edit permissions (Modifica autorizzazioni). Incolla la seguente policy, che
RoleToRetrieveSecretAtRuntime
consente di recuperare il segreto, quindi scegli Salva.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountId
:role/
" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }RoleToRetrieveSecretAtRuntime
-
Nella parte inferiore della pagina scegli Next (Avanti).
-
-
Nella pagina Configure rotation (Configura la rotazione), mantieni la rotazione disattivata per il momento. La attiverai più tardi. Seleziona Successivo.
-
Nella pagina Review (Revisione), rivedi i dettagli dei segreti e quindi scegli Store (Archivia).
Fase 2: aggiornamento del codice
Il codice deve assumere il ruolo IAM RoleToRetrieveSecretAtRuntime
per poter recuperare il segreto. Per ulteriori informazioni, consulta Passare a un ruolo IAM (AWS API).
Successivamente, aggiorna il codice per recuperare il segreto da Secrets Manager utilizzando il codice di esempio fornito da Secrets Manager.
Ricerca del codice di esempio
Apri la console di Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/
. -
Nella pagina dell'elenco Secrets (Segreti) scegli il segreto.
-
Scorrere verso il basso fino a Sample code (Codice di esempio). Scegli il linguaggio, quindi copia il frammento di codice.
Nell'applicazione, rimuovi le credenziali codificate e incolla il frammento di codice. A seconda del linguaggio del codice, potrebbe essere necessario aggiungere una chiamata alla funzione o al metodo nel frammento.
Verifica che la tua applicazione funzioni come previsto con il segreto al posto delle credenziali codificate.
Fase 3: rotazione del segreto
L'ultimo passo è revocare le credenziali codificate ruotando il segreto. La rotazione è il processo di aggiornamento periodico di un segreto. Quando si ruota un segreto, vengono aggiornate le credenziali sia nel segreto che nel database. Secrets Manager può ruotare automaticamente un segreto su un programma configurato.
Parte del processo di configurazione della rotazione è garantire che la funzione di rotazione Lambda possa accedere sia a Secrets Manager che al database. Quando si attiva la rotazione automatica, Secrets Manager crea la funzione di rotazione Lambda nello stesso VPC del database in modo che abbia accesso di rete al database. La funzione di rotazione Lambda deve anche essere in grado di effettuare chiamate a Secrets Manager per aggiornare il segreto. Ti consigliamo di creare un endpoint Secrets Manager nel VPC in modo che le chiamate da Lambda a Secrets Manager non lascino l'infrastruttura. AWS Per istruzioni, consulta Utilizzo di un AWS Secrets Manager VPC endpoint.
Attivazione della rotazione
Apri la console di Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/
. -
Nella pagina dell'elenco Secrets (Segreti) scegli il segreto.
-
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:
-
Attiva Automatic rotation (Rotazione automatica).
-
In Rotation schedule (Programma di rotazione), inserisci il programma nel fuso orario UTC.
-
Scegli Rotate immediately when the secret is stored (Ruota immediatamente quando viene memorizzato il segreto) per ruotare il segreto al salvataggio delle modifiche.
-
In Rotation function (Funzione di rotazione), scegli Create a new Lambda function (Crea una nuova funzione Lambda) ed immetti un nome per la nuova funzione. Secrets Manager aggiunge "SecretsManager" all'inizio del nome della funzione.
-
Per Strategia di rotazione scegli Utente singolo.
-
Selezionare Salva.
-
Verifica che il segreto sia stato ruotato
Apri la console di Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/
. -
Scegli Secrets (Segreti), quindi scegli il segreto.
Nella pagina Secret details (Dettagli del segreto), scorri e scegli Retrieve secret value (Recupera il valore del segreto).
Se il valore del segreto è cambiato, allora la rotazione è riuscita. Se il valore segreto non è cambiato, è necessario farlo Risoluzione dei problemi della rotazione consultando i CloudWatch log per verificare la funzione di rotazione.
Verifica che la tua applicazione funzioni come previsto con il segreto ruotato.
Passaggi successivi
Dopo aver rimosso un segreto codificato dal codice, ecco alcuni concetti da considerare:
-
È possibile migliorare le prestazioni e ridurre i costi tramite la memorizzazione nella cache dei segreti. Per ulteriori informazioni, consulta Ottieni segreti da AWS Secrets Manager.
-
È possibile scegliere un diverso programma di rotazione. Per ulteriori informazioni, consulta Pianificazioni di rotazione.