

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

# Passaggi che utilizzano le policy per gestire l'accesso alle risorse Amazon S3
<a name="example-walkthroughs-managing-access"></a>

Questo argomento contiene i seguenti esempi di procedure guidate introduttive per concedere l'accesso alle risorse di Amazon S3. Questi esempi lo utilizzano Console di gestione AWS per creare risorse (bucket, oggetti, utenti) e concedere loro autorizzazioni. Gli esempi mostrano quindi come verificare le autorizzazioni utilizzando gli strumenti a riga di comando per evitare di scrivere il codice. Forniamo comandi utilizzando sia il AWS Command Line Interface (AWS CLI) che il. AWS Tools for Windows PowerShell
+ [Esempio 1: il proprietario del bucket concede agli utenti le autorizzazioni per il bucket](example-walkthroughs-managing-access-example1.md)

  Per default, gli utenti IAM creati nell'account non dispongono delle autorizzazioni. In questo esercizio agli utenti verrà concessa un'autorizzazione per eseguire le operazioni sui bucket e sugli oggetti.
+ [Esempio 2: il proprietario del bucket concede autorizzazioni per il bucket multiaccount](example-walkthroughs-managing-access-example2.md)

  In questo esercizio un proprietario del bucket, Account A, concede le autorizzazioni multiaccount a un altro Account AWS, Account B, che delega quindi queste autorizzazioni agli utenti nel suo account. 
+ **Gestione delle autorizzazioni per l'oggetto quando il proprietario dell'oggetto non corrisponde al proprietario del bucket**

  Gli scenari di esempio in questo caso riguardano un proprietario del bucket che concede ad altri le autorizzazioni per l'oggetto, sebbene non tutti gli oggetti nel bucket siano di sua proprietà. Di quali autorizzazioni ha bisogno il proprietario del bucket e come può delegare tali autorizzazioni?

  Chi Account AWS crea un bucket si chiama proprietario del *bucket.* Il proprietario può concedere altre Account AWS autorizzazioni per caricare oggetti e chi crea Account AWS gli oggetti ne è proprietario. Il proprietario del bucket non dispone delle autorizzazioni per gli oggetti creati dagli altri Account AWS. Se il proprietario del bucket scrive una policy del bucket che concede l'accesso agli oggetti, la policy non si applica agli oggetti di proprietà di altri account. 

  In questo caso il proprietario dell'oggetto deve in primo luogo concedere le autorizzazioni al proprietario del bucket utilizzando un'ACL dell'oggetto. Il proprietario del bucket può quindi delegare le autorizzazioni relative agli oggetti ad altri, agli utenti del proprio account o a un altro Account AWS, come illustrato dai seguenti esempi.
  + [Esempio 3: il proprietario del bucket concede autorizzazioni per gli oggetti che non sono di sua proprietà](example-walkthroughs-managing-access-example3.md)

    In questo esercizio il proprietario del bucket ottiene prima le autorizzazioni dal proprietario dell'oggetto, Il proprietario del bucket quindi delega queste autorizzazioni agli utenti nel suo account.
  + [Esempio 4 - Proprietario di un bucket che concede un'autorizzazione multi-account agli oggetti di cui non è proprietario](example-walkthroughs-managing-access-example4.md)

    Dopo aver ricevuto le autorizzazioni dal proprietario dell'oggetto, il proprietario del bucket non può delegare l'autorizzazione ad altri Account AWS perché la delega tra account non è supportata (vedi). [Delega delle autorizzazioni](access-policy-language-overview.md#permission-delegation) Invece, il proprietario del bucket può creare un ruolo IAM con autorizzazioni per eseguire operazioni specifiche (come get object) e consentire a un altro di assumere quel ruolo. Account AWS Chiunque assuma il ruolo potrà quindi accedere agli oggetti. Questo esempio mostra in che modo un proprietario del bucket può utilizzare un ruolo IAM per abilitare questa delega multiaccount. 

## Prima di provare le procedure guidate di esempio
<a name="before-you-try-example-walkthroughs-manage-access"></a>

Questi esempi utilizzano il Console di gestione AWS per creare risorse e concedere autorizzazioni. Per verificare le autorizzazioni, gli esempi utilizzano gli strumenti della riga di comando e AWS CLI AWS Tools for Windows PowerShell, quindi, non è necessario scrivere alcun codice. Per testare le autorizzazioni, è necessario configurare uno di questi strumenti. Per ulteriori informazioni, consulta [Impostazione degli strumenti per le visite guidate](policy-eval-walkthrough-download-awscli.md). 

Inoltre, quando si creano le risorse, questi esempi non utilizzano le credenziali dell'utente root di Account AWS. ma viene creato un utente amministratore in questi account per eseguire queste attività. 

### Informazioni sull'uso di un utente amministratore per creare risorse e concedere autorizzazioni
<a name="about-using-root-credentials"></a>

AWS Identity and Access Management (IAM) sconsiglia di utilizzare le credenziali dell'utente root dell' Account AWS per effettuare richieste. Invece, crea un utente o un ruolo IAM, concedi a tale utente o ruolo l'accesso completo, quindi utilizza le relative credenziali per fare richieste. Questo utente viene definito utente o ruolo amministratore. Per ulteriori informazioni, consultare la sezione relativa a [credenziali Utente root dell'account AWS e identità IAM](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html) nella *Riferimenti generali di AWS* e [Best practice di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente di IAM*.

In tutte le procedure guidate di esempio riportate in questa sezione vengono utilizzate le credenziali dell'utente amministratore. Se non avete creato un utente amministratore per il vostro Account AWS, negli argomenti viene illustrato come fare. 

Per accedere Console di gestione AWS utilizzando le credenziali utente, devi utilizzare l'URL di accesso utente IAM. La [console IAM](https://console.aws.amazon.com/iam/) fornisce questo URL per l' Account AWS. Negli argomenti di questa sezione viene illustrato come ottenere l'URL.

# Impostazione degli strumenti per le visite guidate
<a name="policy-eval-walkthrough-download-awscli"></a>

Gli esempi introduttivi (vedi[Passaggi che utilizzano le policy per gestire l'accesso alle risorse Amazon S3](example-walkthroughs-managing-access.md)) utilizzano il Console di gestione AWS per creare risorse e concedere autorizzazioni. Per testare le autorizzazioni, gli esempi utilizzano gli strumenti della riga di comando, AWS Command Line Interface (AWS CLI) e AWS Tools for Windows PowerShell, quindi non è necessario scrivere alcun codice. Per testare le autorizzazioni, è necessario configurare uno di questi strumenti. 

**Per configurare il AWS CLI**

1. Scarica e configura la AWS CLI. Per le istruzioni, consulta i seguenti argomenti nella *Guida per l'utente dell'AWS Command Line Interface *: 

    [Installare o aggiornare alla versione più recente del programma AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) 

    [Nozioni di base su AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 

1. Impostare il profilo di default. 

   Le credenziali utente vengono memorizzate nel file di AWS CLI configurazione. Crea un profilo predefinito nel file di configurazione utilizzando le tue credenziali. Account AWS Per istruzioni su come trovare e modificare il file di AWS CLI configurazione, consulta Impostazioni del file di [configurazione e credenziali](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

   ```
   [default]
   aws_access_key_id = access key ID
   aws_secret_access_key = secret access key
   region = us-west-2
   ```

1. Verificare la configurazione digitando i comandi riportati di seguito al prompt dei comandi. Poiché entrambi questi comandi non forniscono credenziali in modo esplicito, vengono utilizzate le credenziali del profilo di default.
   + Prova il comando `help`.

     ```
     aws help
     ```
   + Per ottenere un elenco dei bucket sull'account configurato, utilizza il comando `aws s3 ls`.

     ```
     aws s3 ls
     ```

Man mano che si procede, si creano utenti e si salvano le credenziali degli utenti nei file di configurazione creando profili, come mostra l'esempio seguente. Questi profili hanno i nomi di `AccountAadmin` e `AccountBadmin`.

```
[profile AccountAadmin]
aws_access_key_id = User AccountAadmin access key ID
aws_secret_access_key = User AccountAadmin secret access key
region = us-west-2

[profile AccountBadmin]
aws_access_key_id = Account B access key ID
aws_secret_access_key = Account B secret access key
region = us-east-1
```

Per eseguire un comando utilizzando queste credenziali utente, aggiungere il parametro `--profile` specificando il nome del profilo. Il AWS CLI comando seguente recupera un elenco di oggetti in *`examplebucket`* e specifica il profilo. `AccountBadmin` 

```
aws s3 ls s3://examplebucket --profile AccountBadmin
```

In alternativa, è possibile configurare un set di credenziali utente come profilo di default modificando la variabile di ambiente `AWS_DEFAULT_PROFILE` dal prompt dei comandi. Dopo aver eseguito questa operazione, ogni volta che si eseguono AWS CLI comandi senza il `--profile` parametro, AWS CLI utilizza il profilo impostato nella variabile di ambiente come profilo predefinito.

```
$ export AWS_DEFAULT_PROFILE=AccountAadmin
```

**Per configurare AWS Tools for Windows PowerShell**

1. Scarica e configura la AWS Tools for Windows PowerShell. Per le istruzioni, consulta la sezione [Installazione di AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html#pstools-installing-download) nella *Guida all'utente AWS Strumenti per PowerShell *. 
**Nota**  
Per caricare il AWS Tools for Windows PowerShell modulo, è necessario abilitare l'esecuzione PowerShell dello script. Per ulteriori informazioni, consulta [Abilita l'esecuzione di script](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html#enable-script-execution) nella *Guida all'utente AWS Strumenti per PowerShell *.

1. Per queste procedure dettagliate, è necessario specificare AWS le credenziali per sessione utilizzando il comando. `Set-AWSCredentials` Il comando salva le credenziali in uno store permanente (parametro `-StoreAs `).

   ```
   Set-AWSCredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas string
   ```

1. Verificare la configurazione.
   + Per ottenere un elenco dei comandi disponibili che si possono utilizzare per le operazioni su Amazon S3, esegui il comando `Get-Command`. 

     ```
     Get-Command -module awspowershell -noun s3* -StoredCredentials string
     ```
   + Per recuperare un elenco di oggetti in un bucket, esegui il comando `Get-S3Object`.

     ```
     Get-S3Object -BucketName bucketname -StoredCredentials string
     ```

Per un elenco di comandi, vedere [AWS Tools](https://docs.aws.amazon.com/powershell/latest/reference/Index.html) for Cmdlet Reference. PowerShell 

Ora sei pronto a provare le guide. Segui i link forniti all'inizio di ogni sezione.

# Esempio 1: il proprietario del bucket concede agli utenti le autorizzazioni per il bucket
<a name="example-walkthroughs-managing-access-example1"></a>

**Importante**  
La concessione di autorizzazioni ai ruoli IAM è una pratica migliore rispetto alla concessione di autorizzazioni ai singoli utenti. Per ulteriori informazioni su come concedere autorizzazioni ai ruoli IAM, consulta [Comprendere le autorizzazioni multi-account e utilizzare i ruoli IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Preparazione della spiegazione passo per passo](#grant-permissions-to-user-in-your-account-step0)
+ [Fase 1: Creare risorse nell'account A e concedere le autorizzazioni](#grant-permissions-to-user-in-your-account-step1)
+ [Fase 2: testare le autorizzazioni](#grant-permissions-to-user-in-your-account-test)

In questa procedura dettagliata, un utente Account AWS possiede un bucket e l'account include un utente IAM. Per impostazione predefinita, l'utente non dispone di autorizzazioni. Per eseguire qualsiasi attività, l'account padre deve concedere le autorizzazioni all'utente. Il proprietario del bucket e l'account padre sono uguali. Pertanto, per concedere all'utente le autorizzazioni sul bucket, Account AWS possono utilizzare una policy del bucket, una policy utente o entrambe. Il proprietario dell'account concederà alcune autorizzazioni con una policy del bucket e altre con una policy utente.

La seguenti fasi riepilogano la procedura guidata:

![\[Diagramma che mostra un AWS account che concede le autorizzazioni.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/access-policy-ex1.png)


1. L'amministratore dell'account crea una policy bucket per concedere un set di autorizzazioni all'utente.

1. L'amministratore dell'account collega una policy utente all'utente per concedere ulteriori autorizzazioni.

1. L'utente prova quindi le autorizzazioni concesse tramite la policy bucket e la policy utente.

Per questo esempio, avrai bisogno di un. Account AWS Anziché utilizzare le credenziali dell'utente root dell'account, sarà necessario creare un utente amministratore (consultare [Informazioni sull'uso di un utente amministratore per creare risorse e concedere autorizzazioni](example-walkthroughs-managing-access.md#about-using-root-credentials)). Ci riferiamo all'utente Account AWS e all'utente amministratore come illustrato nella tabella seguente.


| ID account | Account denominato | Utente amministratore nell'account | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Account A  |  AccountAadmin  | 

**Nota**  
L'utente amministratore in questo esempio è **AccountAadmin**, che si riferisce all'account A e non **AccountAdmin**.

Tutte le attività di creazione degli utenti e assegnazione delle autorizzazioni vengono effettuate nella Console di gestione AWS. Per verificare le autorizzazioni, la procedura dettagliata utilizza gli strumenti della riga di comando, AWS Command Line Interface (AWS CLI) e AWS Tools for Windows PowerShell quindi non è necessario scrivere alcun codice.

## Preparazione della spiegazione passo per passo
<a name="grant-permissions-to-user-in-your-account-step0"></a>

1. Assicurati di avere un account Account AWS e che abbia un utente con privilegi di amministratore.

   1. Registrati per un Account AWS, se necessario. Si fa riferimento a questo account come Account A.

      1.  Vai su [https://aws.amazon.com/s3](https://aws.amazon.com/s3) e scegli **Crea un AWS account**. 

      1. Seguire le istruzioni su schermo.

         AWS ti avviserà via e-mail quando il tuo account sarà attivo e disponibile per l'uso.

   1. Nell'account A, crea un utente amministratore **AccountAadmin**. Utilizzando le credenziali dell'Account A, accedere alla [console IAM](https://console.aws.amazon.com/iam/home?#home) ed effettuare quanto segue: 

      1. Crea l'utente **AccountAadmin** e annota le credenziali di sicurezza dell'utente. 

         Per istruzioni, consulta [Creazione di un utente IAM in Account AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) nella *Guida all'utente IAM*. 

      1. Concedi i privilegi di amministratore **AccountAadmin**allegando una politica utente che dia accesso completo. 

         Per istruzioni, consulta [Gestione delle policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) nella *Guida all'utente IAM*. 

      1. Nota l'URL di **accesso dell'utente IAM** per. **AccountAadmin** che dovrà essere utilizzato per accedere alla Console di gestione AWS. Per ulteriori informazioni su dove trovare l'URL di accesso, consulta [Accedere Console di gestione AWS come utente IAM nella IAM User](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) *Guide*. Annota l'URL di ciascun account.

1. Configura il AWS CLI o il AWS Tools for Windows PowerShell. Assicurati di salvare le credenziali dell'utente amministratore come segue:
   + Se usi il AWS CLI, crea un profilo`AccountAadmin`, nel file di configurazione.
   + Se utilizzi il AWS Tools for Windows PowerShell, assicurati di memorizzare le credenziali per la sessione come. `AccountAadmin`

   Per istruzioni, consulta [Impostazione degli strumenti per le visite guidate](policy-eval-walkthrough-download-awscli.md). 

## Fase 1: Creare risorse nell'account A e concedere le autorizzazioni
<a name="grant-permissions-to-user-in-your-account-step1"></a>

Utilizzando le credenziali dell'utente `AccountAadmin` nell'Account A e lo speciale URL di accesso utente IAM, accedi a Console di gestione AWS e procedi come segue:

1. Creare risorse di un bucket e di un utente IAM

   1. Nella console di Amazon S3 creare un bucket. Nota Regione AWS in che modo hai creato il bucket. Per istruzioni, consulta [Creazione di un bucket per uso generico](create-bucket-overview.md). 

   1. Nella [Console IAM](https://console.aws.amazon.com/iam/), procedi come segue: 

      1. Crea un utente di nome Dave.

         Per step-by-step istruzioni, consulta [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 IAM*. 

      1. Annota le credenziali `UserDave`.

      1. Annota il nome della risorsa Amazon (ARN) per l'utente Dave. Nella [Console IAM](https://console.aws.amazon.com/iam/), seleziona l'utente e la scheda **Riepilogo** fornisce l'ARN dell'utente.

1. Concedi i permessi. 

   Poiché il proprietario del bucket e l'account principale a cui appartiene l'utente sono gli stessi, Account AWS possono concedere le autorizzazioni all'utente utilizzando una policy del bucket, una policy utente o entrambe. come in questo esempio. Se l'oggetto è anche di proprietà dello stesso account, il proprietario del bucket può concedere le autorizzazioni per l'oggetto nella policy bucket (o una policy IAM).

   1. Nella console Amazon S3, collega la seguente policy sui bucket a. *awsexamplebucket1* 

      La policy include due dichiarazioni. 
      + La prima istruzione concede a Dave le autorizzazioni per le operazioni sul bucket `s3:GetBucketLocation` e `s3:ListBucket`.
      + La seconda istruzione concede l'autorizzazione `s3:GetObject`. Poiché l'Account A è anche proprietario dell'oggetto, l'amministratore dell'account può concedere l'autorizzazione `s3:GetObject`. 

      Nell'istruzione `Principal` Dave è identificato dall'ARN utente. Per ulteriori informazioni sugli elementi delle policy, consultare [Policy e autorizzazioni in Amazon S3](access-policy-language-overview.md).

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "statement1",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:user/Dave"
                  },
                  "Action": [
                      "s3:GetBucketLocation",
                      "s3:ListBucket"
                  ],
                  "Resource": [
                      "arn:aws:s3:::awsexamplebucket1"
                  ]
              },
              {
                  "Sid": "statement2",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:user/Dave"
                  },
                  "Action": [
                      "s3:GetObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::awsexamplebucket1/*"
                  ]
              }
          ]
      }
      ```

------

   1. Creare una policy inline per l'utente Dave mediante la policy che segue. La policy concede a Dave l'autorizzazione `s3:PutObject`. È necessario aggiornare la policy specificando il nome del bucket.

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

****  

      ```
      {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
            {
               "Sid": "PermissionForObjectOperations",
               "Effect": "Allow",
               "Action": [
                  "s3:PutObject"
               ],
               "Resource": [
                  "arn:aws:s3:::awsexamplebucket1/*"
               ]
            }
         ]
      }
      ```

------

      Per istruzioni, consulta [Managing IAMpolicies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html) in the *IAM User Guide*. Tenere presente che è necessario accedere alla console tramite le credenziali dell'Account A.

## Fase 2: testare le autorizzazioni
<a name="grant-permissions-to-user-in-your-account-test"></a>

Utilizzando le credenziali di Dave, verificare che le autorizzazioni funzionino correttamente. È possibile utilizzare una delle due procedure di seguito.

**Verifica le autorizzazioni utilizzando il AWS CLI**

1. Aggiorna il file di AWS CLI configurazione aggiungendo il seguente `UserDaveAccountA` profilo. Per ulteriori informazioni, consulta [Impostazione degli strumenti per le visite guidate](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDaveAccountA]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. Verificare che Dave possa eseguire le operazioni autorizzate nella policy utente. Caricate un oggetto di esempio utilizzando il AWS CLI `put-object` comando seguente. 

   Il parametro `--body` nel comando identifica il file di origine da caricare. Ad esempio, se il file si trova nella radice dell'unità C: su un computer Windows, si specifica `c:\HappyFace.jpg`. Il parametro `--key` fornisce il nome della chiave dell'oggetto.

   ```
   aws s3api put-object --bucket awsexamplebucket1 --key HappyFace.jpg --body HappyFace.jpg --profile UserDaveAccountA
   ```

   Eseguite il AWS CLI comando seguente per ottenere l'oggetto. 

   ```
   aws s3api get-object --bucket awsexamplebucket1 --key HappyFace.jpg OutputFile.jpg --profile UserDaveAccountA
   ```

**Verifica le autorizzazioni utilizzando il AWS Tools for Windows PowerShell**

1. Memorizza le credenziali di Dave come `AccountADave`. Si utilizzano quindi queste credenziali per `PUT` e `GET` un oggetto.

   ```
   set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountADave
   ```

1. Caricate un oggetto di esempio utilizzando il AWS Tools for Windows PowerShell `Write-S3Object` comando utilizzando le credenziali memorizzate dell'utente Dave. 

   ```
   Write-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountADave
   ```

   Scaricare l'oggetto caricato in precedenza.

   ```
   Read-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file Output.jpg -StoredCredentials AccountADave
   ```

# Esempio 2: il proprietario del bucket concede autorizzazioni per il bucket multiaccount
<a name="example-walkthroughs-managing-access-example2"></a>

**Importante**  
Concedere le autorizzazioni ai ruoli IAM è una pratica migliore rispetto alla concessione delle autorizzazioni ai singoli utenti. Per informazioni su come effettuare questa operazione, consulta [Comprendere le autorizzazioni multi-account e utilizzare i ruoli IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Preparazione della spiegazione passo per passo](#cross-acct-access-step0)
+ [Fase 1: esecuzione delle attività per l'Account A](#access-policies-walkthrough-cross-account-permissions-acctA-tasks)
+ [Fase 2: esecuzione delle attività per l'Account B](#access-policies-walkthrough-cross-account-permissions-acctB-tasks)
+ [Fase 3: (facoltativo) provare un rifiuto esplicito](#access-policies-walkthrough-example2-explicit-deny)
+ [Fase 4: pulizia](#access-policies-walkthrough-example2-cleanup-step)

Un account, ad Account AWS esempio, A può concedere a un altro Account AWS, l'account B, l'autorizzazione ad accedere alle sue risorse come bucket e oggetti. L'Account B può quindi delegare queste autorizzazioni agli utenti nel proprio account. In questo scenario di esempio, il proprietario del bucket concede a un altro account le autorizzazioni multiaccount per eseguire specifiche operazioni nel bucket.

**Nota**  
L'account A può inoltre concedere le autorizzazioni a un utente dell'Account B mediante una policy di bucket. Tuttavia, l'utente avrà comunque bisogno dell'autorizzazione dell'account padre, l'account B, a cui appartiene, anche se l'account B non ha le autorizzazioni dell'account A. Finché l'utente ha l'autorizzazione sia del proprietario della risorsa che dell'account padre, potrà accedere alla risorsa.

Di seguito è riportato un riepilogo delle fasi della procedura:

![\[E Account AWS concedere a un'altra persona l' Account AWS autorizzazione ad accedere alle sue risorse.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/access-policy-ex2.png)


1. L'amministratore dell'Account A collega una policy di bucket che concede all'Account B autorizzazioni multiaccount per l'esecuzione di specifiche operazioni nel bucket.

   L'utente amministratore dell'Account B erediterà automaticamente le autorizzazioni.

1. L'utente amministratore dell'account B collega una policy utente all'utente per delegare le autorizzazioni ricevute dall'Account A.

1. L'utente dell'Account B fa quindi una verifica delle autorizzazioni accedendo a un oggetto nel bucket di proprietà dell'Account A.

Per questo utente, sono necessari due account. La tabella seguente mostra come viene fatto riferimento a questi account e ai relativi utenti amministratori. In conformità alle linee guida IAM (consulta [Informazioni sull'uso di un utente amministratore per creare risorse e concedere autorizzazioni](example-walkthroughs-managing-access.md#about-using-root-credentials)), in questa guida non utilizzeremo le credenziali dell'utente root. Viene invece creato un utente amministratore in ciascun account e le credenziali vengono utilizzate per la creazione di risorse e per concedere autorizzazioni a tali risorse. 


| Account AWS ID | Account denominato | Utente amministratore nell'account  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Account A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Account B  |  AccountBadmin  | 

Tutte le attività di creazione degli utenti e assegnazione delle autorizzazioni vengono effettuate nella Console di gestione AWS. Per verificare le autorizzazioni, la procedura dettagliata utilizza gli strumenti della riga di comando ( AWS Command Line Interface CLI) e AWS Tools for Windows PowerShell quindi non è necessario scrivere alcun codice.

## Preparazione della spiegazione passo per passo
<a name="cross-acct-access-step0"></a>

1. Assicurati di averne due Account AWS e che ogni account abbia un utente amministratore, come mostrato nella tabella nella sezione precedente.

   1. Registrati per un Account AWS, se necessario. 

   1. Utilizzando le credenziali dell'Account A, accedere alla [console IAM](https://console.aws.amazon.com/iam/home?#home) per creare l'utente amministratore:

      1. Crea l'utente **AccountAadmin** e annota le credenziali di sicurezza. Per istruzioni, consulta [Creazione di un utente IAM nell' Account AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) nella *Guida per l'utente di IAM*. 

      1. Concedi i privilegi di amministratore **AccountAadmin**allegando una politica utente che dia accesso completo. Per istruzioni, consulta [Gestione di policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) nella *Guida per l'utente di IAM*. 

   1. Nella console IAM, annota l'**URL di accesso dell'utente IAM** nella **Dashboard**. Tutti gli utenti dell'account devono utilizzare questo URL per accedere alla Console di gestione AWS.

      Per ulteriori informazioni, consulta [In che modo gli utenti effettuano l'accesso al tuo account](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) nella *Guida per l'utente IAM*. 

   1. Ripeti il passaggio precedente utilizzando le credenziali dell'account B e creare l'utente amministratore **AccountBadmin**.

1. Imposta il AWS Command Line Interface (AWS CLI) o il. AWS Tools for Windows PowerShell Assicurati di salvare le credenziali dell'utente amministratore come segue:
   + Se usi il AWS CLI, crea due profili `AccountAadmin` e`AccountBadmin`, nel file di configurazione.
   + Se utilizzi il AWS Tools for Windows PowerShell, assicurati di memorizzare le credenziali per la sessione come e`AccountAadmin`. `AccountBadmin`

   Per istruzioni, consulta [Impostazione degli strumenti per le visite guidate](policy-eval-walkthrough-download-awscli.md). 

1. Salvare le credenziali dell'utente amministratore, chiamate anche profili. È possibile utilizzare il nome del profilo anziché specificare le credenziali per ciascun comando immesso. Per ulteriori informazioni, consulta [Impostazione degli strumenti per le visite guidate](policy-eval-walkthrough-download-awscli.md). 

   1. Aggiungi i profili nel file delle AWS CLI credenziali per ciascuno degli utenti amministratori `AccountAadmin` e `AccountBadmin` nei due account. 

      ```
      [AccountAadmin]
      aws_access_key_id = access-key-ID
      aws_secret_access_key = secret-access-key
      region = us-east-1
      
      [AccountBadmin]
      aws_access_key_id = access-key-ID
      aws_secret_access_key = secret-access-key
      region = us-east-1
      ```

   1. Se si utilizza AWS Tools for Windows PowerShell, esegui il seguente comando.

      ```
      set-awscredentials –AccessKey AcctA-access-key-ID –SecretKey AcctA-secret-access-key –storeas AccountAadmin
      set-awscredentials –AccessKey AcctB-access-key-ID –SecretKey AcctB-secret-access-key –storeas AccountBadmin
      ```

## Fase 1: esecuzione delle attività per l'Account A
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks"></a>

### Passaggio 1.1: accedi a Console di gestione AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in"></a>

Utilizzando l'URL di accesso utente IAM per l'account A, accedi innanzitutto all'account Console di gestione AWS as **AccountAadmin**user. Questo utente creerà un bucket e vi allegherà una policy. 

### Fase 1.2: creazione di un bucket
<a name="access-policies-walkthrough-example2a-create-bucket"></a>

1. Nella console di Amazon S3 creare un bucket. Questo esercizio presuppone che il bucket sia stato creato negli Stati Uniti orientali (Virginia settentrionale) Regione AWS e abbia un nome. `amzn-s3-demo-bucket`

   Per istruzioni, consulta [Creazione di un bucket per uso generico](create-bucket-overview.md). 

1. Caricare un oggetto campione nel bucket.

   Per istruzioni, vai su [Fase 2: Carica un oggetto nel tuo bucket](GetStartedWithS3.md#uploading-an-object-bucket). 

### Fase 1.3: collegare una policy del bucket per concedere autorizzazioni tra account all'Account B
<a name="access-policies-walkthrough-example2a"></a>

La policy bucket concede le `s3:ListBucket` autorizzazioni `s3:GetLifecycleConfiguration` e all'account B. Si presume che tu abbia ancora effettuato l'accesso alla console utilizzando le credenziali utente. **AccountAadmin**

1. Collegare la seguente policy di bucket a `amzn-s3-demo-bucket`. La policy concede all'Account B autorizzazioni per le operazioni `s3:GetLifecycleConfiguration` e `s3:ListBucket`.

   Per istruzioni, consulta [Aggiunta di una policy di bucket utilizzando la console di Amazon S3](add-bucket-policy.md). 

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
            "Sid": "Example permissions",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
               "s3:GetLifecycleConfiguration",
               "s3:ListBucket"
            ],
            "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
         }
      ]
   }
   ```

------

1. Verifica che l'account B (e quindi il suo utente amministratore) possa eseguire le operazioni.
   + Verifica utilizzando il AWS CLI

     ```
     aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
     aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile AccountBadmin
     ```
   + Verificare utilizzando il AWS Tools for Windows PowerShell

     ```
     get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin 
     get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin
     ```

## Fase 2: esecuzione delle attività per l'Account B
<a name="access-policies-walkthrough-cross-account-permissions-acctB-tasks"></a>

A questo punto l'amministratore dell'Account B crea un utente, Dave, al quale delega le autorizzazioni ricevute dall'Account A. 

### Passaggio 2.1: accedi a Console di gestione AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctB-tasks-sign-in"></a>

Utilizzando l'URL di accesso utente IAM per l'account B, accedi prima all'**AccountBadmin**utente Console di gestione AWS come. 

### Fase 2.2: creazione dell'utente Dave nell'Account B
<a name="access-policies-walkthrough-example2b-create-user"></a>

Nella [console IAM](https://console.aws.amazon.com/iam/), crea un utente, **Dave**. 

Per le istruzioni, consulta [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*. 

### Fase 2.3: delega delle autorizzazioni all'utente Dave
<a name="access-policies-walkthrough-example2-delegate-perm-userdave"></a>

Creare una policy inline per l'utente Dave mediante la policy che segue. Sarà necessario aggiornare la policy specificando il nome del bucket.

Si presume che tu abbia effettuato l'accesso alla console utilizzando le credenziali **AccountBadmin**utente.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "Example",
         "Effect": "Allow",
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
      }
   ]
}
```

------

Per istruzioni, consulta [Gestione delle policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html) nella *Guida all'utente IAM*.

### Fase 2.4: testare le autorizzazioni
<a name="access-policies-walkthrough-example2b-user-dave-access"></a>

Ora l'utente Dave dell'Account B può elencare il contenuto di `amzn-s3-demo-bucket` di proprietà dell'Account A. È possibile verificare le autorizzazioni mediante una delle procedure descritte di seguito. 

**Verifica le autorizzazioni utilizzando il AWS CLI**

1. Aggiungi il `UserDave` profilo al file di AWS CLI configurazione. Per ulteriori informazioni sul file di configurazione, consulta [Impostazione degli strumenti per le visite guidate](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDave]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. Al prompt dei comandi, inserisci il seguente AWS CLI comando per verificare che Dave possa ora ottenere un elenco di oggetti dall'account di `amzn-s3-demo-bucket` proprietà dell'Account A. Nota che il comando specifica il profilo. `UserDave`

   ```
   aws s3 ls s3://amzn-s3-demo-bucket --profile UserDave
   ```

   Dave non ha altri permessi. Quindi, se si tenta qualsiasi altra operazione, ad esempio la seguente configurazione `get-bucket-lifecycle`, Amazon S3 restituisce l'autorizzazione negata. 

   ```
   aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile UserDave
   ```

**Verifica le autorizzazioni utilizzando AWS Tools for Windows PowerShell**

1. Memorizza le credenziali di Dave come `AccountBDave`.

   ```
   set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
   ```

1. Provare a utilizzare il comando List Bucket.

   ```
   get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

   Dave non ha altri permessi. Quindi, se si tenta un'altra operazione, ad esempio la seguente `get-s3bucketlifecycleconfiguration`-Amazon S3 restituisce Autorizzazione negata. 

   ```
   get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

## Fase 3: (facoltativo) provare un rifiuto esplicito
<a name="access-policies-walkthrough-example2-explicit-deny"></a>

Le autorizzazioni possono essere concesse utilizzando una lista di controllo degli accessi (ACL), una policy di bucket o una policy utente. Tuttavia, se c'è un rifiuto esplicito impostato da una policy del bucket o da una policy dell'utente, il rifiuto esplicito ha la precedenza su qualsiasi altra autorizzazione. Per i test, aggiornare la policy del bucket e negare esplicitamente all'account B l'autorizzazione `s3:ListBucket`. La policy concede anche il permesso di `s3:ListBucket`. Tuttavia, il rifiuto esplicito ha la precedenza e l'account B o gli utenti dell'account B non potranno elencare gli oggetti in `amzn-s3-demo-bucket`.

1. Utilizzando le credenziali dell'utente `AccountAadmin` nell'account A, sostituisci la policy del bucket con il seguente. 

1. Ora, se si cerca di ottenere un elenco di bucket utilizzando le credenziali di `AccountBadmin`, l'accesso viene negato.
   + Utilizzando AWS CLI, esegui il comando seguente:

     ```
     aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
     ```
   + Utilizzando il AWS Tools for Windows PowerShell, esegui il comando seguente:

     ```
     get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
     ```

## Fase 4: pulizia
<a name="access-policies-walkthrough-example2-cleanup-step"></a>

1. Una volta terminato il test, è possibile eseguire le seguenti operazioni di pulizia:

   1. Accedere a Console di gestione AWS ([Console di gestione AWS](https://console.aws.amazon.com/)) utilizzando le credenziali dell'Account A ed effettuare le seguenti operazioni:
     + Nella console di Amazon S3 rimuovere la policy del bucket collegata a `amzn-s3-demo-bucket`. Nelle **Proprietà** del bucket, elimina la policy nella sezione **Autorizzazioni**. 
     + Se il bucket è stato creato per questo esercizio, nella console di Amazon S3 eliminare gli oggetti e quindi il bucket. 
     + Nella [Console IAM](https://console.aws.amazon.com/iam/), rimuovi l'utente `AccountAadmin`.

1. Accedi alla [Console IAM](https://console.aws.amazon.com/iam/) utilizzando le credenziali dell'Account B. Cancella l'utente `AccountBadmin`. Per step-by-step istruzioni, consulta [Eliminazione di un utente IAM nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) per l'*utente IAM*.

# Esempio 3: il proprietario del bucket concede autorizzazioni per gli oggetti che non sono di sua proprietà
<a name="example-walkthroughs-managing-access-example3"></a>

**Importante**  
Concedere le autorizzazioni ai ruoli IAM è una pratica migliore rispetto alla concessione delle autorizzazioni ai singoli utenti. Per informazioni su come effettuare questa operazione, consulta [Comprendere le autorizzazioni multi-account e utilizzare i ruoli IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Fase 0: preparazione della procedura guidata](#access-policies-walkthrough-cross-account-acl-step0)
+ [Fase 1: esecuzione delle attività per l'Account A](#access-policies-walkthrough-cross-account-acl-acctA-tasks)
+ [Fase 2: esecuzione delle attività per l'Account B](#access-policies-walkthrough-cross-account-acl-acctB-tasks)
+ [Fase 3: testare le autorizzazioni](#access-policies-walkthrough-cross-account-acl-verify)
+ [Fase 4: pulizia](#access-policies-walkthrough-cross-account-acl-cleanup)

Lo scenario di questo esempio è che il proprietario di un bucket voglia concedere il permesso di accedere agli oggetti, ma il proprietario del bucket non possiede tutti gli oggetti del bucket. In questo esempio, il proprietario del bucket tenta di concedere autorizzazioni agli utenti nel proprio account.

Il proprietario di un bucket può consentire ad altri Account AWS di caricare oggetti. Per impostazione predefinita, il proprietario del bucket non possiede oggetti scritti su un bucket da un altro Account AWS. Gli oggetti sono di proprietà degli account che li scrivono in un bucket S3. Se il proprietario del bucket non possiede oggetti nel bucket, il proprietario dell'oggetto deve prima concedere l'autorizzazione al proprietario del bucket utilizzando una lista di controllo degli accessi (ACL) dell'oggetto. Quindi, il proprietario del bucket può concedere i permessi a un oggetto di cui non è proprietario. Per ulteriori informazioni, consulta [Proprietà di bucket e oggetti di Amazon S3](access-policy-language-overview.md#about-resource-owner).

Se il proprietario del bucket esegue l'impostazione proprietario del bucket applicato per S3 Object Ownership per il bucket, il proprietario del bucket possiederà tutti gli oggetti nel bucket, inclusi gli oggetti scritti da un altro Account AWS. Questo approccio risolve il problema degli oggetti che non sono di proprietà del proprietario del bucket. Quindi, puoi delegare le autorizzazioni agli utenti nel tuo account o ad altri Account AWS.

**Nota**  
S3 Object Ownership è un'impostazione a livello di bucket di Amazon S3 che puoi utilizzare sia per controllare la proprietà degli oggetti caricati nel tuo bucket sia per disabilitarli o abilitarli. ACLs Per impostazione predefinita, Object Ownership è impostata sull'impostazione imposta dal proprietario del Bucket e tutti sono disabilitati. ACLs Quando ACLs sono disabilitati, il proprietario del bucket possiede tutti gli oggetti nel bucket e ne gestisce l'accesso esclusivamente utilizzando le politiche di gestione degli accessi.  
 La maggior parte dei casi d'uso moderni in Amazon S3 non richiede più l'uso di. ACLs Ti consigliamo di rimanere ACLs disabilitato, tranne nei casi in cui devi controllare l'accesso per ogni oggetto singolarmente. ACLs Disabilitando, puoi utilizzare le policy per controllare l'accesso a tutti gli oggetti nel tuo bucket, indipendentemente da chi ha caricato gli oggetti nel tuo bucket. Per ulteriori informazioni, consulta [Controllo della proprietà degli oggetti e disattivazione ACLs del bucket](about-object-ownership.md).

In questo esempio supponiamo che il proprietario del bucket non abbia applicato l'impostazione proprietario del bucket applicato per Object Ownership. Il proprietario del bucket delega queste autorizzazioni agli utenti nel suo account. Di seguito è riportato un riepilogo delle fasi della procedura:

![\[Il proprietario di un bucket concede autorizzazioni a oggetti che non possiede.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/access-policy-ex3.png)


1. L'utente amministratore dell'Account A collega una policy di bucket con due istruzioni.
   + Concedere all'Account B autorizzazioni multiaccount per caricare oggetti.
   + Consentire a un utente nel proprio account di accedere agli oggetti nel bucket.

1. L'utente amministratore dell'account B carica gli oggetti nel bucket di proprietà dell'Account A.

1. L'amministratore dell'Account B aggiorna l'ACL dell'oggetto e concede al proprietario del bucket l'autorizzazione al controllo completo sull'oggetto.

1. L'utente dell'Account A fa una verifica accedendo agli oggetti nel bucket, indipendentemente da chi ne ha la proprietà.

Per questo utente, sono necessari due account. La tabella seguente mostra come viene fatto riferimento a questi account e agli utenti amministratori degli account: In questa spiegazione passo per passo, non si utilizzano le credenziali dell'utente root dell'account, in base a quanto riportato nelle linee guida IAM consigliate. Per ulteriori informazioni, consulta [Informazioni sull'uso di un utente amministratore per creare risorse e concedere autorizzazioni](example-walkthroughs-managing-access.md#about-using-root-credentials). Viene invece creato un utente amministratore in ciascun account e le credenziali vengono utilizzate per la creazione di risorse e per concedere autorizzazioni a tali risorse


| Account AWS ID | Account denominato | Amministratore nell'account  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Account A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Account B  |  AccountBadmin  | 

Tutte le attività di creazione degli utenti e assegnazione delle autorizzazioni vengono effettuate nella Console di gestione AWS. Per verificare le autorizzazioni, la procedura dettagliata utilizza gli strumenti della riga di comando, AWS Command Line Interface (AWS CLI) e AWS Tools for Windows PowerShell quindi non è necessario scrivere alcun codice. 

## Fase 0: preparazione della procedura guidata
<a name="access-policies-walkthrough-cross-account-acl-step0"></a>

1. Assicurati di averne due Account AWS e che ogni account abbia un amministratore, come mostrato nella tabella nella sezione precedente.

   1. Iscriviti a un Account AWS, se necessario. 

   1. Utilizzando le credenziali dell'account A, accedi alla [Console IAM](https://console.aws.amazon.com/iam/) e procedere come segue per creare un utente amministratore:
      + Crea l'utente **AccountAadmin** e annota le credenziali di sicurezza dell'utente. Per ulteriori informazioni sull'aggiunta di utenti, consulta [Creazione di un utente IAM nell' Account AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) nella *Guida per l'utente di IAM*. 
      + Concedi le autorizzazioni di amministratore **AccountAadmin**allegando una politica utente che dia accesso completo. Per istruzioni, consulta [Gestione delle policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) nella *Guida all'utente IAM*. 
      + Nella [Console IAM](https://console.aws.amazon.com/iam/) **Dashboard**, annota l'**URL di accesso dell'utente IAM**. Gli utenti di questo account devono utilizzare questo URL per accedere alla Console di gestione AWS. Per ulteriori informazioni, consulta [In che modo gli utenti effettuano l'accesso al tuo account](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) nella *Guida per l'utente IAM*. 

   1. Ripeti il passaggio precedente utilizzando le credenziali dell'account B e creare l'utente amministratore **AccountBadmin**.

1. Configura AWS CLI o gli strumenti per Windows. PowerShell Assicurati di salvare le credenziali di amministratore nel modo seguente:
   + Se usi il AWS CLI, crea due profili `AccountAadmin` e`AccountBadmin`, nel file di configurazione.
   + Se utilizzi gli Strumenti per Windows PowerShell, assicurati di memorizzare le credenziali per la sessione come `AccountAadmin` e. `AccountBadmin`

   Per istruzioni, consulta [Impostazione degli strumenti per le visite guidate](policy-eval-walkthrough-download-awscli.md). 

## Fase 1: esecuzione delle attività per l'Account A
<a name="access-policies-walkthrough-cross-account-acl-acctA-tasks"></a>

Esegui le operazioni riportate di seguito per l'Account A:

### Fase 1.1: Accesso alla console
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in-example3"></a>

Utilizzando l'URL di accesso utente IAM per l'account A, accedi all'utente Console di gestione AWS as**AccountAadmin**. Questo utente creerà un bucket e vi allegherà una policy. 

### Fase 1.2: Creazione di un bucket e di un utente e aggiunta di una policy di bucket che concede le autorizzazioni utente
<a name="access-policies-walkthrough-cross-account-acl-create-bucket"></a>

1. Nella console di Amazon S3 creare un bucket. Questo esercizio presuppone che il bucket sia stato creato negli Stati Uniti orientali (Virginia settentrionale) Regione AWS e che il nome sia. `amzn-s3-demo-bucket1`

   Per istruzioni, consulta [Creazione di un bucket per uso generico](create-bucket-overview.md). 

1. Nella [console IAM](https://console.aws.amazon.com/iam/), crea un utente **Dave**. 

   Per step-by-step istruzioni, consulta [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 *IAM*. 

1. Osserva le credenziali dell'utente Dave. 

1. Nella console di Amazon S3 collegare la seguente policy del bucket a `amzn-s3-demo-bucket1`. Per istruzioni, consulta [Aggiunta di una policy di bucket utilizzando la console di Amazon S3](add-bucket-policy.md). Seguire le fasi per l'aggiunta di una policy di bucket. Per informazioni su come trovare un account IDs, consulta [Finding your Account AWS ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingYourAccountIdentifiers). 

   La policy concede all'Account B le autorizzazioni `s3:PutObject` e `s3:ListBucket`. La policy concede inoltre all'utente `Dave` l'autorizzazione `s3:GetObject`. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": [
                   "s3:PutObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                   "arn:aws:s3:::amzn-s3-demo-bucket1"
               ]
           },
           {
               "Sid": "Statement3",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/Dave"
               },
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*"
               ]
           }
       ]
   }
   ```

------

## Fase 2: esecuzione delle attività per l'Account B
<a name="access-policies-walkthrough-cross-account-acl-acctB-tasks"></a>

Ora che l'account B ha le autorizzazioni per eseguire operazioni sul bucket dell'account A, l'amministratore dell'account B esegue le seguenti operazioni:
+ Carica un oggetto nel bucket dell'account A 
+ Aggiunge una concessione nella ACL dell'oggetto per consentire all'account A, proprietario del bucket, il pieno controllo

**Usando il AWS CLI**

1. Con il comando `put-object` AWS CLI , carica un oggetto. Il parametro `--body` nel comando identifica il file di origine da caricare. Ad esempio, se il file si trova sull'unità `C:` di una macchina Windows, specifica `c:\HappyFace.jpg`. Il parametro `--key` fornisce il nome della chiave dell'oggetto. 

   ```
   aws s3api put-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --body HappyFace.jpg --profile AccountBadmin
   ```

1. Aggiungere un'autorizzazione nell'ACL dell'oggetto per concedere controllo completo dell'oggetto al proprietario del bucket. Per informazioni su come trovare un ID utente canonico, consulta la sezione [Trovare l'ID utente canonico per Account AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId) nella *AWS Guida di riferimento per la gestione degli account*.

   ```
   aws s3api put-object-acl --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --grant-full-control id="AccountA-CanonicalUserID" --profile AccountBadmin
   ```

**Utilizzo degli strumenti per Windows PowerShell**

1. Con il comando `Write-S3Object`, carica un oggetto. 

   ```
   Write-S3Object -BucketName amzn-s3-demo-bucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountBadmin
   ```

1. Aggiungere un'autorizzazione nell'ACL dell'oggetto per concedere controllo completo dell'oggetto al proprietario del bucket.

   ```
   Set-S3ACL -BucketName amzn-s3-demo-bucket1 -Key HappyFace.jpg -CannedACLName "bucket-owner-full-control" -StoredCreden
   ```

## Fase 3: testare le autorizzazioni
<a name="access-policies-walkthrough-cross-account-acl-verify"></a>

A questo punto, verifica se l'utente Dave nell'Account A ha accesso all'oggetto di proprietà dell'Account B.

**Usando il AWS CLI**

1. Aggiungi le credenziali dell'utente Dave al file di AWS CLI configurazione e crea un nuovo profilo,. `UserDaveAccountA` Per ulteriori informazioni, consulta [Impostazione degli strumenti per le visite guidate](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDaveAccountA]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. Esegui il comando della CLI di `get-object` per scaricare `HappyFace.jpg` e salvarlo in locale. Le credenziali dell'utente Dave vengono fornite aggiungendo il parametro `--profile`.

   ```
   aws s3api get-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg Outputfile.jpg --profile UserDaveAccountA
   ```

**Utilizzo degli strumenti per Windows PowerShell**

1. Archivia AWS le credenziali dell'utente Dave, ad esempio`UserDaveAccountA`, nell'archivio persistente. 

   ```
   Set-AWSCredentials -AccessKey UserDave-AccessKey -SecretKey UserDave-SecretAccessKey -storeas UserDaveAccountA
   ```

1. Esegui il comando `Read-S3Object` per scaricare l'oggetto `HappyFace.jpg` e salvarlo in locale. Le credenziali dell'utente Dave vengono fornite aggiungendo il parametro `-StoredCredentials`. 

   ```
   Read-S3Object -BucketName amzn-s3-demo-bucket1 -Key HappyFace.jpg -file HappyFace.jpg  -StoredCredentials UserDaveAccountA
   ```

## Fase 4: pulizia
<a name="access-policies-walkthrough-cross-account-acl-cleanup"></a>

1. Una volta terminato il test, è possibile eseguire le seguenti operazioni di pulizia:

   1. Accedi alla [Console di gestione AWS](https://console.aws.amazon.com/) utilizzando le credenziali dell'Account A e procedere come di seguito:
     + Nella console di Amazon S3 rimuovere la policy del bucket collegata a *amzn-s3-demo-bucket1*. Nelle **Proprietà** del bucket, elimina la policy nella sezione **Autorizzazioni**. 
     + Se il bucket è stato creato per questo esercizio, nella console di Amazon S3 eliminare gli oggetti e quindi il bucket. 
     + Nella [Console IAM](https://console.aws.amazon.com/iam/), rimuovi l'utente **AccountAadmin**. Per step-by-step istruzioni, consulta [Eliminazione di un utente IAM nella Guida per l'utente](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) *IAM*.

1. Accedere alla [Console di gestione AWS](https://console.aws.amazon.com/) tramite le credenziali dell'Account B. Nella [console IAM](https://console.aws.amazon.com/iam/), elimina l'utente **AccountBadmin**.

# Esempio 4 - Proprietario di un bucket che concede un'autorizzazione multi-account agli oggetti di cui non è proprietario
<a name="example-walkthroughs-managing-access-example4"></a>

**Topics**
+ [Comprendere le autorizzazioni multi-account e utilizzare i ruoli IAM](#access-policies-walkthrough-example4-overview)
+ [Fase 0: preparazione della procedura guidata](#access-policies-walkthrough-example4-step0)
+ [Fase 1: eseguire le attività per l'Account A](#access-policies-walkthrough-example4-step1)
+ [Fase 2: esecuzione delle attività per l'Account B](#access-policies-walkthrough-example4-step2)
+ [Fase 3: Eseguire le attività dell'Account C](#access-policies-walkthrough-example4-step3)
+ [Fase 4: pulizia](#access-policies-walkthrough-example4-step6)
+ [Risorse correlate](#RelatedResources-managing-access-example4)

 In questo scenario di esempio, possiedi un bucket e hai consentito ad altri Account AWS di caricare oggetti. Se è stata applicata l'impostazione proprietario del bucket applicato per S3 Object Ownership per il bucket, si avrà proprietà di tutti gli oggetti nel bucket, inclusi gli oggetti scritti da un altro Account AWS. Questo approccio risolve il problema che gli oggetti non sono di proprietà dell'utente, il proprietario del bucket. Quindi, puoi delegare le autorizzazioni agli utenti nel tuo account o ad altri Account AWS. Supponiamo che l'impostazione proprietario del bucket applicato per S3 Object Ownership non sia abilitata. In altre parole, il bucket può avere oggetti di proprietà di altri Account AWS . 

Ora, si supponga che, in qualità di proprietario del bucket, si debbano concedere autorizzazioni multiaccount per gli oggetti a un utente di un altro account, indipendentemente dall'utente a cui appartengono. Ad esempio, l'utente potrebbe essere un'applicazione per la fatturazione che deve accedere ai metadata dell'oggetto. Esistono due problemi principali:
+ Il proprietario del bucket non dispone delle autorizzazioni per gli oggetti creati dagli altri Account AWS. Affinché il proprietario del bucket possa concedere autorizzazioni su oggetti che non possiede, il proprietario dell'oggetto deve prima concedere l'autorizzazione al proprietario del bucket. Il proprietario dell'oggetto è Account AWS che ha creato gli oggetti. Il proprietario del bucket può quindi delegare tali autorizzazioni.
+ L'account proprietario del bucket può delegare le autorizzazioni agli utenti del proprio account (consulta [Esempio 3: il proprietario del bucket concede autorizzazioni per gli oggetti che non sono di sua proprietà](example-walkthroughs-managing-access-example3.md)). Tuttavia, l'account proprietario del bucket non può delegare le autorizzazioni ad altri Account AWS perché la delega tra account non è supportata. 

In questo scenario, il proprietario del bucket può creare un ruolo AWS Identity and Access Management (IAM) con l'autorizzazione ad accedere agli oggetti. Quindi, il proprietario del bucket può concedere un'altra Account AWS autorizzazione per assumere il ruolo, consentendogli temporaneamente di accedere agli oggetti nel bucket. 

**Nota**  
S3 Object Ownership è un'impostazione a livello di bucket di Amazon S3 che puoi utilizzare sia per controllare la proprietà degli oggetti caricati nel tuo bucket sia per disabilitarli o abilitarli. ACLs Per impostazione predefinita, Object Ownership è impostata sull'impostazione imposta dal proprietario del Bucket e tutti sono disabilitati. ACLs Quando ACLs sono disabilitati, il proprietario del bucket possiede tutti gli oggetti nel bucket e ne gestisce l'accesso esclusivamente utilizzando le politiche di gestione degli accessi.  
 La maggior parte dei casi d'uso moderni in Amazon S3 non richiede più l'uso di. ACLs Ti consigliamo di rimanere ACLs disabilitato, tranne nei casi in cui devi controllare l'accesso per ogni oggetto singolarmente. ACLs Disabilitando, puoi utilizzare le policy per controllare l'accesso a tutti gli oggetti nel tuo bucket, indipendentemente da chi ha caricato gli oggetti nel tuo bucket. Per ulteriori informazioni, consulta [Controllo della proprietà degli oggetti e disattivazione ACLs del bucket](about-object-ownership.md).

## Comprendere le autorizzazioni multi-account e utilizzare i ruoli IAM
<a name="access-policies-walkthrough-example4-overview"></a>

 I ruoli IAM consentono diversi scenari per la delega dell'accesso alle risorse. Uno degli scenari principali è l'accesso multiaccount. In questo esempio, il proprietario del bucket, l'Account A, utilizza un ruolo IAM per delegare temporaneamente l'accesso agli oggetti tra account agli utenti di un altro account Account AWS, l'Account C. A ogni ruolo IAM creato sono associate le seguenti due policy:
+ Una policy di fiducia che ne identifica un'altra Account AWS che può assumere il ruolo.
+ Una policy di accesso per la definizione delle autorizzazioni consentite quando qualcuno assume il ruolo, ad esempio `s3:GetObject`. Per un elenco delle autorizzazioni che è possibile specificare in una policy, consulta [Azioni di policy per Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions).

La Account AWS persona identificata nella politica di fiducia concede quindi all'utente l'autorizzazione ad assumere il ruolo. L'utente può quindi accedere agli oggetti nel modo seguente:
+ Assumere il ruolo e, in risposta, ottenere le credenziali di sicurezza temporanee. 
+ Accedere agli oggetti nel bucket utilizzando le credenziali di sicurezza temporanee.

Per ulteriori informazioni sui ruoli IAM, consulta [Ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) nella *Guida per l'utente di IAM*. 

Di seguito è riportato un riepilogo delle fasi della procedura:

![\[Autorizzazioni multi-account utilizzando i ruoli IAM.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/access-policy-ex4.png)


1. L'utente amministratore dell'account A collega una policy di bucket che concede all'Account B un'autorizzazione condizionale per caricare gli oggetti.

1. L'amministratore dell'Account A crea un ruolo IAM per stabilire l'attendibilità con l'Account C, pertanto gli utenti in quell'account possono accedere all'Account A. La policy di accesso collegata al ruolo limita le operazioni consentite all'utente nell'Account C quando accede all'Account A.

1. L'amministratore dell'Account B carica un oggetto nel bucket di proprietà dell'Account A, concedendo al proprietario del bucket un'autorizzazione al controllo completo.

1. L'amministratore dell'account C crea un utente e collega una policy utente che gli consente di assumere il ruolo.

1. L'utente nell'Account C per prima cosa assume il ruolo, che restituisce all'utente credenziali di sicurezza temporanee. Mediante tali credenziali temporanee, l'utente accede quindi agli oggetti nel bucket.

Per questo esempio sono necessari tre account. La tabella seguente mostra come viene fatto riferimento a questi account e agli utenti amministratori degli account: In conformità con le linee guida IAM (consulta [Informazioni sull'uso di un utente amministratore per creare risorse e concedere autorizzazioni](example-walkthroughs-managing-access.md#about-using-root-credentials)), in questa guida non utilizzeremo le credenziali Utente root dell'account AWS . Viene invece creato un utente amministratore in ciascun account e le credenziali vengono utilizzate per la creazione di risorse e per concedere autorizzazioni a tali risorse.


| Account AWS ID | Account denominato | Utente amministratore nell'account  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Account A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Account B  |  AccountBadmin  | 
|  *3333-3333-3333*  |  Account C  |  AccountCadmin  | 



## Fase 0: preparazione della procedura guidata
<a name="access-policies-walkthrough-example4-step0"></a>

**Nota**  
Si consiglia di aprire un editor di testo e di annotare alcune informazioni man mano che si procede. In particolare, avrai bisogno di account IDs, utente canonico IDs, accesso utente IAM URLs per ogni account per connettersi alla console e Amazon Resource Names (ARNs) degli utenti e dei ruoli IAM. 

1. Assicurati di averne tre Account AWS e che ogni account abbia un utente amministratore, come mostrato nella tabella nella sezione precedente.

   1. Iscriviti a Account AWS, se necessario. Si fa riferimento a questi account come Account A, Account B e Account C.

   1. Utilizzando le credenziali dell'Account A, accedere alla [console IAM](https://console.aws.amazon.com/iam/home?#home) ed effettuare quanto segue per creare un utente amministratore:
      + Crea l'utente **AccountAadmin** e prendi nota delle sue credenziali di sicurezza. Per ulteriori informazioni sull'aggiunta di utenti, consulta [Creazione di un utente IAM nell' Account AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) nella *Guida per l'utente di IAM*. 
      + Concedi i privilegi di amministratore **AccountAadmin**allegando una politica utente che dia accesso completo. Per istruzioni, consulta [Gestione delle policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) nella *Guida all'utente IAM*. 
      + Nella **Dashboard** della Console IAM, annota l'**URL di accesso dell'utente IAM**. Gli utenti di questo account devono utilizzare questo URL per accedere alla Console di gestione AWS. Per ulteriori informazioni, consulta [Accedere Console di gestione AWS come utente IAM nella Guida per l'utente](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) *IAM*. 

   1. Ripetere la fase precedente per creare utenti amministratore nell'Account B e nell'Account C.

1. Per l'account C, annota l'ID utente canonico. 

   Quando si crea un ruolo IAM nell'Account A, la policy di attendibilità concede all'Account C l'autorizzazione per assumere il ruolo mediante la specifica dell'ID account. È possibile trovare informazioni sull'account come indicato di seguito:

   1. Usa il tuo Account AWS ID o alias dell'account, il tuo nome utente IAM e la password per accedere alla console [Amazon S3](https://console.aws.amazon.com/s3/).

   1. Scegliere il nome di un bucket Amazon S3 per visualizzare i relativi dettagli.

   1. Selezionare la scheda **Permissions (Autorizzazioni)** e selezionare **Access Control List (Lista di controllo accessi)**. 

   1. Nella sezione **Accesso per il tuo Account AWS**, nella colonna **Account** è presente un identificatore lungo, come `c1daexampleaaf850ea79cf0430f33d72579fd1611c97f7ded193374c0b163b6`. Questo è il tuo ID utente canonico.

1. Quando si crea una policy di bucket, è necessario disporre delle informazioni seguenti. Osserva questi valori:
   + **ID utente canonico dell'Account A** – Quando l'amministratore dell'Account A concede all'amministratore dell'Account B l'autorizzazione condizionale per il caricamento degli oggetti, la condizione specifica l'ID utente canonico dell'utente dell'Account A che deve ottenere controllo completo degli oggetti. 
**Nota**  
L'ID utente canonico è un concetto esclusivo di Amazon S3. Si tratta di una versione offuscata dell'ID account, composta da 64 caratteri. 
   + **ARN dell'utente per l'amministratore dell'account B** - È possibile trovare l'ARN dell'utente nella [Console IAM](https://console.aws.amazon.com/iam/). È necessario selezionare l'utente e trovare l'ARN dell'utente nella scheda **Riepilogo**.

     Nella policy del bucket, si concede a `AccountBadmin` l'autorizzazione a caricare oggetti e si specifica l'utente utilizzando l'ARN. Ecco un esempio di valore ARN:

     ```
     arn:aws:iam::AccountB-ID:user/AccountBadmin
     ```

1. Configura la AWS Command Line Interface (CLI) o la. AWS Tools for Windows PowerShell Assicurati di salvare le credenziali dell'utente amministratore come segue:
   + Se usi il AWS CLI, crea profili `AccountAadmin` e`AccountBadmin`, nel file di configurazione.
   + Se utilizzi il AWS Tools for Windows PowerShell, assicurati di memorizzare le credenziali per la sessione come e`AccountAadmin`. `AccountBadmin`

   Per istruzioni, consulta [Impostazione degli strumenti per le visite guidate](policy-eval-walkthrough-download-awscli.md).

## Fase 1: eseguire le attività per l'Account A
<a name="access-policies-walkthrough-example4-step1"></a>

In questo esempio, l'Account A è il proprietario del bucket. Quindi l'utente dell'Account AccountAadmin A farà quanto segue: 
+ Creare un bucket.
+ Allega una policy del bucket che conceda all'amministratore dell'account B l'autorizzazione a caricare oggetti.
+ Crea un ruolo IAM che conceda all'account C l'autorizzazione ad assumere il ruolo in modo da poter accedere agli oggetti del bucket.

### Passaggio 1.1: accedi a Console di gestione AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in-example4"></a>

Utilizzando l'URL di accesso dell'utente IAM per l'account A, accedi prima all'account Console di gestione AWS come **AccountAadmin** utente. Questo utente creerà un bucket e vi allegherà una policy. 

### Fase 1.2: creare un bucket e allegarlo alla policy di bucket
<a name="access-policies-walkthrough-example2d-step1-1"></a>

Nella console di Amazon S3 effettuare quanto segue:

1. Creare un bucket. In questo esercizio si presume che il nome del bucket sia `amzn-s3-demo-bucket1`.

   Per istruzioni, consulta [Creazione di un bucket per uso generico](create-bucket-overview.md). 

1. Allega la seguente policy del bucket. La policy concede all'amministratore dell'account B l'autorizzazione condizionata a caricare gli oggetti.

   Aggiorna la policy fornendo valori personalizzati per `amzn-s3-demo-bucket1`, `AccountB-ID`, e `CanonicalUserId-of-AWSaccountA-BucketOwner`. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "111",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/AccountBadmin"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*"
           },
           {
               "Sid": "112",
               "Effect": "Deny",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/AccountBadmin"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
               "Condition": {
                   "StringNotEquals": {
                       "s3:x-amz-grant-full-control": "id=CanonicalUserId-of-AWSaccountA-BucketOwner"
                   }
               }
           }
       ]
   }
   ```

------

### Fase 1.3: Creare un ruolo IAM per consentire all'account C l'accesso multi-account all'account A
<a name="access-policies-walkthrough-example2d-step1-2"></a>

Nella [Console IAM](https://console.aws.amazon.com/iam/), crea un ruolo IAM (**examplerole**) che conceda all'account C l'autorizzazione ad assumere il ruolo. Assicurati di aver effettuato l'accesso come amministratore dell'account A, poiché il ruolo deve essere creato nell'account A.

1. Prima di creare il ruolo, preparare la policy gestita che definisce le autorizzazioni richieste dal ruolo. La policy verrà collegata al ruolo in una fase successiva.

   1. Nel riquadro di navigazione a sinistra, seleziona **Policy** e poi **Crea policy**.

   1. Accanto a **Create Your Own Policy** (Crea la tua policy) scegli **Select** (Seleziona).

   1. Immettere **access-accountA-bucket** nel campo **Policy Name (Nome policy)**.

   1. Copiare la seguente policy di accesso e incollarla nel campo **Policy Document (Documento policy)**. La policy di accesso concede l'autorizzazione al ruolo `s3:GetObject`, quindi, quando l'utente Account C assume il ruolo, può eseguire solo l'operazione `s3:GetObject`.

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*"
          }
        ]
      }
      ```

------

   1. Scegli **Crea policy**.

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

1. Nel riquadro di navigazione a sinistra, scegli **Ruoli** e quindi **Crea nuovo ruolo**.

1. In **Seleziona il tipo di ruolo**, seleziona **Ruolo per l'accesso su più account**, quindi scegli il pulsante **Seleziona** accanto a **Fornisci l'accesso tra i Account AWS tuoi** utenti.

1. Immettere l'ID account dell'Account C.

   Per questa guida, non è necessario richiedere agli utenti l'autenticazione a più fattori (MFA) per assumere il ruolo, quindi lasciare l'opzione deselezionata.

1. Scegli **Fase successiva** per impostare le autorizzazioni associate al ruolo.

1. 

   Seleziona la casella di controllo accanto alla policy **access-accountA-bucket** creata, quindi scegli **Fase successiva**.

   Viene visualizzata la pagina Review (Revisione) che consente di confermare le impostazioni per il ruolo prima che venga creato. Questa pagina contiene una voce molto importante, ossia il collegamento che è possibile inviare agli utenti che hanno necessità di utilizzare questo ruolo. Gli utenti che utilizzano il link accedono direttamente alla pagina **Cambia ruolo** con i campi ID account e Nome ruolo già compilati. Questo link è visibile anche in seguito nella pagina di **riepilogo dei ruoli** per qualsiasi multi-account.

1. Immetti `examplerole` per il nome del ruolo, quindi scegli **Fase successiva**.

1. Dopo aver esaminato il ruolo, scegli **Crea ruolo**.

   Il ruolo `examplerole` viene visualizzato nell'elenco dei ruoli.

1. Scegli il nome del ruolo `examplerole`.

1. Selezionare la scheda **Trust Relationships (Relazioni di trust)**.

1. Scegli **Mostra documento della policy** e verifica che la policy di attendibilità mostrata corrisponda alla policy seguente.

   Le seguente policy di attendibilità stabilisce l'attendibilità con l'Account C, consentendogli di eseguire l'operazione `sts:AssumeRole`. Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) nella *documentazione di riferimento dell’API AWS Security Token Service *.

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

****  

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

------

1. Osserva il nome della risorsa Amazon (ARN) del ruolo `examplerole` creato. 

   Nelle fasi successive verrà illustrato come allegare una policy utente per consentire all'utente IAM di assumere questo ruolo e come identificare il ruolo mediante il valore ARN. 

## Fase 2: esecuzione delle attività per l'Account B
<a name="access-policies-walkthrough-example4-step2"></a>

Il bucket di esempio di proprietà dell'Account A necessita di oggetti di proprietà di altri account. In questa fase, l'amministratore dell'Account B carica un oggetto mediante gli strumenti a riga di comando.
+ Utilizzando il `put-object` AWS CLI comando, carica un oggetto su. `amzn-s3-demo-bucket1` 

  ```
  aws s3api put-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --body HappyFace.jpg --grant-full-control id="canonicalUserId-ofTheBucketOwner" --profile AccountBadmin
  ```

  Tenere presente quanto segue:
  + Il parametro `--Profile` specifica il profilo `AccountBadmin`, quindi l'oggetto è di proprietà dell'account B.
  + Il parametro `grant-full-control` concede al proprietario del bucket l'autorizzazione al controllo completo sull'oggetto, come richiesto dalla policy di bucket.
  + Il parametro `--body` identifica il file di origine da caricare. Ad esempio, se il file si trova nell'unità C: di un computer Windows, si specifica `c:\HappyFace.jpg`. 

## Fase 3: Eseguire le attività dell'Account C
<a name="access-policies-walkthrough-example4-step3"></a>

Nei passaggi precedenti, l'account A ha già creato un ruolo, `examplerole`, che stabilisce un rapporto di attendibilità con l'account C. Questo ruolo consente agli utenti dell'account C di accedere all'account A. In questo passaggio, l'amministratore dell'account C crea un utente (Dave) e gli delega il permesso `sts:AssumeRole` ricevuto dall'account A. Questo approccio consente a Dave di assumere il ruolo `examplerole` e di ottenere temporaneamente l'accesso all'account A. La policy di accesso che l'account A ha collegato al ruolo limita ciò che Dave può fare quando accede all'account A, in particolare ottenere oggetti in `amzn-s3-demo-bucket1`.

### Fase 3.1: Creare un utente nel conto C e delegare l'autorizzazione ad assumere examplerole
<a name="cross-acct-access-using-role-step3-1"></a>

1. Utilizzando l'URL di accesso utente IAM per l'account C, accedi prima all'**AccountCadmin**utente Console di gestione AWS as. 

   

1. Nella [console IAM](https://console.aws.amazon.com/iam/), crea un utente, Dave. 

   Per step-by-step istruzioni, consulta [Creating IAM users (Console di gestione AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) nella *IAM User Guide*. 

1. Annota le credenziali di Dave. Dave dovrà utilizzare queste credenziali per assumere il ruolo `examplerole`.

1. Crea una policy in linea per l'utente IAM Dave per delegare a Dave l'autorizzazione `sts:AssumeRole` sul ruolo `examplerole` nell'account A. 

   1. Nel riquadro di navigazione sinistro, scegli **Utenti**.

   1. Scegli il nome utente **Dave**.

   1. Nella pagina dei dettagli dell'utente, selezionare la scheda **Permissions (Autorizzazioni)**, quindi espandere la sezione **Inline Policies (Policy inline)**.

   1. Scegliere **click here (fai clic qui)** oppure **Create User Policy (Crea policy di utente)**.

   1. Scegliere **Custom Policy (Policy personalizzata)** quindi **Select (Seleziona)**.

   1. Immettere un nome per la policy nel campo **Policy Name (Nome policy)**.

   1. Copiare la seguente policy nel campo **Policy Document (Documento policy)**.

      È necessario aggiornare la policy fornendo `AccountA-ID`.

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

****  

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

------

   1. Scegli **Apply Policy** (Applica policy).

1. Salva le credenziali di Dave nel file di configurazione di AWS CLI aggiungendo un altro profilo,. `AccountCDave`

   ```
   [profile AccountCDave]
   aws_access_key_id = UserDaveAccessKeyID
   aws_secret_access_key = UserDaveSecretAccessKey
   region = us-west-2
   ```

### Fase 3.2: Assumere il ruolo (examplerole) e accedere agli oggetti
<a name="cross-acct-access-using-role-step3-2"></a>

Ora Dave può accedere agli oggetti nel bucket di proprietà dell'Account A nel modo seguente:
+ Per prima cosa, Dave assume il ruolo `examplerole` utilizzando le sue credenziali personali. Questa operazione restituirà le credenziali temporanee.
+ Dave utilizzerà le credenziali temporanee per accedere agli oggetti nel bucket dell'Account A.

1. Al prompt dei comandi, esegui il AWS CLI `assume-role` comando seguente utilizzando il profilo. `AccountCDave` 

   È necessario aggiornare il valore ARN nel comando fornendo l'`AccountA-ID` dove è definito `examplerole`.

   ```
   aws sts assume-role --role-arn arn:aws:iam::AccountA-ID:role/examplerole --profile AccountCDave --role-session-name test
   ```

   In risposta, AWS Security Token Service (AWS STS) restituisce credenziali di sicurezza temporanee (ID della chiave di accesso, chiave di accesso segreta e un token di sessione).

1. Salva le credenziali di sicurezza temporanee nel file di AWS CLI configurazione sotto il profilo. `TempCred`

   ```
   [profile TempCred]
   aws_access_key_id = temp-access-key-ID
   aws_secret_access_key = temp-secret-access-key
   aws_session_token = session-token
   region = us-west-2
   ```

1. Al prompt dei comandi, esegui il AWS CLI comando seguente per accedere agli oggetti utilizzando le credenziali temporanee. Ad esempio, il comando specifica l'API head-object per recuperare i metadata dell'oggetto per l'oggetto `HappyFace.jpg`.

   ```
   aws s3api get-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg SaveFileAs.jpg --profile TempCred
   ```

   Dal momento che la policy di accesso collegata a `examplerole` consente l'esecuzione delle operazioni, Amazon S3 elabora la richiesta. È possibile provare ad eseguire un'altra operazione su qualsiasi altro oggetto nel bucket.

   Se si tenta un'altra azione, ad esempio `get-object-acl`, l'autorizzazione sarà negata perché il ruolo non è autorizzato a eseguire tale azione.

   ```
   aws s3api get-object-acl --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --profile TempCred
   ```

   È stato utilizzato l'utente Dave per assumere il ruolo e accedere all'oggetto mediante le credenziali temporanee. L'accesso agli oggetti in `amzn-s3-demo-bucket1` può essere effettuato anche da un'applicazione nell'Account C. L'applicazione può ottenere credenziali di sicurezza temporanee e l'Account C può delegare all'applicazione le autorizzazioni per assumere `examplerole`.

## Fase 4: pulizia
<a name="access-policies-walkthrough-example4-step6"></a>

1. Una volta terminato il test, è possibile eseguire le seguenti operazioni di pulizia:

   1. Accedi alla [Console di gestione AWS](https://console.aws.amazon.com/) utilizzando le credenziali dell'Account A e procedere come di seguito:
     + Nella console di Amazon S3 rimuovere la policy del bucket collegata a `amzn-s3-demo-bucket1`. Nelle **Proprietà** del bucket, elimina la policy nella sezione **Autorizzazioni**. 
     + Se il bucket è stato creato per questo esercizio, nella console di Amazon S3 eliminare gli oggetti e quindi il bucket. 
     + Nella [console IAM](https://console.aws.amazon.com/iam/), rimuovi l'account `examplerole` che hai creato nell'account A. Per step-by-step istruzioni, consulta [Eliminazione di un utente IAM nella Guida per l'utente](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) *IAM*. 
     + Nella [Console IAM](https://console.aws.amazon.com/iam/), rimuovi l'utente **AccountAadmin**.

1. Accedi alla [Console IAM](https://console.aws.amazon.com/iam/) utilizzando le credenziali dell'account B. Elimina l'utente **AccountBadmin**. 

1. Accedi alla [Console IAM](https://console.aws.amazon.com/iam/) utilizzando le credenziali dell'Account C. Elimina **AccountCadmin**e l'utente Dave.

## Risorse correlate
<a name="RelatedResources-managing-access-example4"></a>

Per ulteriori informazioni relative a questa guida, consulta le seguenti risorse nella *Guida all'utente IAM*:
+ [Creazione di un ruolo per delegare le autorizzazioni a un utente IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)
+ [Tutorial: delega l'accesso Account AWS tramite i ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial-cross-account-with-roles.html)
+ [Gestione delle policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html)