Il IAM in AWS può essere difficile da usare e capire, soprattutto per i nuovi utenti. Ma non preoccuparti! Se stai avendo difficoltà a capire come funziona IAM nella gestione delle autorizzazioni degli utenti in AWS, sei nel posto giusto per capire cosa è possibile con IAM.
In questo tutorial, imparerai i concetti di base di IAM attraverso una serie di esempi che si sviluppano progressivamente.
Sei pronto? Respira profondamente e immergiti!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se desideri seguirla, assicurati di avere un PC e un account AWS. Se non hai un account AWS, è disponibile un account gratuito.
Creazione di utenti IAM in AWS
Prima di capire come funziona IAM, inizierai questo tutorial creando degli utenti. Gli utenti possono essere utilizzati per molte cose, ma in questo tutorial creerai degli utenti privi di autorizzazioni, non appartenenti a gruppi e senza accesso a nulla.
1. Accedi alla Console AWS. Questa demo utilizza un nome utente chiamato cloud_user, ma il tuo nome utente sarà diverso.

2. Nella console AWS, digita IAM nella casella di ricerca, quindi fai clic sul servizio IAM che appare, come mostrato di seguito. Il tuo browser verrà reindirizzato alla dashboard IAM.

IAM è un servizio globale, il che significa che gli utenti e le loro autorizzazioni vengono applicati all’intero account/area AWS. Se più persone condividono un account AWS (cosa molto comune, ad esempio nel caso di un team di sviluppo aziendale), è necessario garantire una corretta rotazione della forza lavoro IAM.
Inoltre, è possibile creare un’istanza EC all’interno della regione us-east. Le istanze sono regionali. Tuttavia, i controlli di AWS Identity and Access Management non sono regionali. Le autorizzazioni assegnate a un utente si applicano indipendentemente dalla regione a cui gli utenti si connettono all’istanza EC.

4. Nella dashboard IAM, fai clic su Utenti nel riquadro di sinistra, quindi fai clic su Aggiungi utenti in alto a destra della pagina per iniziare ad aggiungere gli utenti.

Ora configura i dettagli dell’utente come segue:
- Fornisci un nome utente nel campo Nome utente mostrato di seguito. Per questo esempio, il nome utente è impostato su user-1.
- Abilita l’opzione Password: accesso alla console di gestione AWS per consentire agli utenti di accedere alla console di gestione di AWS.
- Seleziona l’opzione Password personalizzata per la Password della console, e fornisci una password sicura nel campo di testo.
- Deseleziona l’opzione Richiedi reimpostazione password in modo che all’utente non venga richiesto di creare una nuova password al successivo accesso, quindi fai clic su Avanti: Autorizzazioni.

5. Salta l’impostazione dei permessi e fai clic su Avanti: Tag poiché stai creando un utente che non ha autorizzazioni.

6. Salta anche l’aggiunta di tag e fai clic su Avanti: Riepilogo.

7. Verifica i dettagli dell’utente e fai clic su Crea utente per finalizzare la creazione dell’utente.

Dopo aver creato l’utente, otterrai una schermata di Successo simile a quella riportata di seguito.

8. Torna ora alla pagina Utenti nel tuo pannello IAM e fai clic sul nuovo utente creato (utente-1) per visualizzare le informazioni dell’utente. Apertura del tuo utente-1

Di seguito, nella scheda Permessi e Gruppi, puoi vedere che utente-1 non ha alcun permesso associato e non è membro di alcun gruppo.


Nella scheda Credenziali di sicurezza, vedrai diverse chiavi di accesso che utente-1 potrebbe avere. Puoi caricare una chiave pubblica SSH in questa scheda, che è ottima per le tue istanze AWS EC2.

La scheda Access Advisor mostra i servizi a cui utente-1 ha accesso, direttamente o tramite altri servizi, insieme all’ultima volta in cui utente-1 ha acceduto a quel servizio.

9. Infine, ripeti il processo (passaggi da tre a sette) per creare altri due utenti (utente-2 e utente-3). Torna alla pagina Utenti del tuo pannello IAM e vedrai un elenco simile a quello riportato di seguito.

Creazione dei gruppi utente
Ora che hai creato gli utenti, è tempo di creare i gruppi. Creerai gruppi utilizzando la policy gestita da AWS e un file JSON.
Per questo tutorial, creerai tre gruppi:
- EC2-Admin: Fornisce le autorizzazioni per visualizzare, avviare e arrestare le istanze EC2
- EC2-Support: Fornisce accesso in sola lettura a EC2
- S3-Support: Fornisce accesso in sola lettura a S3
Per iniziare a creare gruppi utenti:
1. Nel tuo dashboard IAM, fai clic su Gruppi utenti nel riquadro di sinistra, quindi fai clic su Crea gruppo.
2. Fornisci un Nome del gruppo utenti (EC2-Admin) nella pagina Crea gruppo utenti, come mostrato di seguito.

Mantieni le autorizzazioni predefinite e fai clic su Crea gruppo per finalizzare la creazione del gruppo EC2-Admin.

Dopo aver creato il nuovo gruppo, otterrai il messaggio Gruppo utenti EC2-Admin creato nella parte superiore della pagina, come mostrato di seguito. Il tuo browser viene quindi reindirizzato automaticamente alla pagina Gruppi utenti (passaggio tre).

3. Fai clic sul gruppo EC2-Admin nella colonna Nome del gruppo per visualizzare le informazioni di riepilogo del gruppo in cui è possibile aggiungere le policy inline (passaggio quattro).

4. Ora fai clic sulla scheda Autorizzazioni —> Aggiungi autorizzazioni —> Crea policy inline per creare una policy inline. Le policy inline sono generalmente associate direttamente agli utenti e vengono utilizzate tipicamente per richiedere autorizzazioni in situazioni occasionali.
Ad esempio, il tuo team sta migrando un vecchio ambiente EC2 in uno nuovo. Desideri assicurarti che l’amministratore della vecchia istanza EC2 abbia accesso per avviare/arrestare e copiare le impostazioni del gruppo di sicurezza sulla nuova istanza EC2.

5. Nella pagina Crea policy, clicca sulla scheda JSON mostrata di seguito per aprire un editor JSON in cui creerai una policy.

6. Incolla il codice (policy) di seguito nel campo dell’editor e clicca su Revisione policy per creare una policy inline. Questa policy inline è predefinita da AWS o da un amministratore all’interno del tuo account AWS che puoi utilizzare, personalizzare o modificare per adattarla alle tue esigenze esatte.
Con questa policy, i membri del gruppo EC2-Admin sono autorizzati ad avviare ("ec2:StartInstances"
), arrestare ("ec2:StopInstances"
) e visualizzare ("ec2:Describe*"
) le istanze EC2. Sono autorizzati (”Effect”: “Allow”
) ad eseguire azioni su tutte le risorse ("Resource": "*"
). Queste azioni sono collegate agli eventuali chiamate programmatiche o API di AWS.
I membri del gruppo EC2-Admin hanno anche il permesso di visualizzare tutti i bilanci di carico elastici (Action": "elasticloadbalancing:Describe
), elencare le metriche (cloudwatch:ListMetrics
), ottenere statistiche sulle metriche cloudwatch:GetMetricStatistics
e descrivere le metriche (cloudwatch:Describe
).
Le metriche di CloudWatch sono configurate automaticamente con la tua istanza EC, e lo stesso vale per il servizio di Auto Scaling.

7. Rivedi il riepilogo della policy e clicca su Salva modifiche per salvare la policy.

8. Ora, torna alla tua dashboard IAM e inizia a creare un gruppo come hai fatto nel passaggio due. Ma questa volta, chiamalo Nome del gruppo Utente come EC2-Support.
Scorri verso il basso, cerca AmazonEC2ReadOnlyAccess nella casella di ricerca Attach permissions policies per allegare tale policy al gruppo (EC2-Support):
AmazonEC2ReadOnlyAccess è una policy gestita simile a una policy inline in quanto può essere allegata a più utenti o gruppi di utenti. Ma a differenza delle policy inline, questo tipo di policy creata dagli amministratori è riutilizzabile e può essere condivisa in tutta l’organizzazione o con tutti gli account AWS nel tuo account.
A managed policy is a shared policy. As a result, all users or groups of users who use the shared policy will have updated permissions automatically when the policy is updated.
Questa funzionalità di aggiornamento automatico rende le policy gestite più interessanti delle policy inline. Con le policy inline, ogni autorizzazione deve essere aggiornata dall’amministratore se la policy viene modificata.
Seleziona l’opzione AmazonEC2ReadOnlyAccess e fai clic su Crea gruppo per finalizzare la creazione del gruppo.

10. Ora, ripeti i passaggi otto e nove per creare il gruppo S3-Support con una policy gestita AmazonS3ReadOnlyAccess. Una volta creato il gruppo S3-Support, avrai un elenco di gruppi simile a quello riportato di seguito che mostra le autorizzazioni definite per ciascun gruppo.

Aggiunta degli utenti ai loro gruppi appropriati
Hai creato gli utenti e i gruppi con le autorizzazioni definite. Ora è il momento di aggiungere gli utenti ai loro gruppi appropriati. Aprirai la pagina di riepilogo di ciascun gruppo e aggiungerai manualmente un utente a quel gruppo.
La tabella qui sotto mostra i gruppi appropriati in cui aggiungerai ciascun utente:
Users | In-group | Permissions |
---|---|---|
user-1 | S3-Support | Read-only access to S3 Bucket |
user-2 | EC2-Support | Read-only access to EC2 Instance |
user-3 | EC2-Admin | Full EC2 Access (View/Start/Stop) |
1. Nel tuo dashboard IAM, vai alla pagina dei Gruppi utente e clicca sul gruppo S3-Support mostrato di seguito per accedere alla pagina di riepilogo del gruppo.

2. Successivamente, clicca sulla scheda Utenti -> Aggiungi utenti per iniziare ad aggiungere utenti al gruppo. Il tuo browser ti reindirizzerà a una pagina dove vedrai un elenco di utenti che non appartengono ancora a nessun gruppo (passaggio tre).

3. Seleziona la casella di fronte a utente-1, quindi clicca su Aggiungi utenti per aggiungere l’utente al gruppo S3-Support. Il tuo browser verrà automaticamente reindirizzato alla pagina di riepilogo del gruppo S3-Support.

Di seguito, puoi vedere che utente-1 ora fa parte del gruppo S3-Support.

4. Ripeti i passaggi da uno a tre per aggiungere utente-2 e utente-3 ai loro gruppi corretti.
5. Infine, vai alla pagina dei Gruppi utente e vedrai che i gruppi ora hanno un utente ciascuno, come nella schermata di esempio qui sotto.

Verifica che i permessi utente funzionino correttamente
Hai creato completamente gli utenti nei rispettivi gruppi con i permessi definiti. Ma come puoi sapere se funzionano correttamente? È ora di verificare che i permessi funzionino come previsto e ci sono vari modi per farlo. Uno dei modi più comuni è utilizzare la Console di gestione AWS basata sul web.
1. Vai al tuo dashboard IAM e copia l’URL di accesso dell’utente IAM nel pannello destro, come mostrato di seguito.

2. Sul tuo browser web, vai all’URL di accesso che hai annotato in precedenza (passaggio uno) e accedi con le credenziali di utente-1. Google Chrome e Firefox sono i browser più consigliati per questo compito.

3. Digita S3 nella casella di ricerca e clicca sul link S3 mostrato di seguito per accedere alla pagina dei Buckets di Amazon S3.

4. Ora, clicca su Crea bucket per inizializzare la creazione di un bucket S3.

5. Inserisci un nome per il bucket nella sezione Configurazione generale, quindi clicca su Crea bucket per tentare di creare un bucket S3.


Se ricordi, hai assegnato la politica AmazonS3ReadOnlyAccess all’utente-1, che gli conferisce solo il permesso di lettura per visualizzare i bucket S3. Di conseguenza, se l’utente-1 cerca di creare, eliminare o aggiornare un bucket S3, comparirà il messaggio di errore mostrato di seguito.
Il messaggio di errore qui sotto indica che il permesso che hai impostato per l’utente-1 funziona correttamente.

Nota che l’utente-1 non ha nemmeno alcun permesso EC2. Pertanto, per fare un doppio controllo, vai alla tua dashboard EC2 e vedrai molti errori API che compariranno come nello screenshot qui sotto.
Si ottengono questi errori a causa del principio del privilegio minimo (PoLP). PoLP è il concetto secondo il quale un account utente o un processo di un sistema operativo dovrebbe avere il minimo assoluto di privilegi necessari per completare un lavoro.

6. Ora, disconnettiti dall’utente-1 e accedi come utente-2, e vai alla dashboard EC2.

7. Fai clic su una qualsiasi delle istanze EC2 in esecuzione per visualizzare i permessi dell’utente-2. Come mostrato di seguito, otterrai informazioni sull’istanza come ID istanza, Indirizzo IPv4 pubblico, e così via.

8. Fai clic sullo stato dell’istanza nella parte più a destra della pagina e scegli l’opzione Arresta istanza, Riavvia istanza o Termina istanza per verificare se la permissione dell’utente-2 funziona.

Ricorda che l’utente-2 ha solo accesso in sola lettura alle istanze EC2 (AmazonEC2ReadOnlyAccess). Quindi, se un utente cerca di manipolare un’istanza EC2, compare il messaggio di errore sottostante.
Ottenere l’errore sottostante indica che la permissione dell’utente-2 funziona correttamente.

9. Infine, disconnettiti dall’utente-2, quindi accedi come utente-3 e prova a manipolare qualsiasi istanza EC2 in esecuzione nel tuo account. Poiché l’utente-3 ha l’autorizzazione completa per EC2, puoi avviare, fermare o terminare un’istanza senza ottenere un messaggio di errore.
Conclusione
In tutto questo tutorial, hai imparato come creare utenti IAM e gruppi utente con politiche definite. Hai anche toccato l’argomento di come verificare se le autorizzazioni funzionano come previsto provando a modificare lo stato di un’istanza EC2 e a creare un bucket S3.
A questo punto, hai ora la tua configurazione di base per gli utenti e i gruppi IAM per gestire le autorizzazioni degli utenti. Naturalmente, puoi sempre aggiungere più utenti al tuo account e applicare più politiche come ritieni opportuno.
Ora, qual è il prossimo passo per sviluppare ulteriormente le tue nuove conoscenze? Forse esplorare come configurare i tuoi servizi EC2 su Auto-Scaling per lavorare con IAM.