Tutorial IAM: Delega dell'accesso tra account AWS tramite i ruoli 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à.

Tutorial IAM: Delega dell'accesso tra account AWS tramite i ruoli IAM

In questo tutorial viene descritto come utilizzare un ruolo per delegare l'accesso a risorse che si trovano in diversi Account AWS di tua proprietà denominati Produzione e Sviluppo. Puoi condividere le risorse di un account con gli utenti di un altro account. Configurando in questo modo l'accesso fra account, non dovrai creare singoli utenti IAM per ogni account. Inoltre, gli utenti non devono uscire da un account e accedere a un altro per utilizzare risorse in Account AWS diversi. Dopo aver configurato il ruolo, vedrai come utilizzarlo tramite AWS Management Console AWS CLI, e l'API.

Nota

I ruoli IAM e le policy basate sulle risorse delegano l'accesso tra account solo all'interno di una singola partizione. Ad esempio, si supponga di disporre di un account nella regione Stati Uniti occidentali (California settentrionale) nella partizione aws standard. Hai anche un account nella regione Cina (Pechino) nella partizione aws-cn. Non è possibile utilizzare una policy basata sulle risorse Amazon S3 nel tuo account nella regione Cina (Pechino) per consentire l'accesso agli utenti del tuo account aws standard.

In questa esercitazione, l'account Produzione gestisce le applicazioni live. Sviluppatori e tester utilizzano l'account Sviluppo come sanbox per testare liberamente le applicazioni. In ciascun account puoi archiviare le informazioni sull'applicazione in bucket Amazon S3. Gli utenti IAM vengono gestiti nell'account Sviluppo in cui sono presenti due gruppi di utenti IAM: Developer e Tester. Gli utenti di entrambi i gruppi di utenti dispongono di autorizzazioni per lavorare nell'account Sviluppo e accedere alle sue risorse. Occasionalmente, uno sviluppatore deve aggiornare le applicazioni attive nell'account Produzione. Gli sviluppatori archiviano queste applicazioni in un bucket Amazon S3 denominato productionapp.

Alla fine di questo tutorial, si dispone di quanto segue:

  • Utenti nell'account Sviluppo (account che concede fiducia) che possono assumere un ruolo specifico nell'account Produzione.

  • Un ruolo nell'account Produzione (account attendibile) che può accedere a uno specifico bucket Amazon S3.

  • Il bucket productionapp creato nell'account Produzione.

Gli sviluppatori possono utilizzare il ruolo in AWS Management Console per accedere al productionapp bucket nell'account Production. Inoltre, possono accedere al bucket utilizzando chiamate API autenticate tramite credenziali provvisorie fornite dal ruolo. La stessa operazione eseguita da un tester avrà esito negativo.

Questo flusso di lavoro ha tre fasi di base:

Creazione di un ruolo nell'account Produzione

Innanzitutto, si utilizza il AWS Management Console per stabilire un rapporto di fiducia tra l'account di produzione (numero ID assistere a 9999) e l'account di sviluppo (numero ID 1111). Si inizia creando un ruolo IAM denominato. UpdateApp Quando crei il ruolo, devi definire l'account Sviluppo come entità attendibile e specificare una policy di autorizzazioni che consenta agli utenti attendibili di aggiornare il bucket productionapp.

Concedi autorizzazione per l'accesso al ruolo

In questa sezione, puoi modificare la policy del gruppo di utenti IAM per negare l'accesso al ruolo UpdateApp ai Tester. Perché i tester hanno PowerUser accesso in questo scenario e devi negare esplicitamente la possibilità di utilizzare il ruolo.

Accesso al test tramite cambio di ruoli

Infine, in qualità di Sviluppatore utilizzerai il ruolo UpdateApp per aggiornare il bucket productionapp nell'account Produzione. Scopri come accedere al ruolo tramite la AWS console, l'e l' AWS CLI API.

Prerequisiti

Questo tutorial presuppone che tu abbia a disposizione quanto segue:

  • È possibile utilizzarne due Account AWS distinti, uno per rappresentare l'account Development e uno per rappresentare l'account Production.

  • Utenti e gruppi di utenti nell'account Sviluppo, creati e configurati in questo modo:

    Utente Gruppo di utenti Autorizzazioni
    David Sviluppatori Entrambi gli utenti possono accedere e utilizzare l' AWS Management Console account Development.
    Jane Tester
  • Non è necessario creare utenti o gruppi di utenti nell'account Produzione.

  • Un bucket Amazon S3 creato nell'account Produzione. Nel tutorial puoi chiamarlo ProductionApp, ma dato che i nomi dei bucket S3 devono essere univoci a livello globale, dovrai selezionare un nome diverso.

Creazione di un ruolo nell'account Produzione

Puoi consentire agli utenti di uno Account AWS di accedere alle risorse di un altro Account AWS. A tale scopo, creare un ruolo che definisca chi può accedervi e quali autorizzazioni concedere agli utenti che lo assumono.

In questo passaggio del tutorial, dovrai creare il ruolo nell'account Produzione e impostare l'account Sviluppo come entità attendibile. Inoltre, dovrai limitare le autorizzazioni del ruolo al solo accesso di lettura e scrittura per il bucket productionapp. Chiunque abbia ricevuto l'autorizzazione a usare il ruolo potrà leggere e scrivere nel bucket productionapp.

Prima di poter creare un ruolo, è necessario l'ID dell'account Development Account AWS. A ognuno Account AWS è assegnato un identificatore ID account univoco.

Per ottenere l'ID di sviluppo Account AWS
  1. Accedi AWS Management Console come amministratore dell'account Development e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nella barra di navigazione, selezionare Support (Supporto) e Support Center (Centro supporto). Il numero di account a 12 cifre (ID) correntemente collegato viene visualizzato nel pannello di navigazione Centro assistenza. Per questo scenario, puoi utilizzare l'ID account 111111111111 per l'account Sviluppo. Tuttavia, devi utilizzare un ID account valido se stai usando questo scenario nell'ambiente di test.

Creare un ruolo nell'account di produzione che possa essere utilizzato dall'account di sviluppo
  1. Accedi AWS Management Console come amministratore dell'account di produzione e apri la console IAM.

  2. Prima di creare il ruolo, prepara la policy gestita che definisce le autorizzazioni per i requisiti del ruolo. La policy verrà collegata al ruolo in una fase successiva.

    Impostare l'accesso in lettura e scrittura al bucket productionapp. Sebbene AWS fornisca alcune policy gestite di Amazon S3, non ce n'è una che fornisca l'accesso in lettura e scrittura a un singolo bucket Amazon S3. Se lo desideri, puoi creare una policy personalizzata.

    Nel pannello di navigazione, seleziona Policy e Crea policy.

  3. Seleziona la scheda JSON e copia il testo dal documento della seguente policy JSON. Incollare il testo nella casella di testo JSON, sostituendo l'ARN della risorsa (arn:aws:s3:::productionapp) con quello per reale per il bucket Amazon S3.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::productionapp" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::productionapp/*" } ] }

    L’azione ListAllMyBuckets concede l'autorizzazione per elencare tutti i bucket di proprietà del mittente autenticato della richiesta. L'autorizzazione ListBucket consente agli utenti di visualizzare gli oggetti del bucket productionapp. Le autorizzazioni GetObject, PutObject e DeleteObject consentono agli utenti di visualizzare, aggiornare ed eliminare i contenuti del bucket productionapp.

  4. Risolvi eventuali avvisi di sicurezza, errori o avvisi generali generati durante la convalida delle policy, quindi scegli Next (Successivo).

    Nota

    È possibile alternare le opzioni dell'editor Visivo e JSON in qualsiasi momento. Se tuttavia si apportano modifiche o si seleziona Successivo nell'editor Visivo, IAM potrebbe ristrutturare la policy in modo da ottimizzarla per l'editor visivo. Per ulteriori informazioni, consulta Modifica della struttura delle policy.

  5. Nella pagina Verifica policy, digita read-write-app-bucket come nome della policy. Esamina le autorizzazioni concesse dalla policy, quindi scegli Crea policy per salvare il lavoro.

    La nuova policy viene inserita nell'elenco delle policy gestite.

  6. Nel riquadro di navigazione, scegli Ruoli, quindi Crea ruolo.

  7. Scegli il tipo di ruolo Un Account AWS.

  8. In Account ID (ID account), digitare l'ID dell'account Sviluppo.

    Questo tutorial utilizza come esempio l'ID account 111111111111 per l'account di sviluppo. Tuttavia, è consigliabile utilizzare un ID account valido. Se utilizzi un ID account non valido, come ad esempio 111111111111, IAM non ti consentirà di creare il nuovo ruolo.

    Per il momento non è necessario richiedere un ID esterno, né chiedere agli utenti un'autenticazione a più fattori (MFA) per assumere il ruolo. Tali opzioni possono rimanere deselezionate. Per ulteriori informazioni, consulta Utilizzo dell'autenticazione a più fattori (MFA) in AWS.

  9. Selezionare Next:Permissions (Avanti:Autorizzazioni) per impostare le autorizzazioni associate al ruolo.

  10. Seleziona la casella accanto alla policy creata in precedenza.

    Suggerimento

    In Filter (Filtro) selezionare Customer managed (Gestite dal cliente) per visualizzare solo le policy create. Il filtro nasconde le policy create da AWS per semplificare la ricerca.

    Quindi, seleziona Next (Successivo).

  11. (Facoltativo) Aggiungi metadati al ruolo collegando i tag come coppie chiave-valore. Per ulteriori informazioni sull'utilizzo dei tag in IAM, consultare Tagging delle risorse IAM.

  12. (Facoltativo) In Description (Descrizione), inserisci una descrizione per il nuovo ruolo.

  13. Dopo avere rivisto il ruolo, fare clic su Create Role (Crea ruolo).

    Il ruolo UpdateApp viene visualizzato nell'elenco dei ruoli.

A questo punto, è necessario ottenere l'Amazon Resource Name (ARN), un identificatore univoco per il ruolo. Quando modifichi le policy dei gruppi Developer e Tester, specificare l'ARN del ruolo per concedere o negare le autorizzazioni.

Per ottenere l'ARN per UpdateApp
  1. Nel pannello di navigazione della console IAM seleziona Ruoli.

  2. Nell'elenco dei ruoli, selezionare il ruolo UpdateApp.

  3. Nella sezione Summary (Riepilogo) del riquadro dei dettagli, copiare il valore Role ARN (ARN ruolo).

    L'ID dell'account di produzione è 999999999999, pertanto l'ARN del ruolo sarà arn:aws:iam::999999999999:role/UpdateApp. Assicurati di fornire l' Account AWS ID reale dell'account di produzione.

A questo punto, è stato stabilita una relazione di trust tra gli account di Produzione e Sviluppo. È stato possibile creare un ruolo nell'account Produzione che identifica l'account Sviluppo come entità attendibile. Inoltre, hai definito le operazioni consentite agli utenti che passano al ruolo UpdateApp.

Quindi, bisogna modificare le autorizzazioni per i gruppi di utenti.

Concedi autorizzazione per l'accesso al ruolo

A questo punto, i membri dei gruppi Developer e Tester dispongono delle autorizzazioni per testare liberamente le applicazioni dell'account Sviluppo. Usare i seguenti passaggi necessari per aggiungere le autorizzazioni per il cambio di ruolo.

Modificare il gruppo di utenti Developers per consentire loro di passare al UpdateApp ruolo
  1. Accedi come amministratore nell'account Sviluppo e apri la console IAM.

  2. Seleziona Gruppi di utenti e scegli Developer.

  3. Nella scheda Autorizzazioni, scegli Aggiungi autorizzazioni, quindi Crea policy in linea.

  4. Scegli la scheda JSON.

  5. Aggiungere la seguente istruzione di policy per consentire l'azione AssumeRole sul ruolo UpdateApp nell'account Produzione. Assicurati di modificare PRODUCTION-ACCOUNT-ID nell'Resourceelemento con l' Account AWS ID effettivo dell'account di produzione.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::PRODUCTION-ACCOUNT-ID:role/UpdateApp" } }

    L'effetto Allow consente in modo esplicito al gruppo Developer l'accesso al ruolo UpdateApp dell'account Produzione. Qualsiasi sviluppatore potrà accedere al ruolo.

  6. Scegli Verifica policy.

  7. Digita un nome, ad esempio allow-assume-S3-role-in-production.

  8. Scegli Crea policy.

Nella maggior parte degli ambienti, la procedura seguente risulta superflua. Se, tuttavia, utilizzi PowerUserAccess le autorizzazioni, alcuni gruppi potrebbero già essere in grado di cambiare ruolo. La procedura descritta di seguito mostra come aggiungere un'autorizzazione "Deny" al gruppo Tester, per impedire ai suoi membri di assumere il ruolo. Se questa procedura non è necessaria nel tuo ambiente, è preferibile non aggiungerla. Le autorizzazioni "Deny" di tipo generale sono più complicate da gestire e comprendere. Utilizza le autorizzazioni "Deny" solo quando non sono disponibili alternative migliori.

Come modificare il gruppo di utenti Tester e negare l'autorizzazione ad assumere il ruolo UpdateApp
  1. Seleziona Gruppi di utenti quindi Tester.

  2. Nella scheda Autorizzazioni, scegli Aggiungi autorizzazioni, quindi Crea policy in linea.

  3. Scegli la scheda JSON.

  4. Aggiungere la seguente istruzione di policy per negare l'operazione AssumeRole nel ruolo UpdateApp. Assicurati di modificare PRODUCTION-ACCOUNT-ID nell'Resourceelemento con l' Account AWS ID effettivo dell'account di produzione.

    { "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::PRODUCTION-ACCOUNT-ID:role/UpdateApp" } }

    L'effetto Deny impedisce in modo esplicito al gruppo Tester l'accesso al ruolo UpdateApp dell'account Produzione. Se un tester cerca di accedere al ruolo riceve un messaggio di accesso negato.

  5. Scegli Verifica policy.

  6. Digita un nome come deny-assume-S3-role-in-production.

  7. Scegli Crea policy.

Il gruppo Developer ora dispone delle autorizzazioni per utilizzare il ruolo UpdateApp nell'account di produzione. Il gruppo di utenti Tester invece non può utilizzare il ruolo UpdateApp.

Successivamente, vedrai come David, uno sviluppatore, può accedere al bucket productionapp nell'account Produzione. David può accedere al bucket dal AWS Management Console, dall'o dall' AWS CLI API. AWS

Accesso al test tramite cambio di ruoli

Al termine dei primi due passaggi del tutorial, disponi di un ruolo che concede l'accesso a una risorsa dell'account Produzione. Hai anche creato un gruppo di utenti nell'account Sviluppo con utenti autorizzati a utilizzare tale ruolo. In questo passaggio viene illustrato come testare il passaggio a quel ruolo tramite AWS Management Console AWS CLI, l'e l' AWS API.

Importante

È possibile passare a un ruolo solo dopo avere effettuato l'accesso come utente IAM o utente federato. Inoltre, se avvii un'istanza Amazon EC2 per eseguire un'applicazione, questa può assumere un ruolo tramite il proprio profilo dell'istanza. Non è possibile passare a un ruolo se l'accesso è stato effettuato come Utente root dell'account AWS.

Cambio di ruoli (Console)

Se David ha bisogno di lavorare nell'ambiente di produzione di AWS Management Console, può farlo utilizzando Switch Role. Specificando l'ID account o l'alias e il nome del ruolo, le sue autorizzazioni passano immediatamente a quelle consentite dal ruolo. Potrà quindi utilizzare la console per lavorare con il bucket productionapp, ma non sarà in grado utilizzare le altre risorse dell'account Produzione. Inoltre, mentre utilizza il ruolo, David non può sfruttare i suoi privilegi di utente avanzato, validi per l'account Sviluppo, perché non si possono attivare più set di autorizzazioni contemporaneamente.

Importante

Il cambio di ruolo utilizzando il funziona AWS Management Console solo con account che non richiedono unExternalId. Ad esempio, si supponga di concedere l'accesso al proprio account a terzi e di richiedere un ExternalId in un elemento Condition nella policy di autorizzazione. In tal caso, la terza parte può accedere all'account solo utilizzando l' AWS API o uno strumento da riga di comando. Le terze parti non possono utilizzare la console perché non sono in grado di fornire un valore per ExternalId. Per ulteriori informazioni su questo scenarioCome utilizzare un ID esterno per concedere l'accesso alle proprie AWS risorse a terzi, consulta e Come abilitare l'accesso tra più account AWS Management Console al blog sulla AWS sicurezza.

IAM fornisce due alternative per accedere alla pagina Switch Role (Cambia ruolo):

  • David riceve dal suo amministratore un link che rimanda a una configurazione "Switch Role" (Cambia ruolo) predefinita. Il collegamento viene fornito all'amministratore nella pagina finale della procedura guidata Create role (Crea ruolo) oppure nella pagina Role Summary (Riepilogo ruolo) per un ruolo tra più account. Selezionando questo link, David viene indirizzato alla pagina Switch Role (Cambia ruolo) con i campi Account ID (ID account) e Role name (Nome ruolo) già compilati. David non deve fare altro che selezionare Switch Roles (Cambia ruolo).

  • Anziché spedire un'e-mail con il link, l'amministratore invia il numero Account ID (ID account) e i valori per Role Name (Nome ruolo). Per cambiare ruolo, David deveinserire manualmente i valori. Tale procedura viene descritta di seguito.

Come assumere un ruolo
  1. David accede AWS Management Console utilizzando il suo utente normale nel gruppo di utenti Development.

  2. Seleziona il link che l'amministratore gli ha inviato per e-mail. A questo punto, David viene indirizzato alla pagina Switch Role (Cambia ruolo) che contiene già le informazioni relative all'ID account o all'alias e il nome del ruolo.

    oppure

    David seleziona il proprio nome nel menu Identity (Identità) della barra di navigazione, quindi sceglie Switch Roles (Cambia ruolo).

    Se questa è la prima volta che David cerca di accedere alla pagina Switch Role (Cambia ruolo) in questo modo, verrà visualizzata una pagina introduttiva di Switch Role (Cambia ruolo) In questa pagina sono riportate ulteriori informazioni su come il cambio di ruolo può consentire agli utenti di gestire le risorse su più Account AWS. In questa pagina, David deve selezionare Switch Role (Cambia ruolo) per completare il resto della procedura.

  3. Successivamente, per accedere al ruolo, David deve digitare manualmente il numero di ID dell'account Produzione (999999999999) e il nome del ruolo (UpdateApp).

    Inoltre, David vuole monitorare quali ruoli e autorizzazioni associate sono attualmente attivi su IAM. Per tenere traccia di queste informazioni, digita PRODUCTION nella casella di testo Nome di visualizzazione, seleziona l'opzione di colore rosso e quindi seleziona Cambia ruolo.

  4. Ora David può utilizzare la console Amazon S3 per lavorare con il bucket Amazon S3 o con qualsiasi altra risorsa per la quale il ruolo UpdateApp dispone di autorizzazioni.

  5. Al termine, David può tornare alle sue autorizzazioni originali. A tale scopo, seleziona il nome del ruolo PRODUCTION (Produzione) nella barra di navigazione, quindi seleziona Back to David @ 111111111111 (Torna a David @ 111111111111.

  6. Se dovesse avere nuovamente bisogno di cambiare ruolo, David potrà selezionare il menu Identity (Identità) nel riquadro di navigazione e troverà già presente la voce PRODUCTION (PRODUZIONE). Non dovrà fare altro che selezionare tale voce per cambiare immediatamente ruolo, senza immettere nuovamente l'account ID e il nome del ruolo.

Cambio di ruoli (AWS CLI)

Se David dovesse avere bisogno di lavorare nell'ambiente Produzione, alla riga di comando, può farlo tramite la AWS CLI. Esegue il comando aws sts assume-role e trasferisce l'ARN del ruolo per ottenere le credenziali di sicurezza provvisorie per quel ruolo. Quindi configura tali credenziali nelle variabili di ambiente in modo che AWS CLI i comandi successivi funzionino utilizzando le autorizzazioni del ruolo. Mentre utilizza il ruolo, David non può sfruttare i suoi privilegi di utente avanzato, validi per l'account Sviluppo, perché non si possono attivare più set di autorizzazioni contemporaneamente.

Tutte le chiavi di accesso e i token sono solo esempi e non possono essere utilizzati come mostrato. Sostituiscili con i valori appropriati del tuo ambiente reale.

Come assumere un ruolo
  1. David apre una finestra del prompt dei comandi e conferma che il AWS CLI client funziona eseguendo il comando:

    aws help
    Nota

    L'ambiente predefinito di David utilizza le credenziali utente David ottenute dal profilo predefinito creato con il comando aws configure. Per ulteriori informazioni, consulta Configurazione della AWS Command Line Interface nella Guida per l'utente di AWS Command Line Interface .

  2. Inizia il processo di cambio ruolo eseguendo il seguente comando per passare al ruolo UpdateApp dell'account Produzione. Ha ricevuto l'ARN del ruolo dall'amministratore che ha creato il ruolo. Il comando richiede anche un nome di sessione (qualsiasi testo è valido).

    aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/UpdateApp" --role-session-name "David-ProdUpdate"

    A questo punto David potrà consultare quanto segue:

    { "Credentials": { "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLE CvSRyh0FW7jEXAMPLEW+vE/7s1HRpXviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDy EXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPyOj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3Uuysg sKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/Cs8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87e NhyDHq6ikBQ==", "Expiration": "2014-12-11T23:08:07Z", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" } }
  3. David può trovare le tre parti di cui ha bisogno nella sezione Credentials (Credenziali) dell'output.

    • AccessKeyId

    • SecretAccessKey

    • SessionToken

    David deve configurare l' AWS CLI ambiente per utilizzare questi parametri nelle chiamate successive. Per informazioni sui vari modi di configurare le credenziali, consulta Configurare AWS Command Line Interface. Non può utilizzare il comando aws configure, perché non supporta l'acquisizione il token della sessione. Tuttavia, può inserire manualmente le informazioni in un file di configurazione. Poiché si tratta di credenziali provvisorie, con una durata relativamente breve, è più facile per aggiungerle all'ambiente della sessione corrente della riga di comando.

  4. Per aggiungere i tre valori all'ambiente, David taglia e incolla l'output del passaggio precedente nei comandi seguenti. Per risolvere i problemi con gli accapo presenti nel token della sessione, è possibile tagliare e incollare in un semplice editor di testo. Il testo deve essere inserito come un'unica stringa lunga, anche se qui viene riportato spezzato, per motivi di chiarezza.

    Nota

    L'esempio seguente mostra i comandi forniti nell'ambiente Windows, dove "set" è il comando per creare una variabile di ambiente. Su un computer Linux o MacOS, bisogna utilizzare invece il comando "export". Tutte le altre parti dell'esempio sono valide per tutti i tre ambienti.

    Per dettagli sull'utilizzo di Tools for Windows Powershell, consulta Passaggio a un ruolo IAM (Tools for Windows PowerShell)

    set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY set AWS_SESSION_TOKEN=AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvS Ryh0FW7jEXAMPLEW+vE/7s1HRpXviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXA MPLEKEY9/g7QRUhZp4bqbEXAMPLENwGPyOj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UusKd EXAMPLE1TVastU1A0SKFEXAMPLEiywCC/Cs8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLENhykxiHen DHq6ikBQ==

    A questo punto, tutti i comandi successivi vengono eseguiti con le autorizzazioni del ruolo identificato da tali credenziali (nel caso di David, il ruolo UpdateApp).

  5. Eseguire il comando per accedere alle risorse dell'account Produzione. In questo esempio, David si limita a elencare il contenuto del suo bucket S3 con il comando seguente.

    aws s3 ls s3://productionapp

    Poiché i nomi del bucket Amazon S3 sono universalmente univoci, non è necessario specificare quale ID account possiede il bucket. Per accedere alle risorse di altri AWS servizi, consulta la AWS CLI documentazione del servizio per conoscere i comandi e la sintassi necessari per fare riferimento alle relative risorse.

Utilizzo di AssumeRole (AWS API)

Per aggiornare l'account Produzione da codice, David effettua una chiamata AssumeRole per assumere il ruolo UpdateApp. La chiamata restituisce le credenziali provvisorie, utilizzabili per accedere al bucket productionapp dell'account Produzione. David può utilizzare tali credenziali per effettuare chiamate API per aggiornare il bucket productionapp. Tuttavia, non sarà in grado di effettuare chiamate API per accedere alle altre risorse dell'account Produzione, anche se dispone di autorizzazioni da utente avanzato per l'account Sviluppo.

Come assumere un ruolo
  1. David richiama AssumeRole come parte di un'applicazione Deve specificare l'ARN di UpdateApp: arn:aws:iam::999999999999:role/UpdateApp.

    La risposta alla chiamata AssumeRole include le credenziali temporanee con un AccessKeyId e un SecretAccessKey. Include anche un'ora Expiration che indica quando le credenziali scadono e sarà necessario richiederne di nuove.

  2. David utilizza le credenziali provvisorie per inviare una chiamata s3:PutObject per aggiornare il bucket productionapp. Trasferisce le credenziali alla chiamata API come parametro AuthParams. Dato che le credenziali provvisorie del ruolo forniscono solo un accesso in lettura e scrittura al bucket productionapp, tutte le altre azioni nell'account Produzione sono negate.

Per un esempio di codice (con Python), consultare Passaggio a un ruolo IAM (AWS API).

Riepilogo

Hai completato il tutorial per l'accesso alle API di più account. Hai creato un ruolo per stabilire la relazione di trust con un altro account e hai definito le operazioni che possono essere eseguite dalle entità affidabili. Successivamente, hai modificato una policy di gruppo per controllare quali utenti IAM possono accedere al ruolo. Come risultato, i developer dell'account Sviluppo possono aggiornare il bucket productionapp dell'account Produzione, utilizzando credenziali provvisorie.