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ò esseres3://<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.
-
Creazione di un bucket Amazon S3,
bucketA
, in Account A. -
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'AccountbucketA
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
eGetBucketLocation
, 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", ] } ] }
-
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 aroleB
:{ "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
-
Crea un bucket Amazon S3 e una chiave
bucketA
Amazon KMS S3 nell'Account A.s3KmsInAccountA
-
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 versobucketA
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 oggettibucketA
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" } ] }
-
Configura la policy bucket per
bucketA
e la policy chiave per l'Accounts3KmsInAccountA
A per concedere le autorizzazioni al ruolo nell'Account B. IAMroleB
Quello che segue è un esempio di policy del bucket per
bucketA
affinché siano concesse le autorizzazioni necessarie aroleB
:{ "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 concedereroleB
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.