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à.
Passa a un IAM ruolo (AWS CLI)
Un ruolo specifica un insieme di autorizzazioni che è possibile utilizzare per accedere AWS risorse di cui hai bisogno. In questo senso, è simile a un utente in AWS Identity and Access Management(IAM). Quando effettui l'accesso come utente, ottieni uno specifico set di autorizzazioni. Tuttavia, non effettui l'accesso a un ruolo, ma dopo aver effettuato l'accesso come utente, puoi passare a un ruolo. Ciò consente di accantonare temporaneamente le autorizzazioni utente originali e usufruire invece delle autorizzazioni assegnate al ruolo. Il ruolo può essere assegnato al tuo account o a qualsiasi altro Account AWS. Per ulteriori informazioni sui ruoli, sui relativi vantaggi e su come crearli e configurarli, vedereIAMruoli, eIAMcreazione di ruoli. Per informazioni sui diversi metodi che si possono utilizzare per assumere un ruolo, consulta Metodi per assumere un ruolo.
Importante
Le autorizzazioni dell'IAMutente e gli eventuali ruoli assunti non sono cumulativi. Un solo set di autorizzazioni è attivo alla volta. Quando si assume un ruolo, si lascia temporaneamente l'utente precedente o le autorizzazioni del ruolo e si lavora con le autorizzazioni assegnate al ruolo. Quando lasci il ruolo, le autorizzazioni utente vengono automaticamente ripristinate.
È possibile utilizzare un ruolo per eseguire un AWS CLI comando quando hai effettuato l'accesso come IAM utente. È inoltre possibile utilizzare un ruolo per eseguire un AWS CLI comando quando hai effettuato l'accesso come utente autenticato esternamente (SAMLo OIDC) che sta già utilizzando un ruolo. Inoltre, è possibile utilizzare un ruolo per eseguire un AWS CLI comando dall'interno di un'EC2istanza Amazon collegato a un ruolo tramite il relativo profilo di istanza. Non puoi assumere un ruolo quando accedi come Utente root dell'account AWS.
Concatenamento del ruolo: puoi anche utilizzare la concatenamento dei ruoli che utilizza le autorizzazioni di un ruolo per accedere a un secondo ruolo.
Come impostazione predefinita, la sessione del ruolo dura un'ora. Quando si assume questo ruolo utilizzando le assume-role*
CLI operazioni, è possibile specificare un valore per il duration-seconds
parametro. Questo valore può variare da 900 secondi (15 minuti) fino alla durata massima della sessione per il ruolo. Se cambi ruolo nella console, la durata della sessione è limitata a un massimo di un'ora. Per informazioni su come visualizzare il valore massimo per il ruolo, consulta Aggiornare la durata massima della sessione per un ruolo.
Se si utilizza il concatenamento dei ruoli, la tua durata della sessione è limitata a un massimo di un'ora. Se successivamente utilizzi il parametro duration-seconds
per fornire un valore superiore a un'ora, l'operazione ha esito negativo.
Scenario di esempio: passaggio a un ruolo di produzione
Immaginate di essere un IAM utente che lavora nell'ambiente di sviluppo. In questo scenario, a volte è necessario utilizzare l'ambiente di produzione dalla riga di comando con AWS CLI
Nota
Per motivi di sicurezza, gli amministratori possono esaminare AWS CloudTrail registra per sapere chi ha eseguito un'azione in AWS. L'amministratore potrebbe richiedere di specificare un'identità di origine o un nome di sessione di ruolo quando si assume il ruolo. Per ulteriori informazioni, consulta sts:SourceIdentity e sts:RoleSessionName.
Per passare a un ruolo di produzione (AWS CLI)
-
Se non hai mai usato il AWS CLI, allora devi prima configurare il tuo CLI profilo predefinito. Apri un prompt dei comandi e configura il AWS CLI installazione per utilizzare la chiave di accesso fornita dall'IAMutente o dal ruolo federato. Per ulteriori informazioni, vedere Configurazione di AWS Command Line Interface nella AWS Command Line Interface Guida per l'utente.
Esegui il comando aws configure come riportato di seguito:
aws configure
Quando viene richiesto, fornire le seguenti informazioni:
AWS Access Key ID [None]:
AWS Secret Access Key [None]:AKIAIOSFODNN7EXAMPLE
Default region name [None]:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default output format [None]:us-east-2
json
-
Creare un nuovo profilo per il ruolo nel file
.aws/config
in Unix o Linux, oppure nel fileC:\Users\USERNAME\.aws\config
in Windows. L'esempio seguente crea un profilo denominatoprodaccess
che passa al ruolo
nell'accountProductionAccessRole
123456789012
. Il ruolo viene assegnato ARN all'amministratore dell'account che lo ha creato. Quando questo profilo viene richiamato, AWS CLI utilizza le credenziali disource_profile
per richiedere le credenziali per il ruolo. Per questo motivo, l'identità alla quale viene fatto riferimento comesource_profile
deve disporre delle autorizzazionists:AssumeRole
per il ruolo specificato inrole_arn
.[profile prodaccess] role_arn = arn:aws:iam::
123456789012
:role/ProductionAccessRole source_profile = default -
Dopo aver creato il nuovo profilo, qualsiasi AWS CLI il comando che specifica il parametro
--profile prodaccess
viene eseguito con le autorizzazioni associate al IAM ruoloProductionAccessRole
anziché con l'utente predefinito.aws iam list-users --profile prodaccess
Questo comando funziona se le autorizzazioni assegnate all'utente
ProductionAccessRole
abilitano l'elenco degli utenti nell'elenco corrente AWS conto. -
Per ripristinare le autorizzazioni concesse dalle credenziali originali, eseguire i comandi senza il parametro
--profile
. Il AWS CLI torna a utilizzare le credenziali del profilo predefinito, in cui hai configurato. Passo 1
Per ulteriori informazioni, vedere Assumere un ruolo in AWS Command Line Interface Guida per l'utente.
Scenario di esempio: consentire a un ruolo del profilo dell'istanza di passare a un ruolo in un altro account
Immagina di usarne due Account AWS e desideri consentire l'esecuzione di un'applicazione in esecuzione su un'EC2istanza Amazon AWS CLI111111111111
. Tale istanza include il ruolo del profilo dell'istanza abcd
che consente all'applicazione di eseguire attività Amazon S3 di sola lettura nel bucket amzn-s3-demo-bucket1
all'interno dello stesso account 111111111111
. Tuttavia, l'applicazione deve anche poter assumere il ruolo tra più account efgh
per eseguire attività nell'account 222222222222
. A tale scopo, il ruolo del profilo dell'abcd
EC2istanza deve avere la seguente politica di autorizzazioni:
Policy di autorizzazioni del ruolo abcd
111111111111 dell'account
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccountLevelS3Actions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowListAndReadS3ActionOnMyBucket", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ] }, { "Sid": "AllowIPToAssumeCrossAccountRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/efgh" } ] }
Supponiamo che il ruolo tra account efgh
consenta attività Amazon S3 di sola lettura nel bucket amzn-s3-demo-bucket2
all'interno dello stesso account 222222222222
. A tale scopo, il ruolo tra account efgh
deve disporre della seguente policy di autorizzazioni:
Policy di autorizzazioni del ruolo efgh
222222222222 dell'account
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccountLevelS3Actions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowListAndReadS3ActionOnMyBucket", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket2/*", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }
Il ruolo efgh
deve consentire al ruolo del profilo dell'istanza abcd
di assumerlo. A tale scopo, il ruolo efgh
deve disporre della seguente policy di attendibilità:
Policy di attendibilità del ruolo efgh
dell'account 222222222222
{ "Version": "2012-10-17", "Statement": [ { "Sid": "efghTrustPolicy", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::111111111111:role/abcd"} } ] }
Per poi eseguire AWS CLI per i comandi presenti nell'account222222222222
, è necessario aggiornare il file CLI di configurazione. Identifica il efgh
ruolo come «profilo» e il ruolo del profilo di abcd
EC2 istanza come «fonte delle credenziali» nel AWS CLI
file di configurazione. Quindi i CLI comandi vengono eseguiti con le autorizzazioni del efgh
ruolo, non con il abcd
ruolo originale.
Nota
Per motivi di sicurezza, puoi usare AWS CloudTrail per verificare l'uso dei ruoli nell'account. Per distinguere tra le sessioni di ruolo quando un ruolo viene utilizzato da diversi responsabili nei CloudTrail log, è possibile utilizzare il nome della sessione di ruolo. Quando AWS CLI assume un ruolo per conto di un utente come descritto in questo argomento, viene creato automaticamente un nome di sessione di ruolo comeAWS-CLI-session-
. Qui nnnnnnnn
nnnnnnnn
è un numero intero che rappresenta l'ora espressa in Unix Epoch Time
Per consentire a un ruolo di profilo di EC2 istanza di passare a un ruolo tra account (AWS CLI)
-
Non è necessario configurare un CLI profilo predefinito. È invece possibile caricare le credenziali dai metadati del profilo dell'EC2istanza. Crea un nuovo profilo per il ruolo nel file
.aws/config
. L'esempio seguente crea un profiloinstancecrossaccount
che passa al ruolo
nell'accountefgh
222222222222
. Quando questo profilo viene richiamato, AWS CLI utilizza le credenziali dei metadati del profilo di EC2 istanza per richiedere le credenziali per il ruolo. Per questo motivo, il ruolo del profilo di EC2 istanza deve disporre dellests:AssumeRole
autorizzazioni per il ruolo specificato in.role_arn
[profile instancecrossaccount] role_arn = arn:aws:iam::
222222222222
:role/efgh credential_source = Ec2InstanceMetadata -
Dopo aver creato il nuovo profilo, qualsiasi AWS CLI Il comando che specifica il parametro
--profile instancecrossaccount
viene eseguito con le autorizzazioni associate alefgh
ruolo nell'account.222222222222
aws s3 ls amzn-s3-demo-bucket2 --profile instancecrossaccount
Questo comando funziona se le autorizzazioni assegnate al
efgh
ruolo consentono di elencare gli utenti nell'elenco corrente Account AWS. -
Per tornare alle autorizzazioni del profilo di EC2 istanza originale nell'account
111111111111
, CLI esegui i comandi senza il--profile
parametro.
Per ulteriori informazioni, consulta Assumere un ruolo in AWS Command Line Interface Guida per l'utente.