Octroi d'autorisations pour le stockage Amazon S3 entre comptes
Lorsque vous configurez votre domaine ou votre profil utilisateur SageMaker AI 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 d’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 par défaut créé par SageMaker AI, 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 compte AWS 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 dans le cas où votre compartiment est chiffré avec AWS KMS.
Exigences
Avant de commencer, passez en revue les conditions requises suivantes :
Les compartiments Amazon S3 entre comptes (et toutes les clés AWS KMS associées) doivent se trouver dans la même région AWS que le domaine ou le profil utilisateur de l’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
roleBdans le Compte B.Accordez au rôle IAM
roleBdans le Compte B l'autorisation de télécharger (GetObject) et de charger (PutObject) des objets dans et à partir debucketAdans 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
GetBucketCorsetGetBucketLocation, 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 à
roleBd'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
bucketAdans le Compte A afin d'accorder des autorisations au rôle IAMroleBdans 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 stratégie de compartiment permettant à
bucketAd’accorder les autorisations nécessaires àroleB:
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 entre comptes 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 dans un autre compte chiffré 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 Guide du développeur AWS KMS.
-
Créez un compartiment Amazon S3
bucketAet une clé KMS Amazon S3s3KmsInAccountAdans 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
roleBdans le Compte B.Accordez au rôle IAM
roleBdans le Compte B l'autorisation d'effectuer les opérations suivantes :Télécharger (
GetObject) et charger (PutObject) des objets vers et à partir debucketAdans le Compte A.Accéder à la clé AWS KMS
s3KmsInAccountAdans le Compte A.
L'exemple de politique IAM suivant accorde les autorisations requises permettant à
roleBd'accéder aux objets dansbucketAet d'utiliser la clé KMSs3KmsInAccountA: -
Configurez la politique de compartiment de
bucketAet la stratégie de clé des3KmsInAccountAdans le Compte A afin d'accorder des autorisations au rôle IAMroleBdans le Compte B.Voici un exemple de politique de compartiment permettant à
bucketAd'accorder les autorisations nécessaires àroleB:L'exemple suivant est une stratégie de clé que vous attachez à la clé KMS
s3KmsInAccountAdans 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 Guide 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.