LookAuth: un tool DevOps per il Single Sign-on con G Suite su AWS

 


author photobeSharp | 10 Settembre 2019

DevOps MFA Non categorizzato Single Sign-On (SSO)

Quanti piccoli tasks ripetitivi svolge ogni giorno uno sviluppatore Cloud-native su AWS? E con quanti diversi account AWS ha a che fare? Inoltre, quanti problemi potrebbero nascere da attività correlate, come la gestione dell’identità, degli accessi e la rotazione delle credenziali? Molti, vero? Lo sappiamo molto bene, perché anche noi ci siamo imbattuti in molti di questi problemi all’inizio della nostra esperienza con AWS.

Dunque, cosa fare? La soluzione per noi è stata quella di sviluppare un tool che sfruttasse il Single Sign-on con G Suite per gestire in modo sicuro l’accesso programmatico (CLI/SDK) alle risorse AWS, anche se queste erano distribuite in più account.

Nonostante sia nato come tool interno, dopo aver ricevuto moltissimi commenti su questo nostro articolo, abbiamo deciso di continuare a lavorarci e di evolverlo, per creare una soluzione che potesse aiutare il maggior numero di Sviluppatori e DevOps.

È iniziato tutto così…

All’inizio…

All’inizio eravamo la tipica start-up. Avevamo un solo account AWS, dove tutti i nostri progetti venivano sviluppati e mantenuti.

Quindi, la prima cosa a cui abbiamo pensato è stata quella di fornire un accesso sicuro alla console AWS ai nostri sviluppatori, garantendo comunque la facilità d’uso (avevamo e abbiamo tutt’ora una rigorosa politica sulle password e sulla Multi-Factor Authentication). L’idea era di configurare il Single Sign-on con G Suite, per sfruttare la sicurezza del nostro Identity Provider e accedere alla console AWS con le nostre credenziali di Google.

Single Sign on with G Suite to AWS

SSO with G Suite to aws

Tuttavia, avevamo ancora qualche dubbio riguardo all’ambiente locale dei nostri sviluppatori. Usare gli IAM users per pushare il codice e deployare i nostri progetti non ci sembrava una soluzione troppo arguta… e se delle credenziali fossero state rubate o accidentalmente pushate all’interno di un repository git e qualcuno avesse manomesso il nostro account? Cosa sarebbe potuto accadere? 

Tutte queste considerazioni hanno portato alla prima versione di LookAuth, un client desktop che era in grado di generare automaticamente credenziali a breve termine attraverso  Secure Access Token Service (STS) di AWS. Questo consentiva ai nostri sviluppatori di eseguire azioni all’interno del nostro account. Fin dall’inizio, LookAuth ha sfruttato il Single Sign-on con il nostro Identity provider (G Suite) per facilitare il meccanismo di autenticazione e autorizzazione.

Inoltre, è stato da subito dotato di un’interfaccia incredibilmente intuitiva.

A metà strada

In poco tempo il numero dei nostri clienti ha cominciato a crescere, e ci siamo resi conto che utilizzare un unico account per sviluppare e mantenere tutti i nostri progetti non era la soluzione migliore. 

Volendo isolare le risorse di ciascun cliente, abbiamo iniziato a suddividere il nostro codice, i carichi di lavoro e le configurazioni in diversi account AWS. Inoltre, abbiamo cominciato ad avere clienti più grandi e strutturati, con regole di compliance interne che richiedono di sviluppare, mantenere e pubblicare i progetti sui loro account AWS.

In poco tempo abbiamo ottenuto un ecosistema di lavoro con account AWS multipli, alcuni dei quali non erano nemmeno completamente sotto il nostro controllo; avevamo bisogno di accedere ed eseguire azioni in questi account più volte al giorno. Operare in molti account diversi, anche con l’aiuto della prima versione di LookAuth, non era particolarmente pratico.

Così abbiamo rifattorizzato LookAuth per soddisfare le nostre nuove esigenze: gli sviluppatori adesso potevano salvare sulle loro workstation gli account e i ruoli da assumere, e li potevano selezionare attraverso la UI.

I risultati sono stati sorprendenti. Questo cambiamento ci ha permesso di risparmiare mezz’ora al giorno, che prima i nostri dev impiegavano per passare da un account all’altro, il tutto mantenendo la natura sicura e a breve termine delle credenziali auto generate.

Ieri

I nostri numeri crescevano e continuano tuttora a crescere! Le sfide che stiamo affrontando, però, sono un po’ diverse dalle precedenti: mentre abbiamo sempre dovuto risolvere problemi tecnici, ora ci troviamo di fronte a un problema di governance.

Ad oggi, la responsabilità più critica è quella di dare il giusto accesso alle persone giuste, con i minimi privilegi necessari per poter svolgere il proprio lavoro. Inoltre, non possiamo aspettarci che i nostri sviluppatori sappiano tutto sui nostri clienti e su quello che possono (o non possono) fare nei loro account.

Anche in questo caso, la soluzione è stata semplice. Abbiamo tolto al client desktop (e allo sviluppatore) la possibilità di configurare gli account e i ruoli da assumere, e l’abbiamo centralizzato all’interno di una console web-based.

Il compito della console è quello di assicurare che tutti possano accedere agli account giusti con il corretto set di privilegi, e solo per il tempo necessario per eseguire i propri tasks; ora tutte le configurazioni sono memorizzate nella console di gestione e vengono pushate dinamicamente al client desktop degli sviluppatori.

Oggi!

Ed eccoci qui. Parlare con i nostri clienti e partecipare a varie conferenze AWS ci ha fatto capire quante persone nella comunità DevOps condividono le nostre stesse esigenze. Tuttavia, non avremmo mai pensato che questa nostra piccola idea sarebbe diventata qualcosa di più.

Oggi per noi è un grande giorno: siamo così entusiasti di condividere il risultato della nostra ricerca per permettere a tutti di beneficiare delle conoscenze che abbiamo acquisito.

Quindi, signore e signori, godetevi LookAuth!

author photo

beSharp
Dal 2011 beSharp guida le aziende italiane sul Cloud.
Dalla piccola impresa alla grande multinazionale, dal manifatturiero al terziario avanzato, aiutiamo le realtà più all’avanguardia a realizzare progetti innovativi in campo IT.


Lascia un commento



Ti potrebbero interessare

parla con un esperto! Contact us at +39-339-7816800