Qual è il modo consigliato per passare variabili di ambiente sensibili, ad es. password, alle attività Amazon ECS? Con Docker Compose, posso usare key-only environment variables, che restituisce i valori letti dall'ambiente del SO. Non riesco tuttavia a vedere alcun metodo corrispondente per ECS task definitions.Come devo passare variabili di ambiente sensibili alle attività di Amazon ECS?
risposta
Nel collegamento della definizione di attività che hai pubblicato, c'è una sezione "ambiente" che ti permette di farlo. Diventano variabili di ambiente all'interno del contenitore.
Se intendete mantenere le informazioni al di fuori della definizione dell'attività e che l'attività potrebbe fare riferimento, non è possibile. In questo caso, la soluzione migliore è che il contenitore raccolga tali informazioni da una fonte esterna e che la configurazione dell'attività ECS non tenti di farvi riferimento.
Attuazione di tirare le variabili d'ambiente da S3 che Marc Young menzionati:
https://www.promptworks.com/blog/handling-environment-secrets-in-docker-on-the-aws-container-service
È possibile utilizzare Parameter Store per memorizzare le variabili. Supporta anche la crittografia, se li memorizzi come SecureString
.
È possibile fare riferimento a tali variabili come variabili di ambiente nella definizione dell'attività.
È necessario recuperarli in un contenitore script di avvio
value_from_parameter_store =`aws ssm get-parameters --names parameter_store_key --with-decryption --region $REGION --output text 2>& 1| awk '{print $4}'`
Si può anche citare la variabile come ambiente parameter_store_key
. in modo da poter utilizzare $parameter_store_key
se si utilizzano variabili di ambiente possono essere visualizzate quando si accede alla console AWS. AWS ha scritto una guida sull'uso dei "segreti" appropriati per mantenere nascosti i dati sensibili. I contenitori li caricano all'avvio in variabili di ambiente basate sulla memoria. Ecco una guida: https://aws.amazon.com/blogs/security/how-to-manage-secrets-for-amazon-ec2-container-service-based-applications-by-using-amazon-s3-and-docker/