

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à.

# Passaggio a un ruolo IAM (AWS CLI)
<a name="id_roles_use_switch-role-cli"></a>

Un *ruolo* specifica un set di autorizzazioni da utilizzare per accedere alle risorse AWS necessarie. In questo senso, è simile a un [utente in AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) (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ò trovarsi nel tuo account o in qualsiasi altro Account AWS. Per ulteriori informazioni sui ruoli e i relativi vantaggi e su come crearli e configurarli, consulta [Ruoli IAM](id_roles.md) e [Creazione di ruoli IAM](id_roles_create.md). Per informazioni sui diversi metodi che si possono utilizzare per assumere un ruolo, consulta [Metodi per assumere un ruolo](id_roles_manage-assume.md).

**Importante**  
Le autorizzazioni dell'utente IAM e di qualsiasi ruolo assunto non sono cumulative. 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.

Puoi utilizzare un ruolo per eseguire un AWS CLI comando quando accedi come utente IAM. Puoi anche utilizzare un ruolo per eseguire un AWS CLI comando quando accedi come [utente autenticato esternamente](id_roles_providers.md) ([SAML](id_roles_providers_saml.md) o [OIDC](id_roles_providers_oidc.md)) che sta già utilizzando un ruolo. Inoltre, puoi utilizzare un ruolo per eseguire un comando AWS CLI da un'istanza Amazon EC2 collegata a un ruolo tramite il relativo profilo. Non è possibile assumere un ruolo quando si è effettuato l'accesso come Utente root dell'account AWS.

[**Concatenamento del ruolo**](id_roles.md#iam-term-role-chaining): 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 operazioni della CLI `assume-role*`, è possibile specificare un valore per il parametro `duration-seconds`. 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 [Aggiornamento della durata massima della sessione per un ruolo](id_roles_update-role-settings.md#id_roles_update-session-duration). 

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
<a name="switch-role-cli-scenario-prod-env"></a>

Immagina di essere un utente IAM per utilizzare l'ambiente di sviluppo. In questo scenario, a volte è necessario utilizzare l'ambiente di produzione nella riga di comando con l'[AWS CLI](https://aws.amazon.com/cli/). Disponi già di un set di credenziali con chiave di accesso. Questa può essere la coppia di chiavi di accesso assegnata all'utente IAM standard. Oppure, se hai effettuato l’accesso come principale federato SAML o OIDC, può essere la coppia di chiavi di accesso per il ruolo che ti è stato inizialmente assegnato. Se le autorizzazioni attuali ti garantiscono la possibilità di assumere un ruolo IAM specifico, puoi identificare quel ruolo in un «profilo» nei file di configurazione. AWS CLI Questo comando viene quindi eseguito con le autorizzazioni del ruolo IAM specificato, non con l'identità originale. Nota che quando specifichi quel profilo in un AWS CLI comando, stai usando il nuovo ruolo. In questa situazione, non puoi utilizzare le autorizzazioni originali nell'account di sviluppo nello stesso momento. Il motivo è che solo un set di autorizzazioni può essere attivo alla volta.

**Nota**  
Per motivi di sicurezza, gli amministratori possono [esaminare AWS CloudTrail i registri](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) per scoprire chi ha eseguito un'azione in. AWS L'amministratore potrebbe richiedere di specificare una identità di origine o un nome della sessione del ruolo quando si assume il ruolo. Per ulteriori informazioni, consultare [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity) e [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname).

**Per passare a un ruolo di produzione (AWS CLI)**

1. <a name="step-configure-default"></a>Se non hai mai usato il AWS CLI, devi prima configurare il tuo profilo CLI predefinito. Apri un prompt dei comandi e configura AWS CLI l'installazione per utilizzare la chiave di accesso del tuo utente IAM o del tuo ruolo federato. Per ulteriori informazioni, consulta [Configurazione della AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-quick-configuration) nella *Guida per l'utente di AWS Command Line Interface *.

   Esegui il comando [aws configure](https://docs.aws.amazon.com/cli/latest/reference/configure/) come riportato di seguito:

   ```
   aws configure
   ```

   Quando viene richiesto, fornire le seguenti informazioni:

   ```
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: us-east-2
   Default output format [None]: json
   ```

1. Creare un nuovo profilo per il ruolo nel file `.aws/config` in Unix o Linux, oppure nel file `C:\Users\USERNAME\.aws\config` in Windows. L'esempio seguente crea un profilo denominato `prodaccess` che passa al ruolo `ProductionAccessRole` nell'account `123456789012`. L'ARN del ruolo si ottiene dall'amministratore dell'account che ha creato il ruolo. Quando questo profilo viene richiamato, AWS CLI utilizza le credenziali di `source_profile` per richiedere le credenziali per il ruolo. Per questo motivo, l'identità alla quale viene fatto riferimento come `source_profile` deve disporre delle autorizzazioni `sts:AssumeRole` per il ruolo specificato in `role_arn`.

   ```
   [profile prodaccess]
       role_arn = arn:aws:iam::123456789012:role/ProductionAccessRole
       source_profile = default
   ```

1. Dopo aver creato il nuovo profilo, qualsiasi AWS CLI comando che specifica il parametro `--profile prodaccess` viene eseguito con le autorizzazioni associate al ruolo IAM `ProductionAccessRole` anziché con l'utente predefinito.

   ```
   aws iam list-users --profile prodaccess
   ```

   Questo comando funziona se le autorizzazioni assegnate a `ProductionAccessRole` permettono di elencare gli utenti nell'account attuale AWS .

1. Per ripristinare le autorizzazioni concesse dalle credenziali originali, eseguire i comandi senza il parametro `--profile`. Torna a AWS CLI utilizzare le credenziali nel tuo profilo predefinito, in cui hai configurato. [Step 1](#step-configure-default)

Per ulteriori informazioni, consulta [Assunzione di un ruolo](https://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html) nella *Guida per l'utente di AWS Command Line Interface *.

## Scenario di esempio: consentire a un ruolo del profilo dell'istanza di passare a un ruolo in un altro account
<a name="switch-role-cli-scenario-ec2-instance"></a>

Immagina di usarne due Account AWS e di voler consentire a un'applicazione in esecuzione su un'istanza Amazon EC2 di eseguire [AWS CLI](https://aws.amazon.com/cli/)comandi in entrambi gli account. Supponiamo che l'istanza EC2 esista nell'account `111111111111`. 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 questo scopo, il ruolo del profilo dell'istanza EC2 `abcd` deve disporre della policy di autorizzazioni seguente:

***Policy di autorizzazioni del ruolo `abcd` 111111111111 dell'account***

------
#### [ JSON ]

****  

```
{
    "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***

------
#### [ JSON ]

****  

```
{
    "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***

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "efghTrustPolicy",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::111111111111:role/abcd"}
        }
    ]
}
```

------

Per eseguire quindi AWS CLI i comandi nell'account`222222222222`, è necessario aggiornare il file di configurazione CLI. Identifica il ruolo `efgh` come il "profilo" e il ruolo del profilo dell'istanza EC2 `abcd` come "origine delle credenziali" nel file di configurazione di AWS CLI . I comandi della CLI vengono quindi eseguiti con le autorizzazioni del ruolo `efgh`, non il ruolo `abcd` originale.

**Nota**  
Per motivi di sicurezza, è possibile utilizzare AWS CloudTrail per controllare 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 come. `AWS-CLI-session-nnnnnnnn` *nnnnnnnn*Ecco un numero intero che rappresenta l'ora espressa in [Unix Epoch Time](http://wikipedia.org/wiki/Unix_time) (il numero di secondi trascorsi dalla mezzanotte UTC del 1° gennaio 1970). *Per ulteriori informazioni, consultate [CloudTrail Event Reference](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/eventreference.html) nella Guida per l'utente.AWS CloudTrail *

**Per consentire a un ruolo del profilo dell'istanza EC2 di passare a un ruolo tra account (AWS CLI)**

1. Non è necessario configurare un profilo predefinito della CLI. Al contrario, puoi caricare le credenziali dai metadati del profilo dell'istanza EC2. Crea un nuovo profilo per il ruolo nel file `.aws/config`. L'esempio seguente crea un profilo `instancecrossaccount` che passa al ruolo `efgh` nell'account `222222222222`. Quando questo profilo viene richiamato, AWS CLI utilizza le credenziali dei metadati del profilo dell'istanza EC2 per richiedere le credenziali per il ruolo. Per questo motivo, il ruolo del profilo dell'istanza EC2 deve disporre delle autorizzazioni `sts:AssumeRole` per il ruolo specificato nel `role_arn`.

   ```
   [profile instancecrossaccount]
   role_arn = arn:aws:iam::222222222222:role/efgh
   credential_source = Ec2InstanceMetadata
   ```

1. Dopo aver creato il nuovo profilo, qualsiasi AWS CLI comando che specifica il parametro `--profile instancecrossaccount` viene eseguito con le autorizzazioni associate al `efgh` ruolo nell'account. `222222222222`

   ```
   aws s3 ls amzn-s3-demo-bucket2 --profile instancecrossaccount
   ```

   Questo comando funziona se le autorizzazioni che vengono assegnate al ruolo `efgh` consentono di elencare gli utenti nell' Account AWS corrente.

1. Per tornare alle autorizzazioni del profilo dell'istanza EC2 originale nell'account `111111111111`, esegui i comandi della CLI senza il parametro `--profile`.

Per ulteriori informazioni, consulta [Assunzione di un ruolo](https://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html) nella *Guida per l'utente di AWS Command Line Interface *.