

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

# Concessione delle autorizzazioni per l’archiviazione multi-account in Amazon S3
<a name="canvas-permissions-cross-account"></a>

Quando configuri il tuo dominio SageMaker AI o il profilo utente per consentire agli utenti di accedere a SageMaker Canvas, specifichi una posizione di archiviazione Amazon S3 per gli artefatti Canvas. Questi artefatti includono copie salvate dei set di dati di input, degli artefatti del modello, delle previsioni e di altri dati dell'applicazione. Puoi utilizzare il bucket Amazon S3 predefinito creato dall' SageMaker IA oppure personalizzare la posizione di archiviazione e specificare il tuo bucket per archiviare i dati delle applicazioni Canvas.

Puoi specificare un bucket Amazon S3 in un altro AWS account per archiviare i tuoi dati Canvas, ma prima devi concedere le autorizzazioni per più account in modo che Canvas possa accedere al bucket.

Le seguenti sezioni descrivono come concedere le autorizzazioni a Canvas per caricare e scaricare oggetti da e verso un bucket Amazon S3 in un altro account. Sono disponibili autorizzazioni aggiuntive per quando il bucket è crittografato con. AWS KMS

## Requisiti
<a name="canvas-permissions-cross-account-prereqs"></a>

Prima di iniziare, verifica i seguenti requisiti:
+ I bucket Amazon S3 per più account (e tutte le chiavi AWS KMS associate) devono trovarsi nella AWS stessa regione del dominio utente o del profilo utente Canvas.
+ L'URI finale di Amazon S3 per la cartella di addestramento nel percorso di archiviazione di Canvas deve contenere al massimo 128 caratteri. L'URI finale di S3 è costituito dal percorso bucket `s3://<your-bucket-name>/<folder-name>/` più il percorso che Canvas aggiunge al bucket: `Canvas/<user-profile-name>/Training`. Ad esempio, un percorso accettabile che contenga meno di 128 caratteri può essere `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`.

## Autorizzazioni per bucket Amazon S3 multi-account
<a name="canvas-permissions-cross-account-s3"></a>

La sezione seguente descrive le fasi di base per concedere le autorizzazioni necessarie in modo che Canvas possa accedere al tuo bucket Amazon S3 in un altro account. Per istruzioni più dettagliate, consulta [Example 2: bucket owner granting cross-account bucket permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html) in *Guida per l'utente di Amazon S3*.

1. Creazione di un bucket Amazon S3, `bucketA`, in Account A.

1. L'utente Canvas esiste in un altro account chiamato Account B. Nelle fasi seguenti, facciamo riferimento al ruolo IAM dell'utente di Canvas come `roleB` nell'Account B.

   Concedi al ruolo IAM `roleB` nell'Account B l'autorizzazione a scaricare (`GetObject`) e caricare (`PutObject`) oggetti da e verso `bucketA` nell'Account A, collegando una policy IAM.

   Per limitare l'accesso a una cartella di bucket specifica, definisci il nome cartella nell'elemento della risorsa, ad esempio `arn:aws:s3:::<bucketA>/FolderName/*`. Per ulteriori informazioni, consulta [How can I use IAM policies to grant user-specific access to specific folders?](https://aws.amazon.com/premiumsupport/knowledge-center/iam-s3-user-specific-folder/)
**Nota**  
Le operazioni a livello di bucket, come `GetBucketCors` e `GetBucketLocation`, devono essere aggiunte alle risorse a livello di bucket, non alle cartelle.

   L'esempio seguente di policy IAM concede le autorizzazioni necessarie a `roleB` per accedere agli oggetti in `bucketA`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           }
       ]
   }
   ```

------

1. Configura la policy del bucket per `bucketA` nell'Account A per concedere le autorizzazioni al ruolo IAM `roleB` nell'Account B.
**Nota**  
Gli amministratori devono inoltre disattivare l'opzione **Blocca tutti gli accessi pubblici** nella sezione **Autorizzazioni** del bucket.

   Quello che segue è un esempio di policy del bucket per `bucketA` affinché siano concesse le autorizzazioni necessarie a `roleB`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

Dopo aver configurato le autorizzazioni precedenti, il tuo profilo utente Canvas nell'Account B può utilizzare il bucket Amazon S3 nell'Account A come percorso di archiviazione per gli artefatti Canvas.

## Autorizzazioni per i bucket Amazon S3 tra account crittografati con AWS KMS
<a name="canvas-permissions-cross-account-s3-kms"></a>

La procedura seguente mostra come concedere le autorizzazioni necessarie in modo che Canvas possa accedere al tuo bucket Amazon S3 in un altro account crittografato con. AWS KMS Le fasi sono simili a quelle della procedura precedente, ma con autorizzazioni aggiuntive. Per ulteriori informazioni su come concedere l'accesso multi-account a una chiave KMS, consulta [Allowing users in other accounts to use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in *AWS KMS Guida per gli sviluppatori*.

1. Crea un bucket Amazon S3, `bucketA`, e una chiave KMS di Amazon S3, `s3KmsInAccountA`, nell’Account A.

1. L'utente Canvas esiste in un altro account chiamato Account B. Nelle fasi seguenti, facciamo riferimento al ruolo IAM dell'utente di Canvas come `roleB` nell'Account B.

   Concedi al ruolo IAM `roleB` nell'Account B l'autorizzazione a procedere come segue:
   + Scarica (`GetObject`) e carica (`PutObject`) oggetti da e verso `bucketA` nell'Account A.
   + Accedi alla AWS KMS chiave `s3KmsInAccountA` nell'Account A.

   L'esempio seguente di policy IAM concede le autorizzazioni necessarie a `roleB` per accedere agli oggetti in `bucketA` e utilizzare la chiave KMS `s3KmsInAccountA`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           },
           {
               "Action": [
                   "kms:DescribeKey",
                   "kms:CreateGrant",
                   "kms:RetireGrant",
                   "kms:GenerateDataKey",
                   "kms:GenerateDataKeyWithoutPlainText",
                   "kms:Decrypt"
               ],
               "Effect": "Allow",
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/s3KmsInAccountA"
           }
       ]
   }
   ```

------

1. Configura la policy del bucket per `bucketA` e la policy della chiave per `s3KmsInAccountA` nell'Account A per concedere le autorizzazioni al ruolo IAM `roleB` nell'Account B.

   Quello che segue è un esempio di policy del bucket per `bucketA` affinché siano concesse le autorizzazioni necessarie a `roleB`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

   L'esempio seguente è una policy della chiave da collegare alla chiave KMS `s3KmsInAccountA` nell'account A per concedere l'accesso a `roleB`. Per ulteriori informazioni su come creare e collegare un’istruzione della policy della chiave, consulta [Creating a key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) in *AWS KMS Guida per gli sviluppatori*.

   ```
   {
     "Sid": "Allow use of the key",
     "Effect": "Allow",
     "Principal": {
       "AWS": [
         "arn:aws:iam::accountB:role/roleB"
       ]
     },
     "Action": [
           "kms:DescribeKey",
           "kms:CreateGrant",
           "kms:RetireGrant",
           "kms:GenerateDataKey",
           "kms:GenerateDataKeyWithoutPlainText",
           "kms:Decrypt"
     ],
     "Resource": "*"
   }
   ```

Dopo aver configurato le autorizzazioni precedenti, il tuo profilo utente Canvas nell’Account B può utilizzare il bucket Amazon S3 nell’Account A come posizione di archiviazione per gli artefatti Canvas.