Introduzione al funzionamento di IAM - AWS Identity and Access Management

Introduzione al funzionamento di IAM

Prima di creare utenti, è necessario comprendere come funziona IAM. IAM offre l'infrastruttura necessaria per gestire l'autenticazione e l'autorizzazione per il tuo account. Tale infrastruttura IAM include i seguenti elementi:


      IntroToIAM_Diagram

Termini

Ulteriori informazioni sui termini di IAM.

Risorse di IAM

Gli oggetti utente, gruppo, ruolo, policy e provider di identità che sono archiviati in IAM. Come in altri servizi AWS, è possibile aggiungere, modificare e rimuovere risorse da IAM.

Identità IAM

Gli oggetti risorsa IAM utilizzati per identificare e raggruppare. Puoi collegare una policy a un'identità IAM. Questi includono utenti, gruppi e ruoli.

Entità IAM

Gli oggetti delle risorse IAM che AWS utilizza per l'autenticazione. Questi includono utenti e ruoli IAM.

Principali

Una persona o un'applicazione che usa l'utente root dell'Account AWS, un utente IAM o un ruolo IAM per accedere ed effettuare richieste ad AWS. Questi includono utenti federati e ruoli assunti.

Principale

Un principale è una persona o un'applicazione che può effettuare una richiesta per un'operazione su una risorsa AWS. Il principale viene autenticato come utente root dell'Account AWS o come entità IAM per effettuare richieste ad AWS. Come best practice, non utilizzare le credenziali utente root per il lavoro di tutti i giorni. È invece consigliabile creare entità IAM (utenti e ruoli). Puoi anche supportare gli utenti federati o l'accesso a livello di codice per consentire a un'applicazione di accedere all'account AWS.

Richiesta

Quando un'entità principale cerca di utilizzare la AWS Management Console, l'API AWS o l'AWS CLI, invia una richiesta ad AWS. La richiesta include le informazioni seguenti:

  • Azioni o operazioni: le operazioni che l'entità principale vuole eseguire. Può trattarsi di un'azione nella AWS Management Console o un'operazione nell'AWS CLI o nell'API AWS.

  • Risorse: l'oggetto risorsa AWS su cui vengono eseguite le azioni o le operazioni.

  • Principale – Persona o applicazione che utilizza un'entità (utente o ruolo) per inviare la richiesta. Le informazioni sul principale includono le policy associate all'entità che il principale ha utilizzato per accedere.

  • Dati di ambiente: informazioni sull'indirizzo IP, l'agente utente, lo stato SSL abilitato o l'ora del giorno.

  • Dati sulla risorsa – I dati correlati alla risorsa che viene richiesta. Possono essere incluse informazioni quali un nome di tabella di DynamoDB o un tag su un'istanza Amazon EC2.

AWS raccoglie le informazioni in un contesto della richiesta, che viene utilizzato per valutare e autorizzare la richiesta.

Autenticazione

Un principale deve essere autenticato (avere effettuato l'accesso ad AWS) utilizzando le credenziali per inviare una richiesta ad AWS. Alcuni servizi, ad esempio Amazon S3 e AWS STS, consentono alcune richieste da parte di utenti anonimi. Tuttavia, si tratta di eccezioni alla regola.

Per eseguire l'autenticazione dalla console come utente root, devi effettuare l'accesso con indirizzo e-mail e password. In qualità di utente IAM, fornisci il tuo ID account o alias e quindi il nome utente e la password. Per eseguire l'autenticazione tramite l'API o l'AWS CLI, devi fornire la chiave di accesso e la chiave segreta. Potrebbe inoltre essere necessario fornire ulteriori informazioni di sicurezza. AWS consiglia ad esempio di utilizzare la multi-factor authentication (MFA) per aumentare la sicurezza dell'account. Per ulteriori informazioni sulle entità IAM che AWS può autenticare, consulta Utenti IAM e Ruoli IAM.

Autorizzazione

È inoltre necessario essere autorizzati (consentiti) per completare la richiesta. Durante l'autorizzazione, AWS usa i valori del contesto della richiesta per cercare policy applicabili alla richiesta. Quindi, utilizza le policy per determinare se accettare o rifiutare la richiesta. La maggior parte delle policy viene memorizzata in AWS sotto forma di documenti JSON e specifica le autorizzazioni per le entità principali. Vi sono diversi tipi di policy che possono influire sull'autorizzazione di una richiesta. Per fornire ai tuoi utenti l'autorizzazione ad accedere alle risorse AWS nel proprio account, devi usare unicamente policy basate su identità. Le policy basate su risorse sono molto utilizzate per concedere l'accesso a più account. Gli altri tipi di policy sono caratteristiche avanzate e vanno usate con cautela.

AWS controlla ogni policy applicabile al contesto della richiesta. Se una singola policy di autorizzazione include un'operazione negata, AWS nega l'intera richiesta e interrompe la valutazione. Questa azione si chiama rifiuto esplicito. Poiché le richieste vengono rifiutate per impostazione predefinita, AWS autorizza la richiesta solo se ogni parte di essa è consentita dalle policy di autorizzazione applicabili. La logica di valutazione per una richiesta all'interno di un singolo account segue queste regole generali:

  • Come impostazione predefinita, tutte le richieste vengono negate. (In generale, le richieste effettuate utilizzando le credenziali dell'utente root Account AWS per risorse nell'account sono sempre consentite).

  • Un'autorizzazione esplicita in una policy di autorizzazione qualsiasi (basata su identità o basata su risorse) sostituisce questa impostazione predefinita.

  • L'esistenza di un SCP Organizations, un limite delle autorizzazioni IAM o una policy di sessione sostituisce l'autorizzazione. Se esiste uno o più di questi tipi di policy, devono tutti consentire la richiesta. In caso contrario, viene rifiutata implicitamente.

  • Un rifiuto esplicito in una policy sostituisce qualsiasi permesso.

Per ulteriori informazioni su come vengono valutati tutti i tipi di policy, consulta Logica di valutazione delle policy. Se devi effettuare una richiesta in un altro account, una policy nell'altro account deve consentirti di accedere alla risorsa e l'entità IAM che utilizzi per effettuare la richiesta deve avere una policy basata su identità che consenta la richiesta.

Azioni o operazioni

Dopo che la richiesta è stata autenticata e autorizzata, AWS approva le azioni o operazioni specificate nella richiesta. Le operazioni vengono definite da un servizio e includono le azioni che puoi effettuare su una risorsa, come la visualizzazione, la creazione, la modifica e l'eliminazione di tale risorsa. Ad esempio, IAM supporta circa 40 operazioni per una risorsa utente, incluse le seguenti:

  • CreateUser

  • DeleteUser

  • GetUser

  • UpdateUser

Per consentire a un'entità principale di eseguire un'operazione, devi includere le azioni necessarie in una policy da applicare all'entità principale o alla risorsa interessata. Per visualizzare un elenco di azioni, tipi di risorse e chiavi di condizione supportate da ciascun servizio, consulta Operazioni, risorse e chiavi di condizione per i servizi AWS.

Risorse

Dopo che AWS ha approvato le operazioni nella richiesta, queste possono essere eseguite sulle risorse correlate all'interno dell'account. Una risorsa è un oggetto esistente all'interno di un servizio. Esempi sono un'istanza Amazon EC2, un utente IAM e un bucket Amazon S3. Il servizio definisce un insieme di azioni che possono essere eseguite su ogni risorsa. Se crei una richiesta per eseguire un'azione non correlata su una risorsa, la richiesta viene negata. Ad esempio, se richiedi di eliminare un ruolo IAM ma fornisci una risorsa di gruppo IAM, la richiesta ha esito negativo. Per visualizzare le tabelle dei servizi AWS che identificano le risorse interessate da un'azione, consulta Operazioni, risorse e chiavi di condizione per i servizi AWS.