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 domaine SageMaker AI 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 créé par défaut par l' SageMaker IA, 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'URI Amazon S3 final du dossier d'entraînement dans votre emplacement de stockage Canvas doit comporter 128 caractères ou moins. L'URI S3 final se compose du chemin de votre compartiment (
s3://<your-bucket-name>/<folder-name>/
) et du 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. Au cours des étapes suivantes, nous appellerons le rôle IAM de l'utilisateur Canvas
roleB
dans le Compte B.Accordez au rôle IAM
roleB
dans le Compte B l'autorisation de télécharger (GetObject
) et de charger (PutObject
) des objets dans et à partir debucketA
dans le Compte A en attachant une politique IAM.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, consultez Comment utiliser des politiques IAM pour accorder un accès utilisateur à certains dossiers ?(langue française non garantie). 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 politique IAM suivant accorde les autorisations requises permettant à
roleB
d'accéder aux objets debucketA
:{ "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 de
bucketA
dans le Compte A afin d'accorder des autorisations au rôle IAMroleB
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 à une clé KMS entre comptes, consultez Autorisation d'utilisateurs d'autres comptes à utiliser une clé KMS dans le Manuel du développeur AWS KMS (langue française non garantie).
-
Créez un compartiment Amazon S3 et une clé Amazon S3 KMS
s3KmsInAccountA
dans le compte A.bucketA
-
L'utilisateur Canvas existe dans un autre compte appelé Compte B. Au cours des étapes suivantes, nous appellerons le rôle IAM de l'utilisateur Canvas
roleB
dans le Compte B.Accordez au rôle IAM
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 politique IAM suivant accorde les autorisations requises permettant à
roleB
d'accéder aux objets dansbucketA
et d'utiliser la clé KMSs3KmsInAccountA
:{ "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 de
bucketA
et la stratégie de clé des3KmsInAccountA
dans le Compte A afin d'accorder des autorisations au rôle IAMroleB
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 stratégie de clé que vous attachez à la clé KMS
s3KmsInAccountA
dans le Compte A pour accorder l'accès àroleB
. 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.