Al momento ho un setup AWS con 3 VPC, uno per il bastione, poi un Dev e un Prod VPC, gli ultimi due sono solo SSH accessibili tramite il bastione naturalmente (layout da questa ottima guida ). Sto cercando il modo migliore per gestire tra 3-5 utenti che accedono ai sistemi. A lungo termine spero di avere l'automazione e il logging esterno in un posto dove nessuno ha accesso a SSH, ma per ora, SSH lo è.
Dopo aver letto le idee di questa domanda sulla gestione delle chiavi ssh Sto pensando di configurare il mio accesso AWS come segue:
- 2 account su bastione, sudoable @ bastion e non-sudoable @ bastion. gli amministratori di sistema passano attraverso uno, gli sviluppatori attraverso l'altro. (gli sviluppatori non hanno motivo di fare altro che passare attraverso il bastione)
- il file authorized_keys in ogni account del bastione contiene la chiave pubblica del sysadmins o degli sviluppatori, rispettivamente
- Istanze VPC di Dev / Prod hanno un singolo account sudoable: it @ devVPC e it @ prodVPC.
- Gli sviluppatori ricevono la chiave privata per le istanze @ devVPC, gli amministratori di sistema ottengono la chiave privata per entrambe le istanze di VPC.
- Se qualcuno entra / esce dalla compagnia, il suo pubkey viene aggiunto / rimosso dal file authorized_keys corretto sul bastione.
- Poiché le istanze di devVPC / prodVPC sono dietro il bastione, anche se il lavoratore che è partito può ancora avere la chiave privata per quei server, non c'è modo di accedervi poiché il bastione non le permetterà attraverso
Penso che questo dovrebbe impedirmi di dover gestire singoli account useradd / userdel su ogni istanza. Senza entrare in LDAP e cose che non vorrei comunque a lungo termine (di nuovo, si spera che nessuno abbia bisogno di SSH nei server AWS in futuro), sembra una configurazione legittima / sicura per un piccolo team?
Non l'ho usato ma ho anche visto AWS OpsWorks menzionato come metodo per controllare SSH chiavi? La mia situazione sembra un buon uso per questo?