Concessione delle autorizzazioni per l’archiviazione multi-account in Amazon S3 - Amazon SageMaker

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

Quando configuri il SageMaker dominio 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 SageMaker creato di default 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

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.

  • La versione finale di Amazon S3 URI per la cartella di formazione nella posizione di archiviazione di Canvas deve contenere al massimo 128 caratteri. L'ultimo S3 URI è costituito dal percorso del 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

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 in Guida per l'utente di Amazon S3.

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

  2. L'utente Canvas esiste in un altro account chiamato Account B. Nei seguenti passaggi, ci riferiamo al IAM ruolo dell'utente Canvas come roleB in Account B.

    Concedi al IAM ruolo roleB nell'Account B il permesso di scaricare (GetObject) e caricare (PutObject) oggetti da e verso l'Account bucketA A allegando una IAM policy.

    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 Come posso utilizzare IAM le politiche per concedere l'accesso specifico dell'utente a cartelle specifiche?

    Nota

    Le operazioni a livello di bucket, come GetBucketCors e GetBucketLocation, devono essere aggiunte alle risorse a livello di bucket, non alle cartelle.

    La seguente IAM politica di esempio concede le autorizzazioni necessarie per accedere roleB agli oggetti in: bucketA

    { "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", ] } ] }
  3. Configura la policy bucket per l'Account bucketA A per concedere le autorizzazioni al ruolo nell'IAMAccount B. roleB

    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:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB:role/roleB" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::bucketA/FolderName/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB: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 bucket Amazon S3 tra account crittografati con AWS KMS

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 sulla concessione dell'accesso alle KMS chiavi tra account diversi, consulta Consentire agli utenti di altri account di utilizzare una KMS chiave nella Guida per gli sviluppatori.AWS KMS

  1. Crea un bucket Amazon S3 e una chiave bucketA Amazon KMS S3 nell'Account A. s3KmsInAccountA

  2. L'utente Canvas esiste in un altro account chiamato Account B. Nei seguenti passaggi, ci riferiamo al IAM ruolo dell'utente Canvas come roleB nell'Account B.

    Concedi al IAM ruolo roleB nell'Account B il permesso di eseguire le seguenti operazioni:

    • Scarica (GetObject) e carica (PutObject) oggetti da e verso bucketA nell'Account A.

    • Accedi alla AWS KMS chiave s3KmsInAccountA nell'Account A.

    La seguente IAM politica di esempio concede le autorizzazioni necessarie per accedere roleB agli oggetti bucketA e utilizzare la KMS chiave: s3KmsInAccountA

    { "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:{region}:accountA:key/s3KmsInAccountA" } ] }
  3. Configura la policy bucket per bucketA e la policy chiave per l'Account s3KmsInAccountA A per concedere le autorizzazioni al ruolo nell'Account B. IAM roleB

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

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

    L'esempio seguente è una politica chiave che alleghi alla KMS chiave s3KmsInAccountA nell'Account A per concedere roleB l'accesso. Per ulteriori informazioni su come creare e collegare un’istruzione della policy della chiave, consulta Creating a key policy 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ò ora utilizzare il bucket Amazon S3 crittografato nell'Account A come posizione di archiviazione per gli artefatti Canvas.