Pubblicato il 09/07/2023 da alnao nella categoria AWS

AWSIdentity and Access Management (spesso abbreviato con IAM) è uno dei servizi più importanti di tutto il Cloud AWS e deve essere sempre a portata di mano nell’uso e nella gestione di un servizio cloud complesso come quello di AWS. La regola principale del cloud è che, di default, tutto è bloccato e non è possibile accedere da una risorsa ad un altro, rispecchiando il paradigma dei “privilegi minimi”, cioè assegnare autorizzazioni specifiche a ciascun utente o gruppo, assicurando che abbiano accesso solo alle risorse di cui hanno veramente bisogno. Questo per ridurre al minimo il rischio di accesso non autorizzato o uso improprio accidentale di dati sensibili.

Il servizio IAM consente di creare e gestire più utenti all’interno del tuo account AWS, funzionalità indispensabile per le organizzazioni con un numero elevato di persone che devono accedere allo stesso Cloud, con questo servizio si può gestire l’autenticazione e le autorizzazioni specifiche per ogni utente per ogni servizio, tutto da una dashboard centralizzata. Un altro vantaggio significativo di IAM è la sua capacità di fornire registri di controllo dettagliati e capacità di monitoraggio. Puoi monitorare l’attività degli utenti, visualizzare le chiamate API e persino impostare avvisi per comportamenti sospetti.

IAM supporta anche l’autenticazione a più fattori (MFA), un ulteriore livello di sicurezza che rafforza i controlli di accesso, è possibile richiedere agli utenti di fornire una seconda forma di autenticazione, come un codice univoco generato da un’app mobile, riducendo in modo significativo il rischio di accesso non autorizzato. E’ consigliato, quasi obbligatorio, attivare l’autenticazione MFA all’utente root. L’attivazione si esegue manualmente dalla console web di AWS, cliccando sulla voce di menù “Security credentials” e poi assegnando un dispositivo con una applicazione compatibile. Si consiglia la lettura della mini-guida completa su come attivare la strong-autentication che è disponibile nel sito ufficiale.

Tramite IAM è possibile creare account e gruppo di account, è fortemente sconsigliato usare l’utenza principale root nella normale operatività di tutti i giorni ma è vivamente consigliato la creazione e l’uso di utenze personali senza i “poteri” di super-administrator. Un’altra funzionalità molto importante di IAM è la possibilità di definire le regole di accesso (dette policies), questo strumento serve ai gestori del Cloud per definire le regole di “comunicazione” tra due o più risorse in quanto, per default, tutto è bloccato.

Le regole (dette policies) vengono rappresentate in formato Json e devono essere della struttura:

{
"Version": "2012-10-17",
"Statement": [{
"Sid": "Sid1",
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances"
],
"Resource": "arn:aws:ec2:*:*:instance/i-123456789"
},{
"Sid": "Sid2",
"Effect": "Allow",
"Action": [
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricStatistics",
"cloudwatch:Describe*"
],
"Resource": "*"
}]
}

In questo semplice esempio sono state definite due politiche “permissive” a due diversi servizi (ec2 e cloudwatch) con le corrispettive azioni per servizio, da prestare particolare attenzione che le regole possono essere limitate a specifiche risorse, come nel caso del servizio EC2 dove è indicata la istanza rappresentata con il rispettivo codice ARN, oppure è possibile indicare asterisco per non limitare la regola ad una singola risorsa, questa tecnica viene spesso usata ma è fortemente sconsigliata.

Da ricordare sempre che una regola/policy può essere agganciata ad un singolo utente, un gruppo e/o ad una risorsa, per esempio la regola di esempio può può essere assegnata ad un utente per permettergli di gestire una istanza EC2 ma può essere assegnata anche ad una funzione lambda per assegnare gli stessi poteri.

Grazie al servizio IAM e alla somma di tutte le sue funzionalità è possibile costruire una infrastruttura sicura, nei prossimi articoli sarà indicato ogni volta sarà necessario creare regole/policies specifiche, si può fare riferimento alla documentazione ufficiale per maggiori approfondimenti e dettagli. Usare questo servizio è fondamentale anche per il rispetto della “responsabilità condivisa” compreso nelle indicazioni del contratto tra il customer e AWS al momento dell’apertura di un account, secondo questo modello

  • è responsabilità di AWS la “sicurezza del cloud”: AWS è responsabile della protezione dell’infrastruttura in cui vengono eseguiti tutti i servizi offerti nel cloud AWS. Questa infrastruttura è composta da hardware, software, reti e strutture che eseguono i servizi Cloud AWS.
  • è responsabilità del cliente (customer) la “sicurezza nel Cloud”: la responsabilità del cliente è determinata dai servizi Cloud AWS selezionati dal cliente. Ciò determina la quantità di lavoro di configurazione che il cliente deve eseguire nell’ambito delle proprie responsabilità di sicurezza.

Per maggiori informazioni si rimanda alla documentazione ufficiale “AWS Well-Architected” e si rimanda alla documentazione ufficiale del servizio IAM.

MENU