Comment utiliser les rôles d'exécution de l' SageMaker IA - Amazon SageMaker AI

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.

Comment utiliser les rôles d'exécution de l' SageMaker IA

Amazon SageMaker AI effectue des opérations en votre nom à l'aide d'autres AWS services. Vous devez accorder à SageMaker l'IA des autorisations pour utiliser ces services et les ressources sur lesquelles ils agissent. Vous accordez ces autorisations à SageMaker AI à l'aide d'un rôle d'exécution Gestion des identités et des accès AWS (IAM). Pour plus d’informations sur les rôles IAM, consultez Rôles IAM.

Pour créer et utiliser un rôle d'exécution, vous pouvez utiliser les procédures suivantes.

Créer un rôle d’exécution

Utilisez la procédure suivante pour créer un rôle d’exécution avec la politique gérée IAM, AmazonSageMakerFullAccess, attachée. Si votre cas d’utilisation nécessite des autorisations plus détaillées, utilisez d’autres sections de cette page pour créer un rôle d’exécution qui répond aux besoins de votre entreprise. Vous pouvez créer un rôle d'exécution à l'aide de la console SageMaker AI ou du AWS CLI.

Important

La politique gérée IAM, AmazonSageMakerFullAccess, utilisée dans la procédure suivante, n’accorde que l’autorisation du rôle d’exécution pour effectuer certaines actions Amazon S3 sur des compartiments ou des objets avec SageMaker, Sagemaker, sagemaker, ou aws-glue dans le nom. Pour savoir comment ajouter une politique supplémentaire à un rôle d’exécution pour lui accorder l’accès à d’autres compartiments et objets Amazon S3, consultez Ajouter des autorisations Amazon S3 supplémentaires à un rôle d'exécution SageMaker AI.

Note

Vous pouvez créer un rôle d'exécution directement lorsque vous créez un domaine SageMaker AI ou une instance de bloc-notes.

Pour créer un nouveau rôle d'exécution depuis la console SageMaker AI

  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Choisissez Roles (Rôles), puis Create role (Créer un rôle).

  3. Conservez le AWS service comme type d'entité de confiance, puis utilisez la flèche vers le bas pour trouver l'SageMaker IA dans Cas d'utilisation pour d'autres AWS services.

  4. Choisissez SageMaker AI — Execution, puis Next.

  5. La politique gérée IAM, AmazonSageMakerFullAccess, est automatiquement attachée au rôle. Pour afficher les autorisations incluses dans cette politique, choisissez le signe plus (+) à côté du nom de la politique. Choisissez Suivant.

  6. Entrez un nom de rôle et une description.

  7. (Facultatif) Ajoutez des autorisations et des balises supplémentaires au rôle.

  8. Choisissez Créer un rôle.

  9. Dans la section Rôles de la console IAM, recherchez le rôle que vous venez de créer. Si nécessaire, utilisez la zone de texte pour rechercher le rôle à l'aide du nom de rôle.

  10. Sur la page de résumé, prenez note de l’ARN.

Pour créer un nouveau rôle d'exécution depuis AWS CLI

Avant de créer un rôle d'exécution à l'aide du AWS CLI, assurez-vous de le mettre à jour et de le configurer en suivant les instructions figurant dans(Facultatif) Configurez le AWS CLI, puis poursuivez avec les instructions contenues dansConfiguration personnalisée à l'aide du AWS CLI.

Une fois que vous avez créé un rôle d'exécution, vous pouvez l'associer à un domaine SageMaker AI, à un profil utilisateur ou à une instance de bloc-notes Jupyter.

Vous pouvez également transmettre l'ARN d'un rôle d'exécution à votre appel d'API. Par exemple, à l'aide du SDK Amazon SageMaker Python, vous pouvez transmettre l'ARN de votre rôle d'exécution à un estimateur. Dans l'exemple de code qui suit, nous créons un estimateur à l'aide du conteneur d' XGBoostalgorithmes et transmettons l'ARN du rôle d'exécution en tant que paramètre. Pour un exemple complet GitHub, voir Customer Churn Prediction with XGBoost.

import sagemaker, boto3 from sagemaker import image_uris sess = sagemaker.Session() region = sess.boto_region_name bucket = sess.default_bucket() prefix = "sagemaker/DEMO-xgboost-churn" container = sagemaker.image_uris.retrieve("xgboost", region, "1.7-1") xgb = sagemaker.estimator.Estimator( container, execution-role-ARN, instance_count=1, instance_type="ml.m4.xlarge", output_path="s3://{}/{}/output".format(bucket, prefix), sagemaker_session=sess, ) ...

Ajouter des autorisations Amazon S3 supplémentaires à un rôle d'exécution SageMaker AI

Lorsque vous utilisez une fonctionnalité d' SageMaker IA avec des ressources dans Amazon S3, telles que des données d'entrée, le rôle d'exécution que vous spécifiez dans votre demande (par exempleCreateTrainingJob) est utilisé pour accéder à ces ressources.

Si vous attachez la politique gérée IAM, AmazonSageMakerFullAccess, à un rôle d’exécution, ce rôle a l’autorisation d’effectuer certaines actions Amazon S3 sur des compartiments ou des objets avec SageMaker, Sagemaker, sagemaker, ou aws-glue dans le nom. Elle a également l'autorisation d'effectuer les opérations suivantes sur n'importe quelle ressource Amazon S3 :

"s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors"

Pour accorder à un rôle d’exécution des autorisations pour accéder à un ou plusieurs compartiments spécifiques dans Amazon S3, vous pouvez attacher une politique similaire à la suivante au rôle. Cette politique accorde une autorisation de rôle IAM pour effectuer toutes les actions qu’AmazonSageMakerFullAccess autorise, mais restreint cet accès aux compartiments amzn-s3-demo-bucket1 et amzn-s3-demo-bucket2. Reportez-vous à la documentation de sécurité de la fonctionnalité d' SageMaker IA spécifique que vous utilisez pour en savoir plus sur les autorisations Amazon S3 requises pour cette fonctionnalité.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }

Obtention de votre rôle d’exécution

Vous pouvez utiliser la console SageMaker AI, le SDK Amazon SageMaker Python ou le AWS CLIpour récupérer l'ARN et le nom du rôle d'exécution associé à un domaine, un espace ou un profil utilisateur SageMaker AI.

Obtention du rôle d’exécution d’un domaine

Vous trouverez ci-dessous des instructions pour rechercher le rôle d’exécution de votre domaine.

Recherche du rôle d’exécution attaché à votre domaine
  1. Ouvrez la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Dans le volet de navigation de gauche, choisissez Domaines sous Configurations d’administrateur.

  3. Choisissez le lien correspondant à votre domaine.

  4. Choisissez l’onglet Paramètres de domaine.

  5. Dans la section Paramètres généraux, l’ARN du rôle d’exécution est répertorié sous Rôle d’exécution.

    Le nom du rôle d’exécution se trouve après la dernière / dans l’ARN du rôle d’exécution.

Obtention du rôle d’exécution d’un espace

Vous trouverez ci-dessous des instructions pour rechercher le rôle d’exécution de votre espace.

Recherche du rôle d’exécution attaché à votre espace
  1. Ouvrez la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Dans le volet de navigation de gauche, choisissez Domaines sous Configurations d’administrateur.

  3. Choisissez le lien correspondant à votre domaine.

  4. Choisissez l’onglet Gestion de l’espace.

  5. Dans la section Détails, l’ARN du rôle d’exécution est répertorié sous Rôle d’exécution.

    Le nom du rôle d’exécution se trouve après la dernière / dans l’ARN du rôle d’exécution.

Note

Le code suivant est destiné à être exécuté dans un environnement d' SageMaker intelligence artificielle, comme n'importe lequel des codes IDEs d'Amazon SageMaker Studio. Vous recevrez un message d'erreur si vous vous lancez get_execution_role en dehors d'un environnement d' SageMaker IA.

La commande get_execution_roleAmazon SageMaker Python SDK suivante récupère l'ARN du rôle d'exécution attaché à l'espace.

from sagemaker import get_execution_role role = get_execution_role() print(role)

Le nom du rôle d’exécution se trouve après la dernière / dans l’ARN du rôle d’exécution.

Obtention du rôle d’exécution d’un utilisateur

Vous trouverez ci-dessous des instructions pour rechercher le rôle d’exécution d’un utilisateur.

Recherche du rôle d’exécution attaché à un utilisateur
  1. Ouvrez la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Dans le volet de navigation de gauche, choisissez Domaines sous Configurations d’administrateur.

  3. Choisissez le lien correspondant à votre domaine.

  4. Choisissez l’onglet Profils utilisateurs.

  5. Choisissez le lien correspondant à votre utilisateur.

  6. Dans la section Détails, l’ARN du rôle d’exécution est répertorié sous Rôle d’exécution.

    Le nom du rôle d’exécution se trouve après la dernière / dans l’ARN du rôle d’exécution.

Note

Pour utiliser les exemples suivants, le AWS Command Line Interface (AWS CLI) doit être installé et configuré. Pour en savoir plus, consultez Premiers pas avec l’ AWS CLI dans le Guide de l’utilisateur de l’AWS Command Line Interface pour la version 2.

La commande get-caller-identity AWS CLI suivante affiche des informations sur l’identité IAM utilisée pour authentifier la demande. L’appelant est un utilisateur IAM.

aws sts get-caller-identity

Le nom du rôle d’exécution se trouve après la dernière / dans l’ARN du rôle d’exécution.

Changement de rôle d’exécution

Un rôle d'exécution est un rôle IAM assumé par une identité d' SageMaker IA (comme un utilisateur, un espace ou un domaine d' SageMaker IA). Le changement de rôle IAM modifie les autorisations pour toutes les identités assumant ce rôle.

Lorsque vous changez un rôle d’exécution, le rôle d’exécution de l’espace correspondant change également. La propagation des effets du changement peut prendre un certain temps.

  • Lorsque vous changez le rôle d’exécution d’un utilisateur, les espaces privés créés par cet utilisateur assument le nouveau rôle d’exécution spécifié.

  • Lorsque vous changez le rôle d’exécution par défaut d’un espace, les espaces partagés du domaine assument le nouveau rôle d’exécution spécifié.

Pour plus d’informations sur les espaces et les rôles d’exécution, consultez Comprendre les autorisations d’espace de domaine et les rôles d’exécution.

Vous pouvez remplacer le rôle d’exécution d’une identité par un autre rôle IAM en suivant l’une des instructions suivantes.

Si, à la place, vous souhaitez modifier un rôle assumé par une identité, consultez Modification des autorisations d’accès au rôle d’exécution.

Changement du rôle d’exécution par défaut d’un domaine

Vous trouverez ci-dessous des instructions pour changer le rôle d’exécution par défaut de votre domaine.

Changement du rôle d’exécution par défaut attaché à votre domaine
  1. Ouvrez la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Dans le volet de navigation de gauche, choisissez Domaines sous Configurations d’administrateur.

  3. Choisissez le lien correspondant à votre domaine.

  4. Choisissez l’onglet Paramètres de domaine.

  5. Dans la section Paramètres généraux, choisissez Modifier.

  6. Dans la section Autorisations, sous Rôle d’exécution par défaut, développez la liste déroulante.

  7. Dans la liste déroulante, vous pouvez choisir un rôle existant, saisir l’ARN d’un rôle IAM personnalisé ou créer un nouveau rôle.

    Si vous souhaitez créer un nouveau rôle, vous pouvez choisir l’option Créer un rôle à l’aide de l’assistant de création de rôle.

  8. Choisissez Suivant dans les étapes suivantes et choisissez Soumettre à la dernière étape.

Changement du rôle d’exécution par défaut d’un espace

Vous trouverez ci-dessous des instructions pour changer le rôle d’exécution par défaut de votre espace. Le changement de ce rôle d’exécution changera le rôle assumé par tous les espaces partagés dans le domaine.

Changement du rôle d’exécution par défaut d’un espace lorsque vous créez un nouvel espace
  1. Ouvrez la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Dans le volet de navigation de gauche, choisissez Domaines sous Configurations d’administrateur.

  3. Choisissez le lien correspondant à votre domaine.

  4. Choisissez l’onglet Paramètres de domaine.

  5. Dans la section Paramètres généraux, choisissez Modifier.

  6. Dans la section Autorisations, sous Rôle d’exécution par défaut pour l’espace, développez la liste déroulante.

  7. Dans la liste déroulante, vous pouvez choisir un rôle existant, saisir l’ARN d’un rôle IAM personnalisé ou créer un nouveau rôle.

    Si vous souhaitez créer un nouveau rôle, vous pouvez choisir l’option Créer un rôle à l’aide de l’assistant de création de rôle.

  8. Choisissez Suivant dans les étapes suivantes et choisissez Soumettre à la dernière étape.

Changement du rôle d’exécution d’un profil utilisateur

Vous trouverez ci-dessous des instructions pour changer le rôle d’exécution d’un utilisateur. Le changement de ce rôle d’exécution changera le rôle assumé par tous les espaces privés créés par cet utilisateur.

Changement du rôle d’exécution attaché à un utilisateur
  1. Ouvrez la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Dans le volet de navigation de gauche, choisissez Domaines sous Configurations d’administrateur.

  3. Choisissez le lien correspondant à votre domaine.

  4. Choisissez l’onglet Profils utilisateurs.

  5. Choisissez le lien correspondant au nom du profil utilisateur.

  6. Choisissez Modifier.

  7. Dans la liste déroulante, vous pouvez choisir un rôle existant, saisir l’ARN d’un rôle IAM personnalisé ou créer un nouveau rôle.

    Si vous souhaitez créer un nouveau rôle, vous pouvez choisir l’option Créer un rôle à l’aide de l’assistant de création de rôle.

  8. Choisissez Suivant dans les étapes suivantes et choisissez Soumettre à la dernière étape.

Modification des autorisations d’accès au rôle d’exécution

Vous pouvez modifier les autorisations existantes relatives au rôle d'exécution d'une identité (comme un utilisateur, un espace ou un domaine SageMaker AI). Cela se fait en recherchant le rôle IAM approprié que l’identité assume, puis en modifiant ce rôle IAM. Vous trouverez ci-dessous des instructions pour y parvenir via la console.

Lorsque vous modifiez un rôle d’exécution, le rôle d’exécution de l’espace correspondant change également. Les effets du changement peuvent ne pas être immédiats.

  • Lorsque vous modifiez le rôle d’exécution d’un utilisateur, les espaces privés créés par cet utilisateur assument le rôle d’exécution modifié.

  • Lorsque vous modifiez le rôle d’exécution par défaut d’un espace, les espaces partagés dans le domaine assument le rôle d’exécution modifié.

Pour plus d’informations sur les espaces et les rôles d’exécution, consultez Comprendre les autorisations d’espace de domaine et les rôles d’exécution.

Si, à la place, vous souhaitez changer un rôle assumé par une identité, consultez Changement de rôle d’exécution.

Pour modifier les autorisations d’accès à vos rôles d’exécution
  1. Obtenez d’abord le nom de l’identité que vous souhaitez modifier.

  2. Pour modifier un rôle assumé par une identité, consultez Modification d’un rôle dans le Guide de l’utilisateur Gestion des identités et des accès AWS .

    Pour plus d’informations et des instructions sur l’ajout d’autorisations à des identités IAM, consultez Ajout et suppression d’autorisations d’identité dans le Guide de l’utilisateur Gestion des identités et des accès AWS .

Transmission de rôles

Des actions telles que le transfert d'un rôle entre les services sont une fonction courante au sein de l' SageMaker IA. Vous trouverez plus de détails sur les actions, les ressources et les clés de condition pour l' SageMaker IA dans la référence d'autorisation de service.

Vous transmettez le rôle (iam:PassRole) lorsque vous effectuez les appels d’API : CreateAutoMLJob, CreateCompilationJob, CreateDomain, CreateFeatureGroup, CreateFlowDefiniton, CreateHyperParameterTuningJob, CreateImage, CreateLabelingJob, CreateModel, CreateMonitoringSchedule, CreateNotebookInstance, CreateProcessingJob, CreateTrainingJob, CreateUserProfile, RenderUiTemplate, UpdateImage et UpdateNotebookInstance.

Vous attachez la politique de confiance suivante au rôle IAM, qui accorde à l' SageMaker IA les autorisations principales pour assumer le rôle, et qui est la même pour tous les rôles d'exécution :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Les autorisations que vous devez accorder au rôle varient en fonction de l’API que vous appelez. Les sections suivantes présentent ces autorisations.

Note

Au lieu de gérer les autorisations en élaborant une politique d'autorisation, vous pouvez utiliser la politique d'AmazonSageMakerFullAccessautorisation AWS-managed. Les autorisations de cette politique sont assez larges, afin de permettre toutes les actions que vous souhaiteriez effectuer dans l' SageMaker IA. Pour obtenir la liste des autorisations de la politique, y compris des informations sur les raisons de l’ajout d’un grand nombre de ces autorisations, consultez AWS politique gérée : AmazonSageMakerFullAccess. Si vous préférez créer des politiques personnalisées et gérer les autorisations de sorte à les limiter aux actions que vous devez effectuer avec le rôle d'exécution uniquement, consultez les rubriques suivantes.

Important

Pour plus d’informations sur les rôles IAM, consultez Rôles IAM dans la Référence d’autorisation de service.

CreateAutoMLJob et API CreateAuto MLJob V2 : autorisations des rôles d'exécution

Pour un rôle d’exécution que vous pouvez transmettre dans une demande d’API CreateAutoMLJob ou CreateAutoMLJobV2, vous pouvez attacher la politique d’autorisation minimum suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:InvokeEndpoint", "sagemaker:ListTags", "sagemaker:DescribeEndpoint", "sagemaker:CreateModel", "sagemaker:CreateEndpointConfig", "sagemaker:CreateEndpoint", "sagemaker:DeleteModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteEndpoint", "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Si vous spécifiez un VPC privé pour votre tâche AutoML, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Si votre entrée est chiffrée à l'aide d'un chiffrement côté serveur à l'aide d'une clé AWS gérée par KMS (SSE-KMS), ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche AutoML, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche AutoML, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateDomain API : autorisations relatives aux rôles d'exécution

Le rôle d'exécution pour les domaines avec IAM Identity Center et le user/execution rôle pour les domaines IAM nécessitent les autorisations suivantes lorsque vous transmettez une clé gérée par le AWS KMS client comme KmsKeyId dans la demande d'CreateDomainAPI. Les autorisations sont appliquées au cours de l’appel d’API CreateApp.

Pour un rôle d'exécution que vous pouvez transmettre dans la demande d'API CreateDomain, vous pouvez attacher la politique d'autorisation suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/kms-key-id" } ] }

De même, si les autorisations sont spécifiées dans une politique KMS, vous pouvez attacher la politique suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/ExecutionRole" ] }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }

CreateImage et UpdateImage APIs : Autorisations relatives aux rôles d'exécution

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateImage ou UpdateImage, vous pouvez attacher la politique d'autorisation suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }

CreateNotebookInstance API : autorisations relatives aux rôles d'exécution

Les autorisations que vous accordez au rôle d’exécution pour appeler l’API CreateNotebookInstance dépendent de la façon dont vous prévoyez d’utiliser l’instance de bloc-notes. Si vous prévoyez de l'utiliser pour invoquer l' SageMaker IA APIs et transmettre le même rôle lorsque vous appelez le CreateTrainingJob et CreateModel APIs, associez la politique d'autorisation suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage", "ecr:CreateRepository", "cloudwatch:PutMetricData", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "s3:CreateBucket", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication", "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob", "ec2:CreateVpcEndpoint", "ec2:DescribeRouteTables", "elasticfilesystem:DescribeMountTargets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

Pour restreindre les autorisations, limitez-les aux ressources Amazon S3 et Amazon ECR spécifiques, en limitant "Resource": "*" comme suit :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "cloudwatch:PutMetricData", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object1", "arn:aws:s3:::outputbucket/path", "arn:aws:s3:::inputbucket/object2", "arn:aws:s3:::inputbucket/object3" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:us-east-1:111122223333:repository/my-repo1", "arn:aws:ecr:us-east-1:111122223333:repository/my-repo2", "arn:aws:ecr:us-east-1:111122223333:repository/my-repo3" ] } ] }

Si vous avez besoin d'accéder à d'autres sources, telles que des ressources Amazon DynamoDB ou Amazon Relational Database Service, ajoutez les autorisations adéquates à cette politique.

Dans la politique précédente, vous adaptez la stratégie comme suit :

  • Adaptez l’autorisation s3:ListBucket au compartiment spécifique que vous spécifiez sous la forme InputDataConfig.DataSource.S3DataSource.S3Uri dans une demande CreateTrainingJob.

  • Adaptez les autorisations s3:GetObject , s3:PutObject, et s3:DeleteObject comme suit :

    • Adaptez vos autorisations aux valeurs suivantes que vous spécifiez dans une demande CreateTrainingJob :

      InputDataConfig.DataSource.S3DataSource.S3Uri

      OutputDataConfig.S3OutputPath

    • Adaptez vos autorisations aux valeurs suivantes que vous spécifiez dans une demande CreateModel :

      PrimaryContainer.ModelDataUrl

      SuplementalContainers.ModelDataUrl

  • Adaptez les autorisations ecr comme suit :

    • Adaptez vos autorisations à la valeur AlgorithmSpecification.TrainingImage que vous spécifiez dans une demande CreateTrainingJob.

    • Adaptez vos autorisations à la valeur PrimaryContainer.Image que vous spécifiez dans une demande CreateModel :

Les actions cloudwatch et logs sont applicables aux ressources « * ». Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.

CreateHyperParameterTuningJob API : autorisations relatives aux rôles d'exécution

Pour un rôle d’exécution que vous pouvez transmettre dans une demande d’API CreateHyperParameterTuningJob, vous pouvez attacher la politique d’autorisation suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Au lieu de les spécifier"Resource": "*", vous pouvez étendre ces autorisations à des ressources Amazon S3, Amazon ECR et Amazon CloudWatch Logs spécifiques :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-repo" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/TrainingJobs*" } ] }

Si le conteneur d’entraînement associé à la tâche de réglage d’hyperparamètre doit accéder à d’autres sources de données telles que les ressources DynamoDB ou Amazon RDS, ajoutez les autorisations pertinentes à cette politique.

Dans la politique précédente, vous adaptez la politique comme suit :

  • Adaptez l’autorisation s3:ListBucket à un compartiment spécifique que vous spécifiez sous la forme InputDataConfig.DataSource.S3DataSource.S3Uri dans une demande CreateTrainingJob.

  • Adaptez les autorisations s3:GetObject et s3:PutObject aux objets suivants que vous spécifiez dans la configuration des données d’entrée et de sortie dans une demande CreateHyperParameterTuningJob :

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Adaptez les autorisations Amazon ECR au chemin de registre (AlgorithmSpecification.TrainingImage) que vous spécifiez dans une demande CreateHyperParameterTuningJob.

  • Élargissez CloudWatch les autorisations d'Amazon Logs pour enregistrer un groupe de tâches de SageMaker formation.

Les actions cloudwatch sont applicables aux ressources "*". Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.

Si vous spécifiez un VPC privé pour votre tâche de réglage d’hyperparamètres, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Si votre entrée est chiffrée à l'aide d'un chiffrement côté serveur à l'aide d'une clé AWS gérée par KMS (SSE-KMS), ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche de réglage des hyper-paramètres, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche de réglage des hyper-paramètres, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateProcessingJob API : autorisations relatives aux rôles d'exécution

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateProcessingJob, vous pouvez attacher la politique d'autorisation suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Au lieu de spécifier "Resource": "*", vous pouvez adapter ces autorisations à des ressources Amazon S3 et Amazon ECR spécifiques :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-repo" } ] }

Si CreateProcessingJob.AppSpecification.ImageUri a besoin d'accéder à d'autres sources de données, telles que des ressources DynamoDB ou Amazon RDS, ajoutez les autorisations adéquates à cette politique.

Dans la politique précédente, vous adaptez la politique comme suit :

  • Adaptez l’autorisation s3:ListBucket à un compartiment spécifique que vous spécifiez sous la forme ProcessingInputs dans une demande CreateProcessingJob.

  • Adaptez les autorisations s3:GetObject et s3:PutObject aux objets qui seront téléchargés ou téléchargés dans ProcessingInputs et ProcessingOutputConfig dans une requête CreateProcessingJob.

  • Adaptez les autorisations Amazon ECR au chemin de registre (AppSpecification.ImageUri) que vous spécifiez dans une demande CreateProcessingJob.

Les actions cloudwatch et logs sont applicables aux ressources « * ». Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.

Si vous spécifiez un VPC privé pour votre tâche de traitement, ajoutez les autorisations suivantes. Ne limitez pas la politique avec des conditions ou des filtres de ressources. Dans le cas contraire, les contrôles de validation effectués lors de la création de la tâche de traitement échouent.

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Si votre entrée est chiffrée à l'aide d'un chiffrement côté serveur à l'aide d'une clé AWS gérée par KMS (SSE-KMS), ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche de traitement, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche de traitement, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateTrainingJob API : autorisations relatives aux rôles d'exécution

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateTrainingJob, vous pouvez attacher la politique d'autorisation suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Au lieu de spécifier "Resource": "*", vous pouvez adapter ces autorisations à des ressources Amazon S3 et Amazon ECR spécifiques :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-repo" } ] }

Si CreateTrainingJob.AlgorithSpecifications.TrainingImage a besoin d'accéder à d'autres sources de données, telles que des ressources DynamoDB ou Amazon RDS, ajoutez les autorisations adéquates à cette politique.

Dans la politique précédente, vous adaptez la politique comme suit :

  • Adaptez l’autorisation s3:ListBucket à un compartiment spécifique que vous spécifiez sous la forme InputDataConfig.DataSource.S3DataSource.S3Uri dans une demande CreateTrainingJob.

  • Adaptez les autorisations s3:GetObject et s3:PutObject aux objets suivants que vous spécifiez dans la configuration des données d’entrée et de sortie dans une demande CreateTrainingJob :

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Adaptez les autorisations Amazon ECR au chemin de registre (AlgorithmSpecification.TrainingImage) que vous spécifiez dans une demande CreateTrainingJob.

Les actions cloudwatch et logs sont applicables aux ressources « * ». Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.

Si vous spécifiez un VPC privé pour votre tâche d’entraînement, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Si votre entrée est chiffrée à l'aide d'un chiffrement côté serveur à l'aide d'une clé AWS gérée par KMS (SSE-KMS), ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche d’entraînement, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche d’entraînement, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateModel API : autorisations relatives aux rôles d'exécution

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateModel, vous pouvez attacher la politique d'autorisation suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Au lieu de spécifier "Resource": "*", vous pouvez adapter ces autorisations à des ressources Amazon S3 et Amazon ECR spécifiques :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:us-east-1:111122223333:repository/my-repo", "arn:aws:ecr:us-east-1:111122223333:repository/my-repo" ] } ] }

Si CreateModel.PrimaryContainer.Image a besoin d'accéder à d'autres sources de données, telles que des ressources Amazon DynamoDB ou Amazon RDS, ajoutez les autorisations adéquates à cette politique.

Dans la politique précédente, vous adaptez la politique comme suit :

  • Adaptez les autorisations S3 aux objets que vous spécifiez dans le chemin PrimaryContainer.ModelDataUrl dans une demande CreateModel.

  • Adaptez les autorisations Amazon ECR à un chemin de registre spécifique que vous spécifiez sous les formes PrimaryContainer.Image et SecondaryContainer.Image dans une demande CreateModel.

Les actions cloudwatch et logs sont applicables aux ressources « * ». Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.

Note

Si vous envisagez d'utiliser la fonctionnalité de garde-fous de déploiement de l'SageMaker IA pour le déploiement de modèles en production, assurez-vous que votre rôle d'exécution est autorisé à effectuer l'cloudwatch:DescribeAlarmsaction sur vos alarmes d'annulation automatique.

Si vous spécifiez un VPC privé pour votre modèle, ajoutez les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }