WKLD.03 - Usa segreti effimeri o un servizio di gestione dei segreti - AWS Guida prescrittiva

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

WKLD.03 - Usa segreti effimeri o un servizio di gestione dei segreti

I segreti delle applicazioni sono costituiti principalmente da credenziali, come coppie di chiavi, token di accesso, certificati digitali e credenziali di accesso. L'applicazione utilizza questi segreti per accedere ad altri servizi da cui dipende, come un database. Per proteggere questi segreti, consigliamo che siano effimeri (generati al momento della richiesta e di breve durata, come per i ruoli IAM) o recuperati da un servizio di gestione dei segreti. Ciò impedisce l'esposizione accidentale attraverso meccanismi meno sicuri, come la persistenza in file di configurazione statici. Questo semplifica anche la promozione del codice dell'applicazione dagli ambienti di sviluppo a quelli di produzione.

Per un servizio di gestione dei segreti, consigliamo di utilizzare una combinazione di Parameter Store, una funzionalità di AWS Systems Manager e AWS Secrets Manager:

  • Utilizza Parameter Store per gestire segreti e altri parametri che sono coppie chiave-valore individuali, basate su stringhe, di lunghezza complessiva breve e a cui si accede frequentemente. Utilizza una chiave AWS Key Management Service (AWS KMS) per crittografare il segreto. La memorizzazione dei parametri nel livello standard di Parameter Store è gratuita. Per ulteriori informazioni sui livelli dei parametri, consulta Gestione dei livelli dei parametri (documentazione di Systems Manager).

  • Utilizza Secrets Manager per archiviare segreti in formato documento (come più coppie chiave-valore correlate), che hanno dimensioni superiori a 4 KB (come i certificati digitali) o che trarrebbero vantaggio dalla rotazione automatizzata.

È possibile utilizzare le API di Parameter Store per recuperare i segreti archiviati in Secrets Manager. Ciò consente di standardizzare il codice dell'applicazione quando si utilizza una combinazione di entrambi i servizi.

Per gestire i segreti in Parameter Store
  1. Crea una chiave AWS KMS simmetrica (documentazione di AWS KMS).

  2. Crea un parametro SecureString (documentazione di Systems Manager). I segreti in Parameter Store utilizzano il tipo di dati SecureString.

  3. Nell'applicazione, recupera un parametro da Parameter Store utilizzando l'SDK AWS per il tuo linguaggio di programmazione. Per un esempio in Java, vedi GetParameter.java (AWS Code Sample Catalog).

Per gestire i segreti in Secrets Manager
  1. Crea un segreto (documentazione di Secrets Manager).

  2. Recupera segreti da AWS Secrets Manager in codice (documentazione di Secrets Manager).

    È importante leggere Utilizza librerie di memorizzazione nella cache lato client AWS Secrets Manager per migliorare la disponibilità e la latenza dell'utilizzo dei segreti (post sul blog di AWS). L'utilizzo di SDK lato client, che dispongono già di best practice implementate, dovrebbe accelerare e semplificare l'uso e l'integrazione di Secrets Manager.