Sposta i segreti codificati in 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à.

Sposta i segreti codificati in AWS Secrets Manager

Se nel codice sono presenti segreti in testo semplice, si consiglia di ruotarli e poi archiviarli in Secrets Manager. Lo spostamento delle credenziali in Secrets Manager risolve il problema di visibilità del segreto a chiunque veda il codice, perché andando avanti il codice recupera il segreto direttamente da Secrets Manager. La rotazione del segreto revoca il segreto codificato corrente in modo che non sia più valido.

Per i segreti delle credenziali del database, consulta Sposta le credenziali del database codificate in AWS Secrets Manager.

Prima di iniziare, è necessario determinare chi ha bisogno di accedere al segreto. Ti consigliamo di utilizzare due IAM ruoli 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 il segreto in fase di esecuzione, ad esempio in questo tutorial lo usi RoleToRetrieveSecretAtRuntime. Il tuo codice assume questo ruolo per recuperare il segreto. In questo tutorial, si concede al ruolo solo l'autorizzazione per recuperare il valore di un segreto e si concede l'autorizzazione utilizzando la policy delle risorse del segreto. Per le alternative, consulta Passaggi successivi.

Fase 1: creazione del segreto

Il primo passo consiste nel copiare il segreto codificato esistente in Secrets Manager. Se il segreto è correlato a un AWS risorsa, memorizzala nella stessa regione della risorsa. Altrimenti, archiviala nella regione con la latenza più bassa per il tuo caso d'uso.

Creazione di un segreto (console)
  1. Apri la console Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/.

  2. Scegli Archivia un nuovo segreto.

  3. Nella pagina Choose secret type (Scegli il tipo di segreto), effettua le seguenti operazioni:

    1. Per Secret type (Tipo di segreto), scegli Other type of secret (Altro tipo di segreto).

    2. Inserisci il tuo segreto come coppie chiave/valore o in testo semplice. Alcuni esempi:

      API key

      Inserisci come coppie chiave/valore:

      ClientID : my_client_id

      ClientSecret : wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

      OAuth token

      Inserisci come testo semplice:

      AKIAI44QH8DHBEXAMPLE

      Digital certificate

      Inserisci come testo semplice:

      -----BEGIN CERTIFICATE----- EXAMPLE -----END CERTIFICATE-----
      Private key

      Inserisci come testo semplice:

      –--- BEGIN PRIVATE KEY ---- EXAMPLE ––-- END PRIVATE KEY –---
    3. Per la chiave di crittografia, scegli aws/secretsmanager per usare il Chiave gestita da AWS per Secrets Manager. L'utilizzo di questa chiave non prevede costi aggiuntivi. Puoi anche utilizzare la tua chiave gestita dal cliente, ad esempio per accedere al segreto da un altro Account AWS. Per informazioni sui costi dell'utilizzo di una chiave gestita dal cliente, consultaPrezzi.

    4. Scegli Next (Successivo).

  4. Nella pagina Choose secret type (Scegli il tipo di segreto), effettua le seguenti operazioni:

    1. Inserisci un Secret name (Nome del segreto) e una Description (Descrizione) descrittivi.

    2. In Resource permissions (Autorizzazioni della risorsa), scegli Edit permissions (Modifica autorizzazioni). Incolla la seguente politica, che consente RoleToRetrieveSecretAtRuntime per recuperare il segreto, quindi scegli Salva.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountId:role/RoleToRetrieveSecretAtRuntime" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
    3. Nella parte inferiore della pagina scegli Next (Avanti).

  5. Nella pagina Configure rotation (Configura la rotazione), mantieni la rotazione disattivata. Scegli Next (Successivo).

  6. Nella pagina Review (Revisione), rivedi i dettagli dei segreti e quindi scegli Store (Archivia).

Fase 2: aggiornamento del codice

Il tuo codice deve assumere il ruolo IAM RoleToRetrieveSecretAtRuntime per poter recuperare il segreto. Per ulteriori informazioni, vedere Passaggio a un IAM ruolo (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
  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. Scorrere verso il basso fino a Sample code (Codice di esempio). Scegli il linguaggio di programmazione, quindi copia il frammento di codice.

Nell'applicazione, rimuovi il segreto codificato 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 del segreto codificato.

Fase 3: aggiornamento del segreto

L'ultima fase è la revoca e l'aggiornamento del segreto codificato. Fai riferimento all'origine del segreto per trovare le istruzioni per revocare e aggiornare il segreto. Ad esempio, potrebbe essere necessario disattivare il segreto corrente e generarne uno nuovo.

Aggiornamento del segreto con il nuovo valore
  1. Apri la console Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/.

  2. Scegli Secrets (Segreti), quindi scegli il segreto.

  3. Nella pagina Secret details (Dettagli del segreto), scorri verso il basso e scegli Retrieve secret value (Recupera il valore del segreto), quindi Edit (Modifica).

  4. Aggiorna il segreto, quindi scegli Save (Salva).

Quindi, verifica che la tua applicazione funzioni come previsto con il nuovo segreto.

Passaggi successivi

Dopo aver rimosso un segreto codificato dal codice, ecco alcuni concetti da considerare: