Le migliori pratiche per la gestione dei segreti in Amazon ECS - Amazon Elastic Container Service

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

Le migliori pratiche per la gestione dei segreti in Amazon ECS

I segreti, come ad esempio chiavi API e credenziali di database, vengono spesso utilizzati dalle applicazioni per accedere ad altri sistemi. In molti casi sono costituiti da un nome utente e una password, un certificato o una chiave API. L'accesso a tali segreti dovrebbe essere limitati a principali IAM specifici che utilizzano IAM e inseriti nei container durante il runtime.

I segreti possono essere inseriti senza problemi nei contenitori da AWS Secrets Manager Amazon EC2 Systems Manager Parameter Store. È possibile fare riferimento a questi segreti nell'attività in qualsiasi dei modi seguenti.

  1. Come variabili di ambiente che utilizzano il parametro di definizione di container secrets.

  2. Come secretOptions se la piattaforma per la registrazione di log richiede l'autenticazione. Per ulteriori informazioni, consulta le opzioni di configurazione della registrazione di log.

  3. Come segreti estratti da immagini che utilizzano il parametro di definizione di container repositoryCredentials se il registro da cui viene estratto il container richiede l'autenticazione. Utilizza questo metodo quando estrai immagini da Amazon ECR Public Gallery. Per ulteriori informazioni, consulta Autenticazione del registro privato per le attività.

Segreti e raccomandazioni

Consigliamo di completare la procedura seguente quando configuri la gestione dei segreti.

Usa AWS Secrets Manager Amazon EC2 Systems Manager Parameter Store per archiviare materiali segreti

È necessario archiviare in modo sicuro le chiavi API, le credenziali del database e altri materiali segreti in AWS Secrets Manager o come parametri crittografati in Amazon EC2 Systems Manager Parameter Store. Questi servizi sono simili perché sono entrambi archivi chiave-valore gestiti che vengono utilizzati AWS KMS per crittografare dati sensibili. AWS Secrets Manager, tuttavia, include anche la possibilità di ruotare automaticamente i segreti, generare segreti casuali e condividere segreti tra gli account. AWS Se ritieni che queste funzionalità siano importanti, utilizza AWS Secrets Manager , altrimenti utilizza i parametri crittografati.

Nota

Le attività che fanno riferimento a un indirizzo segreto AWS Secrets Manager o a Amazon EC2 Systems Manager Parameter Store richiedono un Task Execution Role con una policy che garantisca ad Amazon ECS l'accesso al segreto desiderato e, se applicabile, AWS KMS alla chiave utilizzata per crittografare e decrittografare quel segreto.

Importante

I segreti a cui si fa riferimento nelle attività non vengono ruotati in automatico. Se il segreto cambia, devi forzare una nuova implementazione o avviare una nuova attività per recuperare l'ultimo valore segreto. Per ulteriori informazioni, consulta i seguenti argomenti:

Recupera dati da un bucket Amazon S3 crittografato

Poiché il valore delle variabili di ambiente può fuoriuscire inavvertitamente nei log ed essere rivelato durante l'esecuzione di docker inspect, è consigliabile archiviare i segreti in un bucket Amazon S3 crittografato e utilizzare i ruoli di attività per limitare l'accesso a tali segreti. Quando esegui questa operazione, l'applicazione deve essere scritta in modo tale da leggere il segreto dal bucket Amazon S3. Per ricevere istruzioni, consulta Impostazione del comportamento predefinito della crittografia lato server per i bucket Amazon S3.

Montaggio del segreto in un volume con un container sidecar

Poiché esiste un rischio elevato di perdita di dati a causa delle variabili di ambiente, è consigliabile utilizzare un contenitore secondario che legga i segreti AWS Secrets Manager e li scriva su un volume condiviso. Questo container può essere eseguito e terminato prima del container dell'applicazione utilizzando l'ordinamento di container Amazon di ECS. Quando esegui questa operazione, il container dell'applicazione monta successivamente il volume in cui il segreto è stato scritto. Analogamente al metodo bucket Amazon S3, l'applicazione deve essere scritta per leggere il segreto dal volume condiviso. Poiché il suo ambito è limitato all'attività, il volume viene eliminato in automatico dopo l'interruzione dell'attività. Per un esempio di container sidecar, consulta il progetto aws-secret-sidecar-injector.

Nota

In Amazon EC2, il volume su cui il segreto viene scritto può essere crittografato con una chiave AWS KMS gestita dal cliente. Attivato AWS Fargate, lo storage di volumi viene crittografato automaticamente utilizzando una chiave gestita dal servizio.

Risorse aggiuntive