Guida utile a IAM in AWS attraverso esempi

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.

Logging in to the AWS console

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.

Searching for IAM service

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.

Previewing the global option

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.

Adding a new user

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.
Setting the username and password

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

Skipping setting permissions

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

Skipping settings tags

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

Creating a new user

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

Previewing the Success screen

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

Opening your user-1

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

Previewing the new user’s (user-1) permissions
Previewing the new user’s (user-1) group

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.

Previewing the user-1 security credentials

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.

Previewing the user-1 Access Advisor

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.

Previewing lists of users (user-1, user-2, and user-3)

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.

Provide a User group name (EC2-Admin)

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

Creating a new group

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).

Showing successful group creation notification

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).

Previewing the EC2-Admin group

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.

Creating a policy for EC-Admin group.

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

Accessing the policy editor

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.

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Action": [
				"ec2:Describe*",
				"ec2:StartInstances",
				"ec2:StopInstances"
			],
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": "elasticloadbalancing:Describe",
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": [
				"cloudwatch:ListMetrics",
				"cloudwatch:GetMetricStatistics",
				"cloudwatch:Describe"
			],
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": "autoscaling:Describe",
			"Resource": "*",
			"Effect": "Allow"
		}
	]
}
Editing your JSON file for policy

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

Saving your 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.

Setting up the AmazonEC2ReadOnlyAccess policy

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.

Previewing the groups

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.

Accessing the S3-Support group.

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).

Accessing the list of users to add to the S3-Support group.

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.

Adding a user (user-1) to the S3-Support group

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

user-1 is now a part of the S3-Support group

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.

Verifying the groups now have one user each

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.

Noting the IAM user sign-in URL

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.

Signing in as user-1

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

Accessing the S3 bucket

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

Creating an S3 bucket

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

Adding an S3 Bucket Name
Attempting to create an S3 Bucket

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.

Testing if user-1 permission is working

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.

Viewing the EC2 dashboard

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

Previewing the EC2 dashboard

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.

Previewing running EC2 instance

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.

Stopping/starting/ terminating an EC2 instance

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.

Previewing the error message.

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.

Source:
https://adamtheautomator.com/iam-aws/