Best practice per la gestione delle coppie di chiavi AWS EC2

8

La nostra organizzazione utilizza Amazon Web Services (AWS) e abbiamo più istanze EC2 in esecuzione in diverse sottoreti (VPC) per diversi client. La nostra applicazione è in sviluppo e abbiamo bisogno di remote (SSH o RDP) in queste istanze.

Le istanze EC2 richiedono una coppia di chiavi per poter accedere (SSH nel caso di Linux e password dell'amministratore in caso di Windows RDP). La chiave privata ha la forma di un file fisico che può essere generato una sola volta e scaricato una volta. La perdita di questo file equivale alla perdita della possibilità di connettersi alle istanze.

Esiste una best practice ampiamente accettata e standard del settore per la gestione delle chiavi private?

Attualmente ho un backup fisico (crittografato) su un disco rigido portatile, ma non mi sembra la soluzione migliore. Quali metodi vengono impiegati dalle grandi aziende per garantire che siano in grado di sopravvivere a un disastro?

    
posta Lemonseed 08.07.2016 - 06:59
fonte

2 risposte

5

Per quanto riguarda la gestione generale delle chiavi private / pubbliche, ci sono già altre domande con risposta qui su SE: Qual è la migliore pratica: separare ssh-key per host e utente VS one ssh-key per tutti gli host? e Qual è la strategia pragmatica comune per la gestione delle coppie di chiavi?

Riguardo ai dettagli specifici di AWS: puoi e dovresti creare le tue coppie di chiavi al di fuori di AWS e caricare le chiavi pubbliche su Amazon. È possibile trovare la documentazione per creare le proprie chiavi sia per i sistemi Linux che Windows in Documentazione Amazon EC2 . Assicurati di utilizzare il formato corretto per la chiave (il testo che incollerai nel modulo di caricamento della chiave dovrebbe iniziare con ssh-rsa ).

Se hai aggiunto chiavi aggiuntive, puoi selezionarle quando avvii una nuova istanza. Puoi anche aggiungerli manualmente in un secondo momento (per sistemi Linux: aggiungi la chiave pubblica al file ~/.ssh/authorized_keys ).

Modificato: dovresti seguire il consiglio dato da @Jedi nei commenti alla tua domanda:

Private keys should be private to the user. Users should have their own keys and accounts both for personalization and auditability.

Non solo per personalizzazione e responsabilità, ma anche per quanto riguarda la revoca delle chiavi quando qualcuno lascia la squadra / una coppia di chiavi è compromessa.

    
risposta data 09.07.2016 - 12:12
fonte
-1

Ho scritto un sacco di buone pratiche per quanto riguarda EC2 e ssh. Ecco il collegamento . Potresti trovarlo utile In breve:

  1. Hai una chiave SSH per persona
  2. Proteggi la tua chiave SSH - non condividi mai la chiave privata, cripta se possibile
  3. Non utilizzare mai le chiavi generate da AWS
  4. Utilizza ID di accesso (utente) individuale
  5. Non dare accesso sudo a tutti
  6. Nascondi istanze non pubbliche
  7. Utilizza inoltro porte SSH e inoltro agente SSH
risposta data 18.07.2017 - 12:42
fonte

Leggi altre domande sui tag