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à.
IAMtutorial: delega l'accesso attraverso AWS account che utilizzano ruoli IAM
Importante
IAMle migliori pratiche consigliano di richiedere agli utenti umani di utilizzare la federazione con un provider di identità per accedere AWS utilizzare credenziali temporanee anziché utilizzare IAM utenti con credenziali a lungo termine. Si consiglia di utilizzare IAM gli utenti solo per casi d'uso specifici non supportati dagli utenti federati.
Questo tutorial ti insegna come utilizzare un ruolo per delegare l'accesso alle risorse in diversi Account AWS chiamato Destinazione e origine. Puoi condividere le risorse di un account con gli utenti di un altro account. Configurando l'accesso tra più account in questo modo, non è necessario creare singoli IAM utenti in ogni account. Inoltre, gli utenti non devono uscire da un account e accedere a un altro account per accedere a risorse di diversi Account AWS. Dopo aver configurato il ruolo, vedrai come utilizzarlo dal AWS Management Console, il AWS CLI, e ilAPI.
In questo tutorial, l'account Destination gestisce i dati delle applicazioni a cui accedono diverse applicazioni e team. In ciascun account puoi archiviare le informazioni sull'applicazione in bucket Amazon S3. Gestisci IAM gli utenti nell'account Originating, dove hai due ruoli IAM utente: Sviluppatori e Analisti. Gli sviluppatori e gli analisti utilizzano l'account Originating per generare dati condivisi da più microservizi. Entrambi i ruoli dispongono delle autorizzazioni necessarie per lavorare nell'account Originating e accedere alle relative risorse. Di tanto in tanto, uno sviluppatore deve aggiornare i dati condivisi nell'account di destinazione. Gli sviluppatori archiviano questi dati in un bucket Amazon S3 chiamato. amzn-s3-demo-bucket-shared-container
Alla fine di questo tutorial, si dispone di quanto segue:
-
Gli utenti dell'account Originating (l'account fidato) potevano assumere un ruolo specifico nell'account di destinazione.
-
Un ruolo nell'account di destinazione (l'account di fiducia) consentiva di accedere a uno specifico bucket Amazon S3.
-
Il
amzn-s3-demo-bucket-shared-container
bucket nell'account Destination.
Gli sviluppatori possono utilizzare il ruolo in AWS Management Console per accedere al amzn-s3-demo-bucket-shared-container
bucket nell'account Destination. Possono inoltre accedere al bucket utilizzando API chiamate autenticate da credenziali temporanee fornite dal ruolo. Tentativi simili da parte di un analista di utilizzare il ruolo falliscono.
Questo flusso di lavoro ha tre fasi di base:
- Crea un ruolo nell'account di destinazione
-
Innanzitutto, si utilizza il AWS Management Console per stabilire un rapporto di fiducia tra l'account di destinazione (numero ID 9999) e l'account di origine (numero ID 1111). Si inizia creando un IAM ruolo denominato. UpdateData Quando si crea il ruolo, si definisce l'account di origine come entità attendibile e si specifica una politica di autorizzazioni che consenta agli utenti attendibili di aggiornare il
amzn-s3-demo-bucket-shared-container
bucket. - Concedi autorizzazione per l'accesso al ruolo
-
In questa sezione, modifichi la politica del ruolo per negare agli analisti l'accesso al ruolo.
UpdateData
Perché gli analisti 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, puoi utilizzare il
UpdateData
ruolo per aggiornare ilamzn-s3-demo-bucket-shared-container
bucket nell'account di destinazione. Scopri come accedere al ruolo tramite il AWS console, la AWS CLI, e ilAPI.
Considerazioni
Prima di utilizzare IAM i ruoli per delegare l'accesso alle risorse tra Account AWS, è importante considerare quanto segue:
-
Non puoi passare a un ruolo quando accedi come Utente root dell'account AWS.
-
IAMi ruoli e le politiche basate sulle risorse delegano l'accesso ai diversi 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 partizioneaws-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 accountaws
standard. -
È possibile utilizzare… AWS IAM Identity Center per facilitare il single sign-on () per utenti esterni SSO Account AWS (account esterni al tuo AWS Organizations) utilizzando Security Assertion Markup Language ()SAML. Per i dettagli, consulta Integrate external Account AWS dentro AWS IAM Identity Center per la gestione centralizzata degli accessi con fatturazione indipendente tramite 2.0 SAML
-
È possibile associare ruoli a AWS risorse come EC2 istanze Amazon o AWS Lambda funzioni. Per informazioni dettagliate, consultare Creare un ruolo per delegare le autorizzazioni a un servizio AWS.
-
Se si desidera che un'applicazione assuma un ruolo in un'altra Account AWS, puoi usare il AWS SDKper l'assunzione di ruoli tra account. Per ulteriori informazioni, vedere Autenticazione e accesso nella AWS SDKse Guida di riferimento agli strumenti.
-
Cambio di ruolo utilizzando il AWS Management Console funziona solo con account che non richiedono un
ExternalId
. Ad esempio, si supponga di concedere l'accesso al proprio account a terzi e di richiedere unExternalId
in un elementoCondition
nella policy di autorizzazione. In tal caso, la terza parte può accedere all'account dell'utente solo utilizzando il AWS APIo uno strumento da riga di comando. La terza parte non può utilizzare la console perché deve fornire un valore perExternalId
. Per ulteriori informazioni su questo scenarioAccesso a Account AWS proprietà di terzi, consulta e Come abilitare l'accesso da più account a AWS Management Consolenel AWS Blog sulla sicurezza.
Prerequisiti
Questo tutorial presuppone che tu abbia a disposizione quanto segue:
-
Due separati Account AWS che puoi usare, uno per rappresentare l'account di origine e uno per rappresentare l'account di destinazione.
-
Gli utenti e i ruoli nell'account di origine sono stati creati e configurati come segue:
Titolo del lavoro Utente Autorizzazioni Developer David Entrambi gli utenti possono accedere e utilizzare il AWS Management Console nell'account Originating. Analista Jane -
Non è necessario creare alcun utente nell'account Destination.
-
Un bucket Amazon S3 creato nell'account di destinazione. Nel tutorial puoi chiamarlo
amzn-s3-demo-bucket-shared-container
, ma dato che i nomi dei bucket S3 devono essere univoci a livello globale, dovrai selezionare un nome diverso.
Crea un ruolo nell'account di destinazione
Puoi consentire l'accesso a utenti da uno Account AWS accedere alle risorse di un altro Account AWS. In questo tutorial, lo faremo creando un ruolo che definisca chi può accedervi e quali autorizzazioni concede agli utenti che passano ad esso.
In questo passaggio del tutorial, crei il ruolo nell'account di destinazione e specifichi l'account di origine come entità affidabile. Inoltre, dovrai limitare le autorizzazioni del ruolo al solo accesso di lettura e scrittura per il bucket amzn-s3-demo-bucket-shared-container
. Chiunque abbia ricevuto l'autorizzazione a usare il ruolo potrà leggere e scrivere nel bucket shared-container
.
Prima di poter creare un ruolo, è necessario l'ID dell'account di Originating Account AWS. Ciascuno Account AWS ha un identificatore ID account univoco assegnato.
Per ottenere l'Originating Account AWS ID
-
Accedi a AWS Management Console come amministratore dell'account Originating e apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/
. -
Nella IAM console, scegli il tuo nome utente nella barra di navigazione in alto a destra. In genere ha il seguente aspetto:
username
@account_ID_number_or_alias
.In questo scenario, puoi utilizzare l'ID account 1111 per l'account di origine. Tuttavia, devi utilizzare un ID account valido se stai usando questo scenario nell'ambiente di test.
Per creare un ruolo nell'account di destinazione che può essere utilizzato dall'account di origine
-
Accedi al AWS Management Console come amministratore dell'account di destinazione e apri la IAM console.
-
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
amzn-s3-demo-bucket-shared-container
. Sebbene AWS fornisce 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.
-
Scegli la JSONscheda e copia il testo dal seguente JSON documento di policy. Incolla questo testo nella casella di JSONtesto, sostituendo la risorsa ARN (
arn:aws:s3:::shared-container
) con quella reale per il tuo 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:::amzn-s3-demo-bucket-shared-container
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-shared-container/*
" } ] }L’azione
ListAllMyBuckets
concede l'autorizzazione per elencare tutti i bucket di proprietà del mittente autenticato della richiesta. L'autorizzazioneListBucket
consente agli utenti di visualizzare gli oggetti del bucketamzn-s3-demo-bucket-shared-container
. Le autorizzazioniGetObject
,PutObject
eDeleteObject
consentono agli utenti di visualizzare, aggiornare ed eliminare i contenuti del bucketamzn-s3-demo-bucket-shared-container
.Nota
Puoi passare dall'opzione Visual a quella dell'JSONeditor in qualsiasi momento. Tuttavia, se apporti modifiche o scegli Avanti nell'editor visuale, IAM potresti ristrutturare la tua politica per ottimizzarla per l'editor visuale. Per ulteriori informazioni, consulta Modifica della struttura delle policy.
-
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.
-
Nel riquadro di navigazione, scegli Ruoli, quindi Crea ruolo.
-
Scegli An Account AWStipo di ruolo.
-
Per ID account, digita l'ID dell'account di origine.
Questo tutorial utilizza l'ID account di esempio
111111111111
per l'account di origine. Tuttavia, è consigliabile utilizzare un ID account valido. Se utilizzi un ID account non valido, ad esempio111111111111
, IAM non ti consente di creare il nuovo ruolo.Per ora non è necessario richiedere un ID esterno o richiedere agli utenti di disporre dell'autenticazione a più fattori (MFA) per assumere il ruolo. Tali opzioni possono rimanere deselezionate. Per ulteriori informazioni, consulta AWS Autenticazione a più fattori in IAM.
-
Selezionare Next:Permissions (Avanti:Autorizzazioni) per impostare le autorizzazioni associate al ruolo.
-
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. Questo nasconde il AWS ha creato politiche e rende molto più facile trovare quella che ti serve.
Quindi, seleziona Next (Successivo).
-
(Facoltativo) Aggiungi metadati al ruolo collegando i tag come coppie chiave-valore. Per ulteriori informazioni sull'utilizzo dei tag inIAM, consultaTag per AWS Identity and Access Management le risorse.
-
(Facoltativo) In Description (Descrizione), inserisci una descrizione per il nuovo ruolo.
-
Dopo avere rivisto il ruolo, fare clic su Create Role (Crea ruolo).
Il ruolo
UpdateData
viene visualizzato nell'elenco dei ruoli.
Ora devi ottenere l'Amazon Resource Name (ARN) del ruolo, un identificatore univoco per il ruolo. Quando modifichi il ruolo dello sviluppatore nell'account Originating, specifichi il ruolo ARN dall'account di destinazione per concedere o negare le autorizzazioni.
Per ottenere il modulo ARN UpdateData
-
Nel riquadro di navigazione della IAM console, scegli Ruoli.
-
Nell'elenco dei ruoli, selezionare il ruolo
UpdateData
. -
Nella sezione Riepilogo del riquadro dei dettagli, copia il ARN valore del ruolo.
L'account di destinazione ha un ID account pari a 9999, quindi il ruolo ARN è
arn:aws:iam::999999999999:role/UpdateData
. Assicurati di fornire il codice reale Account AWS ID dell'account di destinazione.
A questo punto, hai stabilito un rapporto di fiducia tra gli account di destinazione e di origine. L'hai fatto creando un ruolo nell'account di destinazione che identifica l'account di origine come principale affidabile. Inoltre, hai definito le operazioni consentite agli utenti che passano al ruolo UpdateData
.
Successivamente, modifica le autorizzazioni per il ruolo Sviluppatore.
Concedi autorizzazione per l'accesso al ruolo
A questo punto, sia gli analisti che gli sviluppatori dispongono delle autorizzazioni che consentono loro di gestire i dati nell'account Originating. Usare i seguenti passaggi necessari per aggiungere le autorizzazioni per il cambio di ruolo.
Modificare il ruolo Sviluppatori per consentire loro di passare a tale ruolo UpdateData
-
Accedi come amministratore nell'account Originating e apri la IAM console.
-
Scegli Ruoli, quindi scegli Sviluppatori.
-
Seleziona la scheda Autorizzazioni, quindi Aggiungi autorizzazioni e Crea policy in linea.
-
Scegli la JSONscheda.
-
Aggiungi la seguente dichiarazione politica per consentire l'
AssumeRole
azione sulUpdateData
ruolo nell'account di destinazione. Assicurati di cambiareDESTINATION-ACCOUNT-ID
dall'Resource
elemento all'attuale Account AWS ID dell'account di destinazione.{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
DESTINATION-ACCOUNT-ID
:role/UpdateData" } }L'
Allow
effetto consente esplicitamente al gruppo di sviluppatori di accedere alUpdateData
ruolo nell'account di destinazione. Qualsiasi sviluppatore potrà accedere al ruolo. -
Scegli Verifica policy.
-
Digita un nome, ad esempio
allow-assume-S3-role-in-destination
. -
Scegli Create Policy (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 seguente mostra come aggiungere un'"Deny"
autorizzazione al gruppo Analisti per garantire che non possano 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.
Modificare il ruolo degli analisti per negare l'autorizzazione ad assumere il ruolo UpdateData
-
Scegli Ruoli, quindi scegli Analisti.
-
Seleziona la scheda Autorizzazioni, quindi Aggiungi autorizzazioni e Crea policy in linea.
-
Scegli la JSONscheda.
-
Aggiungere la seguente istruzione di policy per negare l'operazione
AssumeRole
nel ruoloUpdateData
. Assicurati di cambiareDESTINATION-ACCOUNT-ID
dall'Resource
elemento all'attuale Account AWS ID dell'account di destinazione.{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
DESTINATION-ACCOUNT-ID
:role/UpdateData" } }L'
Deny
effetto nega esplicitamente al gruppo Analysts l'accesso alUpdateData
ruolo nell'account di destinazione. Qualsiasi analista che tenta di accedere al ruolo riceve un messaggio di accesso negato. -
Scegli Verifica policy.
-
Digita un nome come
deny-assume-S3-role-in-destination
. -
Scegli Create Policy (Crea policy).
Il ruolo Sviluppatori ora dispone delle autorizzazioni per utilizzare il UpdateData
ruolo nell'account di destinazione. Al ruolo Analisti viene impedito l'utilizzo del ruolo. UpdateData
Successivamente, puoi vedere come David, uno sviluppatore, può accedere al amzn-s3-demo-bucket-shared-container
bucket nell'account Destination. David può accedere al bucket dal AWS Management Console, il AWS CLI, o AWS API.
Accesso al test tramite cambio di ruoli
Dopo aver completato i primi due passaggi di questo tutorial, hai un ruolo che consente l'accesso a una risorsa nell'account Destination. Hai anche un ruolo nell'account Originating con gli utenti autorizzati a utilizzare quel ruolo. In questo passaggio viene illustrato come testare il passaggio a quel ruolo da AWS Management Console, il AWS CLI, e il AWS API.
Per ricevere assistenza sui problemi più comuni che potresti riscontrare quando lavori con IAM i ruoli, consultaRisoluzione dei problemi relativi ai ruoli IAM.
Cambio di ruoli (Console)
Se David deve aggiornare i dati nell'account Destination nel 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. Può quindi utilizzare la console per lavorare con il amzn-s3-demo-bucket-shared-container
bucket, ma non può lavorare con altre risorse in Destination. Sebbene David utilizzi il ruolo, non può nemmeno utilizzare i suoi privilegi di utente esperto nell'account Originating. perché non si possono attivare più set di autorizzazioni contemporaneamente.
IAMoffre due modi che David può utilizzare per accedere alla pagina 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
-
David accede al AWS Management Console utilizzando il suo utente normale nell'account Originating.
-
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) Questa pagina fornisce informazioni aggiuntive su come il cambio di ruolo può consentire agli utenti di gestire le risorse tra Account AWS. David deve scegliere Switch Role in questa pagina per completare il resto di questa procedura.
-
Successivamente, per accedere al ruolo, David deve digitare manualmente il numero ID dell'account di destinazione (
999999999999
) e il nome del ruolo (UpdateData
).Inoltre, David desidera monitorare i ruoli e le autorizzazioni associate attualmente attivi. IAM Per tenere traccia di queste informazioni, digita
Destination
nella casella di testo Nome di visualizzazione, seleziona l'opzione di colore rosso e quindi seleziona Cambia ruolo. -
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
UpdateData
dispone di autorizzazioni. -
Al termine, David può tornare alle sue autorizzazioni originali. Per farlo, scelgono il nome visualizzato del ruolo Destinazione nella barra di navigazione, quindi scelgono Torna a David @ 1111.
-
La prossima volta che David desidera cambiare ruolo e sceglie il menu Identità nella barra di navigazione, vedrà la voce Destinazione ancora presente dall'ultima volta. Non dovrà fare altro che selezionare tale voce per cambiare immediatamente ruolo, senza immettere nuovamente l'account ID e il nome del ruolo.
Cambia ruolo (AWS CLI)
Se David ha bisogno di lavorare nell'ambiente di destinazione dalla riga di comando, può farlo utilizzando il AWS CLIaws sts
assume-role
comando e passa il ruolo ARN per ottenere le credenziali di sicurezza temporanee per quel ruolo. Quindi configura tali credenziali nelle variabili di ambiente così successive AWS CLI i comandi funzionano utilizzando le autorizzazioni del ruolo. Sebbene David utilizzi il ruolo, non può usare i suoi privilegi di utente esperto nell'account Originating, perché può essere attivo solo un set di autorizzazioni alla volta.
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
-
David apre una finestra del prompt dei comandi e conferma che AWS CLI il 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 comandoaws configure
. Per ulteriori informazioni, vedere Configurazione di AWS Command Line Interface nella AWS Command Line Interface Guida per l'utente. -
Inizia il processo di cambio di ruolo eseguendo il seguente comando per passare al
UpdateData
ruolo nell'account di destinazione. Ha ricevuto il ruolo ARN dall'amministratore che lo ha creato. Il comando richiede anche un nome di sessione (qualsiasi testo è valido).aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/UpdateData" --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" } }
-
David può trovare le tre parti di cui ha bisogno nella sezione Credentials (Credenziali) dell'output.
-
AccessKeyId
-
SecretAccessKey
-
SessionToken
David deve configurare il AWS CLI ambiente per utilizzare questi parametri nelle chiamate successive. Per informazioni sui vari modi di configurare le credenziali, vedere Configurazione di AWS Command Line Interface. Non è possibile utilizzare il
aws configure
comando perché non supporta l'acquisizione del token di 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. -
-
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.
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 Passare a un IAM ruolo (Strumenti per 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
UpdateData
).Importante
È possibile salvare le impostazioni di configurazione e le credenziali utilizzate di frequente in file gestiti da AWS CLI. Per ulteriori informazioni, vedere Utilizzo dei file di configurazione e credenziali esistenti nel AWS Command Line Interface Guida per l'utente.
-
Esegui il comando per accedere alle risorse nell'account di destinazione. In questo esempio, David si limita a elencare il contenuto del suo bucket S3 con il comando seguente.
aws s3 ls s3://shared-container
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, fare riferimento a AWS CLI documentazione relativa a quel servizio per i comandi e la sintassi necessari per fare riferimento alle sue risorse.
Usando AssumeRole (AWS API)
Quando David deve aggiornare l'account Destination dal codice, effettua una AssumeRole
chiamata per assumere il UpdateData
ruolo. La chiamata restituisce credenziali temporanee che può utilizzare per accedere al amzn-s3-demo-bucket-shared-container
bucket nell'account Destination. Con queste credenziali, David può effettuare API chiamate per aggiornare il bucket. amzn-s3-demo-bucket-shared-container
Tuttavia, non può effettuare API chiamate per accedere ad altre risorse nell'account di destinazione, anche se dispone delle autorizzazioni di utente esperto nell'account Originating.
Come assumere un ruolo
-
David richiama
AssumeRole
come parte di un'applicazione Devono specificare:.UpdateData
ARNarn:aws:iam::999999999999:role/UpdateData
La risposta alla chiamata
AssumeRole
include le credenziali temporanee con unAccessKeyId
e unSecretAccessKey
. Include anche un'oraExpiration
che indica quando le credenziali scadono e sarà necessario richiederne di nuove. Quando si imposta il concatenamento dei ruoli con AWS SDK, molti provider di credenziali aggiornano automaticamente le credenziali prima della scadenza. -
David utilizza le credenziali provvisorie per inviare una chiamata
s3:PutObject
per aggiornare il bucketamzn-s3-demo-bucket-shared-container
. Passerebbero le credenziali alla chiamata come parametro. APIAuthParams
Poiché le credenziali del ruolo temporaneo hanno solo accesso in lettura e scrittura alamzn-s3-demo-bucket-shared-container
bucket, qualsiasi altra azione nell'account di destinazione viene negata.
Per un esempio di codice (con Python), consultare Passa a un IAM ruolo (AWS API).
Risorse aggiuntive
Le seguenti risorse possono aiutarti a saperne di più sugli argomenti di questo tutorial:
-
Per ulteriori informazioni sugli IAM utenti, vedereIAMIdentità .
-
Per ulteriori informazioni sui bucket Amazon S3, consulta Creazione di un bucket nella Guida per l'utente di Amazon Simple Storage Service.
-
Per sapere se i responsabili di account che non rientrano nella tua zona di fiducia (organizzazione o account attendibile) possono assumere i tuoi ruoli, vedi Cos'è IAM Access Analyzer? .
Riepilogo
Hai completato il tutorial sull'APIaccesso da 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. Quindi, hai modificato una politica del ruolo per controllare quali IAM utenti possono accedere al ruolo. Di conseguenza, gli sviluppatori dell'account Originating possono aggiornare il amzn-s3-demo-bucket-shared-container
bucket nell'account di destinazione utilizzando credenziali temporanee.