Le variabili d'ambiente di Elastic Beanstalk sono un luogo adatto per memorizzare valori segreti?


15

Ho distribuito la mia applicazione Django a Elastic Beanstalk con l'intenzione di utilizzare la sua interfaccia di configurazione delle variabili di ambiente per memorizzare le mie chiavi API invece di memorizzarle nella mia fonte (come descritto qui /programming//a/17878600 ).

Dopo aver fatto questo, ho scoperto che ciò che Beanstalk chiama variabili di ambiente non sono in realtà variabili di ambiente di shell (come menzionato qui /programming//a/24564832/378638 ) e sono memorizzati sull'istanza in un file di configurazione (come descritto qui /programming//a/24566283/378638 ).

Questo mi sembra un problema di sicurezza. Questo non sconfigge lo scopo di tenere le chiavi segrete fuori dalla fonte? Capisco che non sono più nel repository, ma sono ancora accessibili sull'istanza.

Sto fraintendendo il rischio? Sono un amministratore di sistema per eredità, quindi per favore scusa la mia ignoranza qui. Devo semplicemente caricare le variabili Beanstalk come variabili di ambiente shell tramite il file di configurazione e andare avanti dal momento che il file è accessibile solo tramite root o la mia preoccupazione è valida? Grazie.

Risposte:


12

Il punto di mantenere i segreti fuori dal codice sorgente è che non passino al controllo del codice sorgente . Ciò è particolarmente utile nei progetti open source.

Quando distribuito, non importa se il segreto è in un file o in envvar. Ciò che è importante è che solo l'utente del sistema operativo in esecuzione sul programma può leggerlo. Questo è il valore predefinito per envvars, che è conveniente.

La radice può sempre leggere tutto. Quindi Amazon può conoscere i tuoi valori segreti se lo desiderano, perché sono root.

Essi supportano moduli di sicurezza hardware costosi (HSM), però, che renderebbero le chiavi illeggibile. Ovviamente, potrebbero ancora usare l'HSM per decifrare le tue cose, semplicemente non ottenere mai la chiave effettiva.

Quindi o devi fidarti di Amazon, o ospitare cose da te o colocate.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.