

**Questa documentazione è valida AWS CLI solo per la versione 1.**

Abbiamo annunciato l' end-of-supportimminente rilascio della AWS CLI versione 1. Ti consigliamo di migrare alla AWS CLI versione 2. [Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio.](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/) Per la documentazione relativa alla versione 2 di AWS CLI, consulta la [Guida per l'utente della versione 2](https://docs.aws.amazon.com/cli/latest/userguide/).

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

# Credenziali di autenticazione e accesso per AWS CLI
<a name="cli-chap-authentication"></a>

È necessario stabilire la modalità di AWS CLI autenticazione AWS quando si sviluppa con AWS i servizi. Per configurare le credenziali per l'accesso programmatico per il AWS CLI, scegliete una delle seguenti opzioni. Le opzioni sono elencate in ordine di raccomandazione.


****  

| Tipo di autenticazione | Scopo | Istruzioni | 
| --- | --- | --- | 
| Credenziali a breve termine per utenti IAM | Utilizza le credenziali a breve termine degli utenti IAM, che sono più sicure delle credenziali a lungo termine. Se le tue credenziali sono compromesse, è previsto un periodo di tempo limitato in cui possono essere utilizzate prima della scadenza. | [Autenticazione con credenziali a breve termine per AWS CLI](cli-authentication-short-term.md) | 
|  su un’istanza Amazon EC2.  | Utilizza i metadati dell’istanza Amazon EC2 per richiedere delle credenziali temporanee utilizzando il ruolo assegnato all’istanza Amazon EC2. | [Utilizzo dei metadati delle istanze Amazon EC2 come credenziali nel AWS CLI](cli-configure-metadata.md) | 
| Assumere ruoli per le autorizzazioni | Associa un altro metodo di credenziali e assumi un ruolo per l’accesso temporaneo a cui l’utente dei Servizi AWS potrebbe non avere accesso. | [Utilizzo di un ruolo IAM in AWS CLI](cli-configure-role.md) | 
| Credenziali a lungo termine per utenti IAM | (Non raccomandato) Utilizzare credenziali a lungo termine, che non hanno scadenza. | [Autenticazione tramite credenziali utente IAM per AWS CLI](cli-authentication-user.md) | 
| Archiviazione esterna degli utenti della  | (Non raccomandato) Associare un altro metodo di credenziali ma archiviare i valori delle credenziali in una posizione esterna alla AWS CLI. Questo metodo è sicuro solo quanto la posizione esterna in cui sono archiviate le credenziali. | [Acquisizione di credenziali con un processo esterno in AWS CLI](cli-configure-sourcing-external.md) | 

## Configurazione e precedenza delle credenziali
<a name="cli-chap-authentication-precedence"></a>

Le credenziali e le impostazioni di configurazione si trovano in più posizioni, ad esempio nelle variabili di sistema o di ambiente utente, nei file di AWS configurazione locali, oppure sono dichiarate esplicitamente nella riga di comando come parametro. Alcune posizioni hanno la precedenza su altre. Le credenziali e le impostazioni di configurazione AWS CLI hanno la precedenza nell'ordine seguente:

1. **[Opzioni della riga di comando](cli-configure-options.md)**: sovrascrive le impostazioni in qualsiasi altra posizione, come i parametri `--region`, `--output` e `--profile`.

1. **[Variabili di ambiente](cli-configure-envvars.md)**: puoi archiviare i valori nelle variabili di ambiente del sistema.

1. **[Assumere un ruolo](cli-configure-role.md)**: assumi le autorizzazioni di un ruolo IAM tramite la configurazione o il comando [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html).

1. **[Assumere un ruolo con l’identità web](cli-configure-role.md)**: assumi le autorizzazioni di un ruolo IAM utilizzando l’identità web tramite la configurazione o il comando [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html).

1. **[File delle credenziali della CLI](cli-configure-files.md)**: i file `credentials` e `config` vengono aggiornati quando esegui il comando `aws configure`. Il file `credentials` si trova in `~/.aws/credentials` su Linux o macOS o in `C:\Users\USERNAME\.aws\credentials` su Windows.

1. **[Processo personalizzato](cli-configure-sourcing-external.md)**: ottieni le tue credenziali da una fonte esterna.

1. **[File di configurazione](cli-configure-files.md)**: i file `credentials` e `config` vengono aggiornati quando esegui il comando `aws configure`. Il file `config` si trova in `~/.aws/config` su Linux o macOS o in `C:\Users\USERNAME\.aws\config` su Windows.

1. **[Credenziali del container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)**: puoi associare un ruolo IAM a ciascuna delle definizioni di attività di Amazon Elastic Container Service (Amazon ECS). Le credenziali temporanee per tale ruolo sono quindi disponibili per i contenitori dell'attività. Per ulteriori informazioni, consulta [Ruoli IAM per le attività](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) nella *Guida per sviluppatori di Amazon Elastic Container Service*.

1. **[Credenziali del profilo dell’istanza Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)**: è possibile associare un ruolo IAM a ciascuna istanza Amazon Elastic Compute Cloud (Amazon EC2). Le credenziali temporanee per tale ruolo sono quindi disponibili per il codice in esecuzione nell'istanza. Le credenziali vengono distribuite tramite il servizio di metadati di Amazon EC2. Per ulteriori informazioni, consulta [Ruoli IAM per Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) nella Guida per l’utente di Amazon EC2 e in [Utilizzo dei profili delle istanze](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) nella *Guida per l’utente di IAM*.

## Argomenti aggiuntivi in questa sezione
<a name="cli-chap-authentication-topics"></a>
+ [Autenticazione con credenziali a breve termine per AWS CLI](cli-authentication-short-term.md)
+ [Utilizzo di un ruolo IAM in AWS CLI](cli-configure-role.md)
+ [Autenticazione tramite credenziali utente IAM per AWS CLI](cli-authentication-user.md)
+ [Utilizzo dei metadati delle istanze Amazon EC2 come credenziali nel AWS CLI](cli-configure-metadata.md)
+ [Acquisizione di credenziali con un processo esterno in AWS CLI](cli-configure-sourcing-external.md)

# Autenticazione con credenziali a breve termine per AWS CLI
<a name="cli-authentication-short-term"></a>

Ti suggeriamo di configurare l’SDK o lo strumento per utilizzare l’[autenticazione Centro identità IAM](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) con opzioni di durata della sessione estesa. Tuttavia, è possibile copiare e utilizzare le credenziali temporanee disponibili nel portale di accesso. AWS Le nuove credenziali dovranno essere copiate quando scadono. È possibile utilizzare le credenziali temporanee in un profilo o utilizzarle come valori per le proprietà di sistema e le variabili di ambiente.

1. [Accedere al portale di AWS accesso](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosignin.html).

1. Segui [queste istruzioni](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html) per copiare le credenziali del ruolo IAM dal portale di AWS accesso.

   1. Per la fase 2 delle istruzioni collegate, scegli l' AWS account e il nome del ruolo IAM che garantiscono l'accesso per le tue esigenze di sviluppo. Questo ruolo in genere ha un nome simile **PowerUserAccess**a **Developer**. 

   1. Per la fase 4, seleziona l’opzione **Aggiungi un profilo al file delle credenziali AWS ** e copia il contenuto. 

1. Crea o apri il file delle credenziali `credentials` condiviso. Questo file è denominato `~/.aws/credentials` su sistemi Linux e macOS e `%USERPROFILE%\.aws\credentials` su Windows. Per ulteriori informazioni, consulta [Impostazioni dei file di configurazione e credenziali in AWS CLI](cli-configure-files.md). 

1. Aggiungi il testo seguente al file `credentials` condiviso. Sostituisci i valori di esempio con le credenziali che hai copiato. 

   ```
   [default] 
   aws_access_key_id = AKIAIOSFODNN7EXAMPLE 
   aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
   ```

1. Aggiungi la Regione e il formato predefiniti preferiti al file `config` condiviso. 

   ```
   [default]
   region=us-west-2
   output=json
   
   [profile user1]
   region=us-east-1
   output=text
   ```

Quando l’SDK crea un client di servizio, accederà a queste credenziali temporanee e le utilizzerà per ogni richiesta. Le impostazioni per il ruolo IAM scelto nella fase 2a determinano [per quanto tempo le credenziali temporanee sono valide](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html). La durata massima è di dodici ore.

Ripeti queste fasi ogni volta che scadono le tue credenziali.

# Utilizzo di un ruolo IAM in AWS CLI
<a name="cli-configure-role"></a>

Un [ruolo AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) è uno strumento di autorizzazione che consente a un utente di ottenere autorizzazioni aggiuntive (o diverse) o di ottenere le autorizzazioni per eseguire azioni in un account diverso AWS . 

**Topics**
+ [Prerequisiti](#cli-role-prereqs)
+ [Panoramica sull’utilizzo dei ruoli IAM](#cli-role-overview)
+ [Configurazione e utilizzo di un ruolo](#cli-role-prepare)
+ [Utilizzo dell'autenticazione a più fattori](#cli-configure-role-mfa)
+ [Ruoli per più account e ID esterno](#cli-configure-role-xaccount)
+ [Specifica di un nome di sessione del ruolo per semplificare l'audit](#cli-configure-role-session-name)
+ [Assunzione di un ruolo con un'identità Web](#cli-configure-role-oidc)
+ [Cancellazione delle credenziali nella cache](#cli-configure-role-cache)

## Prerequisiti
<a name="cli-role-prereqs"></a>

Per eseguire i comandi `iam`, è necessario installare e configurare la AWS CLI. Questo include l’impostazione di un profilo configurato, ad esempio presupponendo che un ruolo sia associato a un altro metodo di credenziali. Per ulteriori informazioni, consulta [Installazione, aggiornamento e disinstallazione della AWS CLI](cli-chap-install.md). 

## Panoramica sull’utilizzo dei ruoli IAM
<a name="cli-role-overview"></a>

Puoi configurare AWS Command Line Interface (AWS CLI) per utilizzare un ruolo IAM definendo un profilo per il ruolo nel file. `~/.aws/config` 

L'esempio seguente mostra un profilo del ruolo denominato `marketingadmin`. Se esegui comandi con `--profile marketingadmin` (o li specifichi con la [variabile di AWS\$1PROFILE ambiente](cli-configure-envvars.md)), AWS CLI utilizza le credenziali definite in un profilo separato `user1` per assumere il ruolo con Amazon Resource Name (`arn:aws:iam::123456789012:role/marketingadminrole`ARN). Puoi eseguire tutte le operazioni consentite dalle autorizzazioni assegnate a tale ruolo.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
source_profile = user1
```

Puoi specificare un elemento `source_profile` che punti a un profilo denominato separato contenente le credenziali utente con l’autorizzazione per utilizzare il ruolo. Nell'esempio precedente il profilo `marketingadmin` utilizza le credenziali del profilo `user1`. Quando specifichi che un AWS CLI comando deve utilizzare il profilo`marketingadmin`, cerca AWS CLI automaticamente le credenziali per il `user1` profilo collegato e le usa per richiedere credenziali temporanee per il ruolo IAM specificato. La CLI utilizza l'AssumeRoleoperazione [sts:](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) in background per eseguire questa operazione. Tali credenziali temporanee vengono quindi utilizzate per eseguire il comando AWS CLI richiesto. Al ruolo specificato devono essere associate politiche di autorizzazione IAM che consentano l'esecuzione del AWS CLI comando richiesto.

Per eseguire un AWS CLI comando dall'interno di un'istanza Amazon Elastic Compute Cloud (Amazon EC2) o da un contenitore Amazon Elastic Container Service (Amazon ECS), puoi utilizzare un ruolo IAM collegato al profilo dell'istanza o al contenitore. Se non specifichi alcun profilo o non imposti variabili di ambiente, tale ruolo viene utilizzato direttamente. In questo modo, potrai evitare di archiviare chiavi di accesso di lunga durata nelle istanze. Puoi anche utilizzare i ruoli dell'istanza o del container solo per ottenere le credenziali per un altro ruolo. A tale scopo, usa `credential_source` (anziché `source_profile`) per specificare come trovare le credenziali. L'attributo `credential_source` supporta i seguenti valori:
+ `Environment`: recupera le credenziali di origine dalle variabili di ambiente.
+ `Ec2InstanceMetadata`: utilizza il ruolo IAM collegato al profilo dell’istanza Amazon EC2.
+ `EcsContainer`: utilizza il ruolo IAM collegato al container Amazon ECS.

Nell’esempio seguente viene mostrato lo stesso ruolo `marketingadminrole` utilizzato facendo riferimento a un profilo dell’istanza Amazon EC2.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
```

Quando si richiama un ruolo, sono disponibili opzioni aggiuntive che è possibile richiedere, ad esempio l'utilizzo dell'autenticazione a più fattori e di un ID esterno (utilizzato da società terze per accedere alle risorse dei client). Puoi anche specificare nomi di sessione di ruolo univoci che possono essere controllati più facilmente nei log. AWS CloudTrail 

## Configurazione e utilizzo di un ruolo
<a name="cli-role-prepare"></a>

Quando esegui comandi utilizzando un profilo che specifica un ruolo IAM, AWS CLI utilizza le credenziali del profilo di origine per chiamare AWS Security Token Service (AWS STS) e richiedere credenziali temporanee per il ruolo specificato. L'utente nel profilo di origine deve disporre dell'autorizzazione per chiamare `sts:assume-role` per il ruolo nel profilo specificato. Il ruolo deve disporre di una relazione di trust che consente all'utente nel profilo di origine di usare il ruolo. Il processo di recupero e quindi di utilizzo delle credenziali temporanee per un ruolo è spesso definito come *assunzione del ruolo*.

Puoi creare un ruolo in IAM con le autorizzazioni che gli utenti devono assumere seguendo la procedura descritta in [Creating a Role to Delegate Permissions to an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) nella *Guida per l’utente di AWS Identity and Access Management *. Se il ruolo e l'utente del profilo di origine appartengono allo stesso account, puoi immettere il tuo ID account durante la configurazione della relazione di trust del ruolo.

Dopo aver creato il ruolo, modifica la relazione di fiducia per consentire all'utente di assumerlo. 

L'esempio seguente mostra una policy di trust che può essere collegata a un ruolo. La policy fa in modo che il ruolo possa essere assunto da qualsiasi utente nell’account 123456789012, ***se*** l’amministratore di tale account concede esplicitamente l’autorizzazione `sts:AssumeRole` all’utente.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

La policy di trust non concede attualmente autorizzazioni. L'amministratore dell'account deve delegare l'autorizzazione per assumere il ruolo a singoli utenti collegando una policy con le autorizzazioni appropriate. Nell’esempio seguente viene illustrata una policy che puoi collegare a un utente e che permette a tale utente di assumere solo il ruolo `marketingadminrole`. Per ulteriori informazioni su come concedere a un utente l’accesso per assumere un ruolo, consulta [Concessione di autorizzazioni agli utenti per il cambio di ruoli](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) nella *Guida per l’utente di IAM*.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::123456789012:role/marketingadminrole"
    }
  ]
}
```

------

L'utente non deve disporre di autorizzazioni aggiuntive per eseguire AWS CLI i comandi utilizzando il profilo del ruolo. Al contrario, le autorizzazioni per eseguire il comando provengono da quelle associate al *ruolo*. Si allegano politiche di autorizzazione al ruolo per specificare quali azioni possono essere eseguite su quali AWS risorse. Per ulteriori informazioni su come collegare le autorizzazioni a un ruolo, il cui funzionamento è del tutto identico a quello di un utente, consulta [Modifica delle autorizzazioni per un utente IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) nella *Guida per l’utente di IAM*.

Ora che il profilo del ruolo, le autorizzazioni del ruolo, la relazione di trust del ruolo e le autorizzazioni utente sono configurate correttamente, puoi utilizzare il ruolo nella riga di comando richiamando l'opzione `--profile`. Ad esempio, il comando seguente chiama il comando `ls` di Amazon S3 utilizzando le autorizzazioni collegate al ruolo `marketingadmin`, come definito dall’esempio all’inizio di questo argomento.

```
$ aws s3 ls --profile marketingadmin
```

Per utilizzare il ruolo per diverse chiamate, puoi impostare la variabile di ambiente `AWS_PROFILE` per la sessione corrente dalla riga di comando. Sebbene la variabile di ambiente sia definita, non è necessario specificare l'opzione `--profile` su ogni comando. 

**Linux o macOS**

```
$ export AWS_PROFILE=marketingadmin
```

**Windows**

```
C:\> setx AWS_PROFILE marketingadmin
```

Per ulteriori informazioni sulla configurazione di utenti e ruoli, consulta [Identità IAM (utenti, gruppi e ruoli)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) e [Ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-roles.html) nella *Guida per l’utente di IAM*.

## Utilizzo dell'autenticazione a più fattori
<a name="cli-configure-role-mfa"></a>

Per una maggiore sicurezza, puoi richiedere agli utenti di fornire una chiave monouso generata da un dispositivo di autenticazione a più fattori (MFA), da un dispositivo U2F o da un'app per dispositivi mobili durante il tentativo di effettuare una chiamata utilizzando il profilo del ruolo.

In primo luogo, puoi scegliere di modificare la relazione di trust sul ruolo IAM per richiedere la MFA. Ciò impedisce a chiunque di utilizzare il ruolo senza prima autenticarsi utilizzando MFA. Per un esempio, consulta la riga `Condition` nel seguente esempio. Questa policy consente all’utente denominato `anika` di assumere il ruolo collegato alla policy, ma solo se esegue l’autenticazione utilizzando MFA. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::123456789012:user/anika" },
      "Action": "sts:AssumeRole",
      "Condition": { "Bool": { "aws:multifactorAuthPresent": true } }
    }
  ]
}
```

------

Quindi, aggiungi una riga al profilo del ruolo che specifica l'ARN del dispositivo MFA dell'utente. Le seguenti voci del file `config` di esempio illustrano due profili di ruolo che utilizzano le chiavi di accesso per l’utente `anika` per richiedere le credenziali provvisorie per il ruolo `cli-role`. L'utente `anika` ha le autorizzazioni per assumere quel ruolo concesse dalla policy di trust del ruolo.

```
[profile role-without-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile=cli-user

[profile role-with-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile = cli-user
mfa_serial = arn:aws:iam::128716708097:mfa/cli-user

[profile cli-user]
region = us-west-2
output = json
```

L'impostazione `mfa_serial` può richiedere un ARN, come illustrato, o il numero di serie di un token hardware MFA.

Il primo profilo, `role-without-mfa`, non richiede MFA. Tuttavia, poiché la precedente policy di trust di esempio associata al ruolo richiede MFA, qualsiasi tentativo di eseguire un comando con questo profilo non riesce.

```
$ aws iam list-users --profile role-without-mfa

An error occurred (AccessDenied) when calling the AssumeRole operation: Access denied
```

Il secondo profilo `role-with-mfa`, identifica un dispositivo MFA da utilizzare. Quando l'utente tenta di eseguire un AWS CLI comando con questo profilo, AWS CLI richiede all'utente di inserire la password monouso (OTP) fornita dal dispositivo MFA. Se l'autenticazione MFA ha esito positivo, il comando esegue l'operazione richiesta. La password monouso non viene visualizzata sullo schermo.

```
$ aws iam list-users --profile role-with-mfa
Enter MFA code for arn:aws:iam::123456789012:mfa/cli-user:
{
    "Users": [
        {
            ...
```

## Ruoli per più account e ID esterno
<a name="cli-configure-role-xaccount"></a>

Puoi abilitare gli utenti in modo che assumano ruoli appartenenti ad account diversi configurando il ruolo come ruolo per più account. Durante la creazione del ruolo, imposta il tipo di ruolo su **Another AWS account**, come descritto in [Creating a Role to Delegate Permissions to an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html). Facoltativamente, seleziona **Require MFA (Richiedi MFA)**. **Require MFA (Richiedi MFA)** configura la condizione appropriata nella relazione di trust, come descritto in [Utilizzo dell'autenticazione a più fattori](#cli-configure-role-mfa).

Se utilizzi un [ID esterno](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) per fornire ulteriore controllo su chi può usare un ruolo per diversi account, devi aggiungere il parametro `external_id` al profilo del ruolo. Ciò viene utilizzato in genere solo quando l'altro account è controllato da qualcuno esterno all'azienda o organizzazione.

```
[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
external_id = 123456
```

## Specifica di un nome di sessione del ruolo per semplificare l'audit
<a name="cli-configure-role-session-name"></a>

Quando molti individui condividono un ruolo, l'audit diventa più difficile. Si supponga che tu voglia associare ogni operazione richiamata alla persona che ha richiamato l'operazione. Tuttavia, quando la persona utilizza un ruolo, l'assunzione del ruolo da parte dell'individuo è un'operazione distinta rispetto alla chiamata di un'operazione ed è pertanto necessario correlare manualmente le due cose.

Puoi semplificare questa operazione specificando nomi univoci delle sessioni del ruolo quando gli utenti assumono un ruolo. A tale scopo, aggiungi un parametro `role_session_name` a ogni profilo denominato nel file `config` che specifica un ruolo. Il valore `role_session_name` viene passato all'operazione `AssumeRole` e diventa parte dell'ARN della sessione del ruolo. È inoltre inclusa nei AWS CloudTrail registri di tutte le operazioni registrate.

Ad esempio, puoi creare un profilo basato su ruoli come segue. 

```
[profile namedsessionrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
role_session_name = Session_Maria_Garcia
```

Di conseguenza, la sessione del ruolo ha il seguente ARN.

```
arn:aws:iam::234567890123:assumed-role/SomeRole/Session_Maria_Garcia
```

Inoltre, tutti i AWS CloudTrail registri includono il nome della sessione di ruolo nelle informazioni acquisite per ogni operazione.

## Assunzione di un ruolo con un'identità Web
<a name="cli-configure-role-oidc"></a>

È possibile configurare un profilo per indicare che AWS CLI devono assumere un ruolo utilizzando la [federazione delle identità Web e Open ID Connect (OIDC](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html)). Quando lo specificate in un profilo, effettua AWS CLI automaticamente la AWS STS `AssumeRoleWithWebIdentity` chiamata corrispondente per voi.

**Nota**  
Quando specificate un profilo che utilizza un ruolo IAM, AWS CLI effettua le chiamate appropriate per recuperare le credenziali temporanee. Queste credenziali sono archiviate in `~/.aws/cli/cache`. AWS CLI I comandi successivi che specificano lo stesso profilo utilizzano le credenziali temporanee memorizzate nella cache fino alla scadenza. A quel punto, aggiorna AWS CLI automaticamente le credenziali.

Per recuperare e utilizzare le credenziali temporanee utilizzando la federazione delle identità Web, puoi specificare i seguenti valori di configurazione in un profilo condiviso.

[role\$1arn](#cli-configure-role)  
Specificare l'ARN del ruolo da assumere.

web\$1identity\$1token\$1file  
Speciifica il percorso di un file che contiene un token di accesso OAuth 2.0 o un token OpenID Connect ID fornito dal provider di identità. L' AWS CLI carica questo file e passa il relativo contenuto come argomento `WebIdentityToken` all'operazione `AssumeRoleWithWebIdentity`.

[role\$1session\$1name](#cli-configure-role-session-name)  
Specifica un nome facoltativo applicato a questa sessione assume-role.

Di seguito è riportato un esempio di configurazione per la quantità minima di configurazione necessaria per configurare un profilo del ruolo assunto con un'identità Web:

```
# In ~/.aws/config

[profile web-identity]
role_arn=arn:aws:iam:123456789012:role/RoleNameToAssume
web_identity_token_file=/path/to/a/token
```

Puoi anche fornire questa configurazione utilizzando [variabili di ambiente](cli-configure-envvars.md):

AWS\$1ROLE\$1ARN  
L'ARN del ruolo da assumere.

AWS\$1WEBFILE\$1TOKEN DI \$1IDENTITÀ  
Il percorso del file del token dell'identità Web.

AWS\$1ROLE\$1NOME\$1SESSIONE  
Il nome applicato a questa sessione assume-role.

**Nota**  
Queste variabili di ambiente attualmente si applicano solo al ruolo assumere con provider di identità Web. Non si applicano alla configurazione generale del provider dell'assunzione di ruoli.

## Cancellazione delle credenziali nella cache
<a name="cli-configure-role-cache"></a>

Quando si utilizza un ruolo, memorizza nella AWS CLI cache locale le credenziali temporanee fino alla loro scadenza. La prossima volta che provi a utilizzarle, AWS CLI tenta di rinnovarle per tuo conto. 

Se le credenziali temporanee del ruolo vengono [revocate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html), non vengono rinnovate automaticamente e i tentativi di utilizzarle non vanno a buon fine. Tuttavia, puoi eliminare la cache per AWS CLI forzare il recupero di nuove credenziali.

**Linux o macOS**

```
$ rm -r ~/.aws/cli/cache
```

**Windows**

```
C:\> del /s /q %UserProfile%\.aws\cli\cache
```

# Autenticazione tramite credenziali utente IAM per AWS CLI
<a name="cli-authentication-user"></a>

**avvertimento**  
Per evitare rischi per la sicurezza, non utilizzare gli utenti IAM per l’autenticazione quando sviluppi software creato ad hoc o lavori con dati reali. Utilizza invece la federazione con un provider di identità come [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

In questa sezione viene descritto come configurare le impostazioni di base con un utente IAM. Queste includono le credenziali di sicurezza che utilizzano i file `credentials` e `config`. .

**Contents**
+ [Fase 1: creare un utente IAM](#cli-authentication-user-create)
+ [Fase 2: ottenere le chiavi di accesso](#cli-authentication-user-get)
+ [Passaggio 3: configura il AWS CLI](#cli-authentication-user-configure.title)
  + [Uso di `aws configure`](#cli-authentication-user-configure-wizard)

## Fase 1: creare un utente IAM
<a name="cli-authentication-user-create"></a>

Crea il tuo utente IAM seguendo la procedura [Creazione di utenti IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) nella *Guida per l’utente di IAM*. 
+ Per le **opzioni di autorizzazione**, scegli **Collega direttamente le policy esistenti** in base al modo in cui desideri assegnare le autorizzazioni a questo utente.
+ La maggior parte dei tutorial SDK “Nozioni di base” utilizza il servizio Amazon S3 come esempio. Per fornire alla tua applicazione l’accesso completo ad Amazon S3, seleziona la policy `AmazonS3FullAccess` da allegare a questo utente.

## Fase 2: ottenere le chiavi di accesso
<a name="cli-authentication-user-get"></a>

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione della console IAM, seleziona **Utenti**, quindi seleziona il **`User name`** dell’utente che hai creato in precedenza. 

1. Nella pagina dell’utente, scegli la scheda **Credenziali di sicurezza**. Quindi, in **Chiavi di accesso**, seleziona **Crea chiave di accesso**.

1.  Per **Crea chiave di accesso (fase 1)**, scegli **Interfaccia a riga di comando (CLI)**.

1. Per **Crea chiave di accesso (fase 2)**, inserisci facoltativamente un tag e scegli **Avanti**. 

1. Per **Crea chiave di accesso (fase 3)**, seleziona **Scarica il file.csv** per salvare un file `.csv` con la chiave di accesso e la chiave di accesso segreta dell’utente IAM. Queste informazioni serviranno in seguito.

1. Seleziona Done (Fatto)

## Passaggio 3: configura il AWS CLI
<a name="cli-authentication-user-configure.title"></a>

Per uso generale, sono AWS CLI necessarie le seguenti informazioni:
+ ID chiave di accesso
+ Chiave di accesso segreta
+ AWS Regione
+ Formato di output

 AWS CLI Memorizza queste informazioni in un *profilo* (una raccolta di impostazioni) denominato `default` nel `credentials` file. Per impostazione predefinita, le informazioni in questo profilo vengono utilizzate quando si esegue un AWS CLI comando che non specifica esplicitamente un profilo da utilizzare. Per ulteriori informazioni sul file `credentials`, consulta [Impostazioni dei file di configurazione e credenziali in AWS CLI](cli-configure-files.md).

Per configurare AWS CLI, utilizzare una delle seguenti procedure:

**Topics**
+ [Uso di `aws configure`](#cli-authentication-user-configure-wizard)

### Uso di `aws configure`
<a name="cli-authentication-user-configure-wizard"></a>

Per uso generale, il `aws configure` comando è il modo più veloce per configurare AWS CLI l'installazione. Questa procedura guidata di configurazione richiede ogni informazione necessaria per iniziare. Se non diversamente specificato utilizzando l'`--profile`opzione, AWS CLI memorizza queste informazioni nel `default` profilo.

L’esempio seguente configura un profilo `default` utilizzando valori di esempio. Sostituirli con i propri valori come descritto nelle sezioni seguenti.

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

L’esempio seguente configura un profilo denominato `userprod` utilizzando valori di esempio. Sostituirli con i propri valori come descritto nelle sezioni seguenti.

```
$ aws configure --profile userprod
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

# Utilizzo dei metadati delle istanze Amazon EC2 come credenziali nel AWS CLI
<a name="cli-configure-metadata"></a>

Quando esegui il comando AWS CLI da un'istanza Amazon Elastic Compute Cloud (Amazon EC2), puoi semplificare l'immissione delle credenziali ai comandi. Ogni istanza di Amazon EC2 contiene metadati per i quali la AWS CLI può eseguire direttamente una query delle credenziali temporanee. Quando un ruolo IAM è collegato all'istanza, recupera AWS CLI automaticamente e in modo sicuro le credenziali dai metadati dell'istanza. 

[Per disabilitare questo servizio, utilizza la variabile di ambiente 2\$1METADATA\$1DISABLEDAWS\$1EC.](cli-configure-envvars.md#envvars-list-AWS_EC2_METADATA_DISABLED)

**Topics**
+ [Prerequisiti](#cli-configure-metadata-prereqs)
+ [Configurazione di un profilo per i metadati Amazon EC2](#cli-configure-metadata-configure)

## Prerequisiti
<a name="cli-configure-metadata-prereqs"></a>

Per utilizzare le credenziali di Amazon EC2 con AWS CLI, devi completare quanto segue:
+ Istalla e configura la AWS CLI. Per ulteriori informazioni, consultare [Installazione, aggiornamento e disinstallazione della AWS CLI](cli-chap-install.md) e [Credenziali di autenticazione e accesso per AWS CLI](cli-chap-authentication.md).
+ Conosci i file di configurazione e i profili denominati. Per ulteriori informazioni, consulta [Impostazioni dei file di configurazione e credenziali in AWS CLI](cli-configure-files.md). 
+ Hai creato un ruolo AWS Identity and Access Management (IAM) che ha accesso alle risorse necessarie e lo hai collegato all'istanza Amazon EC2 al momento del lancio. *Per ulteriori informazioni, consulta [le politiche IAM per Amazon EC2 nella Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) *User* Guide [e Concedere alle applicazioni eseguite su istanze Amazon EC2 l'accesso alle AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html) risorse nella IAM User Guide.*

## Configurazione di un profilo per i metadati Amazon EC2
<a name="cli-configure-metadata-configure"></a>

Per specificare di voler utilizzare le credenziali disponibili nel profilo dell’istanza di Amazon EC2 di hosting, inserisci la seguente sintassi nel profilo denominato nel file di configurazione. Per istruzioni dettagliate, fai riferimento alle fasi seguenti: 

```
[profile profilename]
role_arn = arn:aws:iam::123456789012:role/rolename
credential_source = Ec2InstanceMetadata
region = region
```

1. Crea un profilo nel file di configurazione.

   ```
   [profile profilename]
   ```

1. Aggiungi il ruolo IAM arn che ha accesso alle risorse necessarie.

   ```
   role_arn = arn:aws:iam::123456789012:role/rolename
   ```

1. Specifica `Ec2InstanceMetadata` come fonte delle credenziali.

   ```
   credential_source = Ec2InstanceMetadata
   ```

1. Imposta la tua Regione.

   ```
   region = region
   ```

**Esempio**

L’esempio seguente assume il ruolo *`marketingadminrole`* e utilizza la Regione `us-west-2` in un profilo dell’istanza Amazon EC2 denominato `marketingadmin`.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
region = us-west-2
```

# Acquisizione di credenziali con un processo esterno in AWS CLI
<a name="cli-configure-sourcing-external"></a>

**avvertimento**  
Il seguente argomento illustra le credenziali di approvvigionamento da un processo esterno. Potrebbe insorgere un rischio per la sicurezza se il comando per generare le credenziali diventa accessibile a utenti o processi non riconosciuti. Ti consigliamo di utilizzare le alternative sicure e supportate fornite da AWS CLI e AWS per ridurre il rischio di compromissione delle tue credenziali. Assicurati di proteggere il file `config` e altri strumenti e file di supporto per evitare la divulgazione.  
Assicurati che il tuo strumento personalizzato per le credenziali non scriva informazioni segrete, `StdErr` poiché è in AWS CLI grado di acquisire SDKs e registrare tali informazioni, esponendole potenzialmente a utenti non autorizzati.

Se disponi di un metodo per generare o cercare credenziali che non è direttamente supportato da AWS CLI, puoi configurarlo AWS CLI per utilizzarlo configurando l'`credential_process`impostazione nel file. `config` 

Puoi ad esempio includere una voce simile al seguente file `config`.

```
[profile developer]
credential_process = /opt/bin/awscreds-custom --username helen
```

**Sintassi**  
Per creare questa stringa in modo compatibile con qualsiasi sistema operativo, segui queste regole:
+ Se il percorso o il nome del file contiene uno spazio, circondare il percorso completo e il nome del file con virgolette doppie (" "). Il percorso e il nome del file possono essere composti solo dai caratteri: A-Z a-z 0-9 - \$1 . spazio
+ Se un nome di parametro o un valore di parametro contiene uno spazio, circondare tale elemento con virgolette doppie (" "). È possibile racchiudere solo il nome o il valore, non la coppia.
+ Non includere variabili di ambiente nelle stringhe. Ad esempio, non puoi includere `$HOME` o `%USERPROFILE%`.
+ Non specificare la cartella home come `~`. Devi specificare il percorso completo.

**Esempio per Windows**

```
credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
```

**Esempio per Linux o macOS**

```
credential_process = "/Users/Dave/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"
```

**Output previsto dal programma Credentials**

 AWS CLI Esegue il comando come specificato nel profilo e quindi legge i dati da. `STDOUT` Il comando specificato deve generare in `STDOUT` l'output JSON corrispondente alla sintassi seguente:

```
{
  "Version": 1,
  "AccessKeyId": "an AWS access key",
  "SecretAccessKey": "your AWS secret access key",
  "SessionToken": "the AWS session token for temporary credentials", 
  "Expiration": "ISO8601 timestamp when the credentials expire"
}
```

**Nota**  
Al momento della stesura del presente documento, la chiave `Version` deve essere configurata su `1`. Questo valore potrebbe incrementare nel tempo, man mano che la struttura evolve.

La `Expiration` chiave è un timestamp [ISO8601](https://en.wikipedia.org/wiki/ISO_8601)formattato. Se la chiave `Expiration` non è presente nell'output dello strumento, l'interfaccia a riga di comando presuppone che le credenziali siano a lungo termine, non soggette ad aggiornamento. In caso contrario, le credenziali vengono considerate provvisorie e aggiornate automaticamente mediante una nuova esecuzione del comando `credential_process` prima della relativa scadenza.

**Nota**  
 AWS CLI ***Non*** memorizza nella cache le credenziali di processo esterne nel modo in cui presuppone le credenziali di ruolo. Se il caching è necessario, dovrai implementarlo nel processo esterno.

Il processo esterno può restituire un codice diverso da zero per indicare che si è verificato un errore durante il recupero delle credenziali.