L'applicazione su cui sto lavorando ha più di una dozzina di segreti, certificati SSL e chiavi API. Attualmente ho un file aggiunto in .gitignore
e contiene tutti i miei segreti. Come conservare in modo sicuro tutti questi segreti? In che modo le app aziendali gestiscono questo aspetto, dove la sicurezza è la massima priorità?
Sto esaminando AWS KMS e, per quanto ho capito, devo crittografare tutti i segreti, eseguirne il commit e in fase di esecuzione passare le credenziali AWS per decrittografare i segreti (l'utente può utilizzare solo la chiave KMS per decrittografia e non sono state aggiunte altre autorizzazioni per l'utente).
Ora, supponendo che la macchina su cui vengono eseguiti i contenitori sia compromessa, i segreti sono crittografati, quindi dovrebbe andare bene, ma! se viene eseguito il comando docker inspect
, visualizzerà tutte le variabili di ambiente (i segreti di AWS), quindi eseguo il comando nel contenitore e tutto quello che devo fare è usare le variabili env per decrittografare i segreti .. tipo di sconfigge lo scopo o forse mi manca un passaggio da qualche parte?
Nota : anche la mia soluzione corrente non è sicura: il file è gitignored, ma esiste ancora sulla macchina in cui vengono eseguiti i contenitori (e successivamente, dopo che l'immagine è stata creata, sono esposti come env variabili).
Nota 2 : il repository Git è privato