

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

# 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**.