Funzionamento di IAM - AWS Identity and Access Management

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzionamento di IAM

IAM offre l'infrastruttura necessaria per gestire l'autenticazione e l'autorizzazione per il tuo Account AWS. Il diagramma seguente illustra tale infrastruttura IAM:

IntroToIAM_Diagram

Innanzitutto, per autenticarsi con AWS, un utente umano o un'applicazione utilizza le proprie credenziali di accesso. L'autenticazione viene fornita associando le credenziali di accesso a un soggetto principale (un utente IAM, un utente federato, un ruolo IAM o un'applicazione) considerato affidabile da Account AWS.

Successivamente, viene fatta una richiesta per concedere al principale accesso alle risorse. L'accesso è concesso in risposta a una richiesta di autorizzazione. Ad esempio, quando accedi per la prima volta alla console e ti trovi nella home page, non stai accedendo a un servizio specifico. Quando selezioni un servizio, la richiesta di autorizzazione viene inviata a quel servizio e verifica se la tua identità è nell'elenco degli utenti autorizzati, quali policy vengono applicate per controllare il livello di accesso concesso e qualsiasi altra policy che potrebbe essere in vigore. Le richieste di autorizzazione possono essere effettuate dai principali all'interno dell'Account AWS o da un altro Account AWS di fiducia.

Una volta autorizzato, il principale può intervenire o eseguire operazioni sulle risorse del tuo Account AWS. Ad esempio, il principale potrebbe avviare una nuova istanza Amazon Elastic Compute Cloud, modificare l'appartenenza al gruppo IAM o eliminare i bucket Amazon Simple Storage Service.

Termini

Questi termini IAM sono comunemente usati quando si lavora con AWS:

Risorse IAM

Le risorse IAM sono archiviate in IAM. Puoi aggiungerle, modificarle e rimuoverle da IAM.

  • user

  • gruppo

  • ruolo

  • policy

  • oggetto identity-provider

Entità IAM

Risorse IAM che AWS utilizza per l'autenticazione. Le entità possono essere specificate come Principale in un criterio basato sulle risorse.

  • user

  • ruolo

Identità IAM

Una risorsa IAM che può essere autorizzata nelle policy per eseguire azioni e accedere alle risorse. Le identità includono utenti, gruppi e ruoli.

Risorse, identità ed entità
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.

Utenti

Noti anche come identità umane, gli utenti sono le persone, gli amministratori, gli sviluppatori, gli operatori e i consumer delle tue applicazioni.

Carico di lavoro

Una raccolta di risorse e codice che fornisce valore aziendale, ad esempio un'applicazione o un processo back-end. Può includere applicazioni, strumenti operativi e componenti.

Principale

Un principale è un utente o un carico di lavoro che può richiedere un'azione o un'operazione su una risorsa AWS. Dopo l'autenticazione, al principale possono essere concesse credenziali permanenti o temporanee per effettuare richieste a AWS, a seconda del tipo di principale. Agli utenti IAM e all'utente root vengono concesse credenziali permanenti, mentre ai ruoli vengono concesse credenziali temporanee. Come best practice si consiglia di richiedere agli utenti e ai carichi di lavoro di accedere alle risorse AWS utilizzando credenziali temporanee.

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 federato, sei autenticato dal tuo gestore di identità e ti viene concesso l'accesso alle risorse AWS assumendo ruoli IAM. In qualità di utente IAM, fornisci il tuo ID account o alias e quindi il nome utente e la password. Per autenticare i carichi di lavoro dall'API oppure dalla AWS CLI, potresti utilizzare credenziali temporanee assegnandoti un ruolo oppure potresti utilizzare credenziali a lungo termine fornendo la tua chiave di accesso e la chiave segreta. Potrebbe inoltre essere necessario fornire ulteriori informazioni di sicurezza. Come best practice, AWS consiglia di utilizzare l'autenticazione a più fattori (MFA) e le credenziali temporanee 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 Utente root dell'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.