Quali sono alcune best practice per la gestione e la distribuzione di password per app Web e chiavi private? Per esempio. la password per accedere a un database o servizi esterni come l'API di Facebook. Mi riferisco in genere all'utilizzo di hardware dedicato o di un provider cloud generale e non a provider specifici come Heroku o EC2.
È il meglio che puoi fare senza un HSM è quello di distribuire le credenziali in un file di testo normale in una directory protetta da lettura accessibile solo all'utente della web app? Dovresti avere un file con tutte le password o un file per utente o negozio in variabili d'ambiente? Come gestisci effettivamente metterli sui server? Puoi utilizzare uno strumento di gestione della configurazione (ad esempio chef / fantoccio) per distribuirli e mantenerli aggiornati? Come dovrebbero essere archiviate queste credenziali? Dovrebbero essere memorizzati in formato crittografato nella directory di controllo del codice sorgente contenente le configurazioni di gestione della configurazione? Qualche raccomandazione sugli strumenti da usare che potrebbero essere utili? (ad esempio keyczar, server segreto, ecc.) Se le password sono crittografate, qual è un buon modo per condividere la chiave di decrittazione tra il team DevOps? (LastPass, KeePass, ecc.?)
So che è una lunga lista di domande, ma queste sono tutte cose alle quali non ho trovato risposte valide. Sono interessato a qualsiasi informazione se si tratta di un caso di studio di qualcuno che lo fa bene, di compromessi tra alternative diverse, cose che dovrebbero essere chiaramente evitate o mirate. Non so davvero quali siano le migliori pratiche e strumenti utili contro ciò che dobbiamo decidere per la nostra situazione e risolvere da soli.