Amazon (IAM) Identity and Access Management
da Davide Riboldi · pubblicato il 19 giugno, 2014 · modificato il 20 luglio, 2016

Il servizio degli Amazon Web Services chiamato IAM (Identity and Access Management) permette di gestire la sicurezza che riguarda il controllo e l’utilizzo delle risorse e dei servizi messi a disposizione da Amazon. Usando IAM è possibile gestire gruppi, utenti, ruoli e permessi per concedere o negare l’utilizzo dei servizi legati ad un account.

Con questo servizio possiamo evitare di utilizzare le credenziali del nostro account principale e creare un certo numero di utenti e autorizzazioni specifiche per i servizi o gruppi di servizi, questo ci permetterà di proteggere l’utente root e rendere la concessione e la revoca delle autorizzazioni una funzione molto più sicura.

Introduzione

Senza questo servizio le organizzazioni con più utenti dovrebbero creare più account, ciascuno con la propria fatturazione e sottoscrizione ai servizi di Amazon, inoltre i dipendenti dovrebbero condividere le credenziali su un unico account AWS.

Senza IAM, non si ha nessun controllo sulle attività degli utenti e dei sistemi e su quello che possono fare e quali risorse AWS potrebbero utilizzare.

Amazon IAM risolve questo problema consentendo alle organizzazioni di creare più utenti (ogni utente può essere una persona, un sistema o un’app) che possono utilizzare i servizi, ognuno con le sue credenziali  e tutti controllati da un unico account AWS.

Amazon IAM

AWS identity and access management è una caratteristica collegata ad un account AWS e viene messa a disposizione senza costi aggiuntivi. Ovviamente verranno addebitati i costi dei servizi AWS utilizzati attraverso i propri utenti IAM. Il vantaggio di questo è che si potrà gestire in un unico account la fatturazione e il successivo pagamento.

Funzionalità

La maggior parte delle funzionalità messe a disposizione da Amazon IAM sono gestibili tramite management console che potete vedere nella schermata precedente. Le prime azioni che normalmente vengono eseguite sono la creazione di gruppi, utenti e ruoli, come potete notare dalla schermata tutte queste operazioni sono eseguite a livello globale e quindi non è necessario selezionare nessuna regione geografica.

I gruppi servono per assegnare delle autorizzazioni ad un insieme di utenti da gestire, senza dover specificare le regole di sicurezza per ogni singolo utente. Gli utenti possono essere creati con delle proprie regole di accesso ed successivamente essere inseriti nei gruppi. Per quanto riguarda i ruoli è possibile definire delle entità specifiche che possiamo assegnare ad esempio a server EC2 o applicazioni.

Altre funzionalità che possiamo gestire da console sono l’attivazione MFA per eseguire il login con doppia autenticazione e password a tempo. Cambiare le policy delle password con dei criteri personalizzati a livello di organizzazione. Ottenere un indirizzo URL che dovremmo usare per far eseguire il login ai nostri utenti IAM. Infatti il login su Amazon potrà essere usato solo per l’account root mentre il nuovo URL per gli utenti IAM. Sulla schermata di esempio trovate questo campo indicato come IAM Sign-in URL.

Migrazione

Se la propria organizzazione già utilizza gli Amazon Web Services, la migrazione verso Amazon IAM può risultare facile o molto impegnativa, tutto dipende da come vengono allocate attualmente le risorse AWS. Ecco i tre possibili scenari:

Un solo account AWS: in questo caso la migrazione IAM è abbastanza semplice, perché tutte le risorse AWS vengono già gestite sotto un unico account AWS, quindi basterà smettere di usare l’account root e configurare un nuovo utente IAM amministratore.

Più account AWS ed ognuno rappresenta una divisione: se le divisioni non hanno bisogno di condividere risorse o utenti, allora la migrazione è semplice. Ogni divisione può mantenere il proprio account e utilizzare IAM separatamente dalle altre divisioni. È anche possibile utilizzare il consolidamento della fatturazione che consentirebbe all’organizzazione di ricevere un’unica fattura per tutti gli account AWS.

Più account AWS ed ognuno non rappresenta una divisione: se gli account AWS devono condividere le risorse e avere gli utenti in comune, migrare verso IAM sarà molto difficile, infatti in questo caso bisogna muovere le risorse che si vuole condividere sotto un unico account e siccome non esiste un sistema automatico per trasferire le risorse da un account all’altro, bisogna ricreare tutte le risorse sotto il nuovo account AWS.

Terminologia

Come ormai è nostra abitudine quando presentiamo per la prima volta un servizio AWS elenchiamo sempre i termini più utilizzati in maniera tale da avere meno difficoltà nella lettura della documentazione ufficiale. Per quanto riguarda Amazon IAM i termini più importanti che bisogna conoscere sono i seguenti:

Account: se usate già AWS avrete già acquisito familiarità con gli account AWS e le loro caratteristiche. Con IAM, un account AWS rimane sostanzialmente lo stesso, tranne per il fatto che un account può ora gestire sotto di lui degli utenti. Un account è la prima entità che si crea quando si iniziano ad utilizzare i servizi ed è il proprietario di tutte le risorse create sotto di lui e paga per tutte le attività che le risorse generano.

Ruolo: è un’entità con una serie di autorizzazioni che un’altra entità assume per effettuare delle chiamate per accedere alle risorse AWS. Il soggetto che assume il ruolo utilizza delle credenziali di protezione temporanee per poter effettuare le chiamate.

Risorse: una risorsa è un’entità di un servizio AWS con il quale un utente può interagire, come ad esempio un Bucket S3, una coda SQS e così via.

Autorizzazioni: è il concetto di consentire o negare ad una entità, come ad esempio un utente, un gruppo o un ruolo, un qualche tipo di accesso ad una risorsa. Per esempio, a Mario viene data l’autorizzazione di lettura su un bucket S3 chiamato example_bucket.

Policy: è un particolare documento che fornisce una dichiarazione formale di una o più autorizzazioni. Con Amazon IAM, è possibile assegnare una policy a una entità e le sue autorizzazioni sono dichiarate nella policy. È possibile assegnare più policy a un’entità.
Se si desidera assegnare la stessa policy a più utenti, si consiglia di mettere gli utenti in un gruppo e assegnare la policy direttamente al gruppo.

I dieci consigli migliori

Abbiamo aggiunto un’articolo per elencare i consigli migliori su Amazon IAM che potete anche provare e testare nel vostro ambiente di prova su Amazon AWS.

Simulazione dei permessi

Tramite la management console possiamo simulare i permessi e gli utenti che abbiamo definito nel nostro ambiente IAM senza dover effettuare delle prove sull’ambiente reale e utilizzare delle risorse dell’account. Per provarlo basta andare su Policy Simulation, inserire l’utente, il servizio, l’azione e premere il tasto chiamato “Run”. Direttamente sulla console otterrete tutti i risultati e i dettagli della prova di accesso.

Amazon IAM

Come potete vedere dalla schermata precedente potete provare molte azioni e diversi utenti lanciando una sola simulazione ed analizzare i risultati nel dettaglio di ogni singola azione simulata. La selezione del servizio e delle azioni sono guidate con dei menu di selezione popup che compaiono quando selezionate i campi di inserimento.

Guida completa su AWS

Questo articolo appartiene ad una serie di pubblicazioni che costituiscono una guida completa dedicata agli Amazon Web Services.  Molti servizi che trattiamo in questo blog vengono anche spiegati con dei video che trovate nel nostro canale youtube. Se volete seguire questo percorso didattico iscrivetevi alla community Cloud AWS.

condividi