Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Octroi d'autorisations pour le stockage Amazon S3 entre comptes
Lorsque vous configurez votre SageMaker domaine ou votre profil utilisateur pour que les utilisateurs puissent accéder à SageMaker Canvas, vous spécifiez un emplacement de stockage Amazon S3 pour les artefacts Canvas. Ces artefacts incluent des copies enregistrées de vos jeux de données en entrée, des artefacts de modèle, des prédictions et d'autres données d'application. Vous pouvez soit utiliser le compartiment Amazon S3 SageMaker créé par défaut, soit personnaliser l'emplacement de stockage et spécifier votre propre compartiment pour stocker les données de l'application Canvas.
Vous pouvez spécifier un compartiment Amazon S3 dans un autre AWS compte pour stocker vos données Canvas, mais vous devez d'abord accorder des autorisations entre comptes afin que Canvas puisse accéder au compartiment.
Les sections suivantes expliquent comment accorder des autorisations à Canvas pour le chargement et le téléchargement d'objets vers et à partir d'un compartiment Amazon S3 dans un autre compte. Il existe des autorisations supplémentaires lorsque votre bucket est crypté avec AWS KMS.
Prérequis
Avant de commencer, passez en revue les conditions requises suivantes :
Les compartiments Amazon S3 multicomptes (et toutes AWS KMS les clés associées) doivent se trouver dans la même AWS région que le domaine ou le profil utilisateur Canvas.
L'Amazon S3 final URI pour le dossier de formation de votre emplacement de stockage Canvas doit comporter 128 caractères ou moins. Le S3 final URI comprend le chemin de votre compartiment
s3://<your-bucket-name>/<folder-name>/
plus le chemin que Canvas ajoute à votre compartiment :Canvas/<user-profile-name>/Training
. Voici par exemple un chemin acceptable de moins de 128 caractères :s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training
.
Autorisations pour les compartiments Amazon S3 entre comptes
La section suivante décrit les étapes de base permettant d'accorder les autorisations nécessaires afin que Canvas puisse accéder à votre compartiment Amazon S3 dans un autre compte. Pour des instructions plus détaillées, consultez l'Exemple 2 : propriétaire d'un compartiment accordant à ses utilisateurs des autorisations entre comptes sur un compartiment dans le Guide de l'utilisateur Amazon S3.
-
Créez un compartiment Amazon S3 (
bucketA
) dans le Compte A. -
L'utilisateur Canvas existe dans un autre compte appelé compte B. Dans les étapes suivantes, nous nous référons au IAM rôle de l'utilisateur Canvas comme
roleB
dans le compte B.Donnez
roleB
au IAM rôle du compte B l'autorisation de télécharger (GetObject
) et de télécharger (PutObject
) des objets depuis et versbucketA
le compte A en joignant une IAM politique.Pour limiter l'accès à un dossier de compartiment spécifique, définissez le nom du dossier dans l'élément de ressource ; par exemple,
arn:aws:s3:::<bucketA>/FolderName/*
. Pour plus d'informations, voir Comment utiliser des IAM politiques pour accorder un accès spécifique à un utilisateur à des dossiers spécifiques ?Note
Les actions au niveau du compartiment, telles que
GetBucketCors
etGetBucketLocation
, doivent être ajoutées aux ressources au niveau du compartiment, et non aux dossiers.L'exemple de IAM politique suivant accorde les autorisations requises pour accéder
roleB
aux objets dansbucketA
:{ "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", ] } ] }
-
Configurez la politique de compartiment pour
bucketA
le compte A afin d'accorder des autorisations au IAM rôleroleB
dans le compte B.Note
Les administrateurs doivent également désactiver l'option Bloquer tous les accès publics dans la section Autorisations du compartiment.
Voici un exemple de politique de compartiment permettant à
bucketA
d'accorder les autorisations nécessaires à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" } ] }
Après avoir configuré les autorisations précédentes, votre profil utilisateur Canvas dans le Compte B peut désormais utiliser le compartiment Amazon S3 dans le Compte A comme emplacement de stockage pour les artefacts Canvas.
Autorisations pour les compartiments Amazon S3 multicomptes chiffrés avec AWS KMS
La procédure suivante explique comment accorder les autorisations nécessaires pour que Canvas puisse accéder à votre compartiment Amazon S3 depuis un autre compte crypté avec AWS KMS. Les étapes sont similaires à la procédure ci-dessus, mais avec des autorisations supplémentaires. Pour plus d'informations sur l'octroi d'un accès par KMS clé entre comptes, voir Autoriser les utilisateurs d'autres comptes à utiliser une KMS clé dans le Guide du AWS KMS développeur.
-
Créez un compartiment Amazon S3 et une KMS clé Amazon S3
s3KmsInAccountA
dans le compte A.bucketA
-
L'utilisateur Canvas existe dans un autre compte appelé compte B. Dans les étapes suivantes, nous nous référons au IAM rôle de l'utilisateur Canvas comme
roleB
dans le compte B.Donnez au IAM rôle
roleB
dans le compte B l'autorisation d'effectuer les opérations suivantes :Télécharger (
GetObject
) et charger (PutObject
) des objets vers et à partir debucketA
dans le Compte A.Accédez à la AWS KMS clé
s3KmsInAccountA
dans le compte A.
L'exemple de IAM politique suivant accorde les autorisations requises
roleB
pour accéder aux objetsbucketA
et utiliser la KMS clé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" } ] }
-
Configurez la politique de compartiment
bucketA
et la politique clé pours3KmsInAccountA
le compte A afin d'accorder des autorisations au IAM rôleroleB
dans le compte B.Voici un exemple de politique de compartiment permettant à
bucketA
d'accorder les autorisations nécessaires à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'exemple suivant est une politique clé que vous associez à la KMS clé
s3KmsInAccountA
dans le compte A pour accorderroleB
l'accès. Pour plus d'informations sur la création et l'attachement d'une instruction de stratégie de clé, consultez Création d'une stratégie de clé dans le Manuel du développeur AWS KMS .{ "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": "*" }
Après avoir configuré les autorisations précédentes, votre profil utilisateur Canvas dans le compte B peut désormais utiliser le compartiment Amazon S3 chiffré dans le compte A comme emplacement de stockage pour les artefacts Canvas.