Créer un rôle d'exécution SageMaker pour une tâche d'étiquetage Ground Truth - Amazon SageMaker

Créer un rôle d'exécution SageMaker pour une tâche d'étiquetage Ground Truth

Lorsque vous configurez votre tâche d'étiquetage, vous devez fournir un rôle d'exécution qui est un rôle que SageMaker est autorisé à assumer pour démarrer et exécuter votre tâche d'étiquetage.

Ce rôle doit donner à Ground Truth l'autorisation d'accéder aux éléments suivants :

  • Amazon S3, pour récupérer vos données source et écrire les données de sortie dans un compartiment Amazon S3. Vous pouvez soit accorder à un rôle IAM l'autorisation d'accéder à un compartiment entier en fournissant l'ARN de ce dernier, soit accorder au rôle l'autorisation d'accéder à des ressources spécifiques dans un compartiment. Par exemple, l'ARN d'un compartiment peut ressembler à arn:aws:s3:::awsexamplebucket1 et l'ARN d'une ressource d'un compartiment Amazon S3 peut ressembler à arn:aws:s3:::awsexamplebucket1/prefix/file-name.png. Pour appliquer une action à toutes les ressources d'un compartiment Amazon S3, vous pouvez utiliser le caractère de remplacement : *. Par exemple : «  », arn:aws:s3:::awsexamplebucket1/prefix/*. Pour plus d'informations, veuillez consulter la section Ressources Amazon S3 dans le Guide de l'utilisateur Amazon Simple Storage Service.

  • CloudWatch, pour consigner les statuts des métriques employé et des tâches d'étiquetage.

  • AWS KMS pour le chiffrement des données. (Facultatif)

  • AWS Lambda pour le traitement des données source et de sortie lorsque vous créez un flux de travail personnalisé.

En outre, si vous créez une Tâche d'étiquetage en streaming, ce rôle doit avoir l'autorisation d'accéder à :

  • Amazon SQS, pour créer une interaction avec une file d'attente SQS utilisée pour gérer les requêtes d'étiquetage.

  • Amazon SNS, pour vous abonner et récupérer des messages à partir de votre rubrique d'entrée Amazon SNS et pour envoyer des messages à votre rubrique de sortie Amazon SNS.

Toutes ces autorisations peuvent être accordées avec la stratégie gérée AmazonSageMakerGroundTruthExecution, sauf :

  • Chiffrement des données et des volumes de stockage de vos compartiments Amazon S3. Pour savoir comment configurer ces autorisations, veuillez consulter Chiffrer les données de sortie et de volume de stockage avec AWS KMS.

  • Autorisation de sélectionner et d'appeler des fonctions Lambda qui n'incluent pas GtRecipe, SageMaker, Sagemaker, sagemaker ou LabelingFunction dans le nom de la fonction.

  • Les compartiments Amazon S3 qui n'incluent pas GroundTruth, Groundtruth, groundtruth, SageMaker, Sagemaker et sagemaker dans le préfixe ou le nom du compartiment ou une balise d'objet qui inclut SageMaker dans le nom (insensible à la casse).

Si vous avez besoin d'autorisations plus détaillées que celles fournies dans AmazonSageMakerGroundTruthExecution, utilisez les exemples de stratégie suivants pour créer un rôle d'exécution qui correspond à votre cas d'utilisation spécifique.

Exigences du rôle d'exécution des types de tâches intégrés (tâches qui ne s'exécutent pas en streaming, ou dites ponctuelles)

La stratégie suivante accorde l'autorisation de créer une tâche d'étiquetage pour un type de tâche intégré. Cette stratégie d'exécution n'inclut pas les autorisations pour le chiffrement ou le déchiffrement des données AWS KMS. Remplacez chaque ARN en italique rouge par vos propres ARN Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ViewBuckets", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>", "arn:aws:s3:::<output-bucket-name>" ] }, { "Sid": "S3GetPutObjects", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>/*", "arn:aws:s3:::<output-bucket-name>/*" ] }, { "Sid": "CloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:CreateLogGroup", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "*" } ] }

Exigences du rôle d'exécution des types de tâches intégrés (tâches à exécution perpétuelle)

Si vous créez une tâche d'étiquetage en streaming, vous devez ajouter une stratégie similaire à la suivante au rôle d'exécution que vous utilisez pour créer la tâche d'étiquetage. Pour restreindre la portée de la stratégie, remplacez le caractère * dans Resource par des ressources AWS spécifiques auxquelles vous souhaitez octroyer au rôle IAM l'autorisation d'y accéder et de les utiliser.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>/*", "arn:aws:s3:::<output-bucket-name>/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>", "arn:aws:s3:::<output-bucket-name>" ] }, { "Sid": "CloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:CreateLogGroup", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "StreamingQueue", "Effect": "Allow", "Action": [ "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SendMessageBatch", "sqs:SetQueueAttributes" ], "Resource": "arn:aws:sqs:*:*:*GroundTruth*" }, { "Sid": "StreamingTopicSubscribe", "Effect": "Allow", "Action": "sns:Subscribe", "Resource": [ "arn:aws:sqs:<aws-region>:<aws-account-number>:<input-topic-name>", "arn:aws:sqs:<aws-region>:<aws-account-number>:<output-topic-name>" ], "Condition": { "StringEquals": { "sns:Protocol": "sqs" }, "StringLike": { "sns:Endpoint": "arn:aws:sqs:<aws-region>:<aws-account-number>:*GroundTruth*" } } }, { "Sid": "StreamingTopic", "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sqs:<aws-region>:<aws-account-number>:<input-topic-name>", "arn:aws:sqs:<aws-region>:<aws-account-number>:<output-topic-name>" ] }, { "Sid": "StreamingTopicUnsubscribe", "Effect": "Allow", "Action": [ "sns:Unsubscribe" ], "Resource": [ "arn:aws:sqs:<aws-region>:<aws-account-number>:<input-topic-name>", "arn:aws:sqs:<aws-region>:<aws-account-number>:<output-topic-name>" ] } ] }

Exigences de rôle d'exécution pour les types de tâche personnalisés

Si vous souhaitez créer un Flux d'étiquetage personnalisé, ajoutez l'instruction suivante à une stratégie de rôle d'exécution comme celles se trouvant dans ou Exigences du rôle d'exécution des types de tâches intégrés (tâches à exécution perpétuelle).

Cette stratégie donne au rôle d'exécution l'autorisation Invoke pour vos fonctions Lambda de pré-annotation et de post-annotation.

{ "Sid": "LambdaFunctions", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:<region>:<account-id>:function:<pre-annotation-lambda-name>", "arn:aws:lambda:<region>:<account-id>:function:<post-annotation-lambda-name>" ] }

Autorisations requises pour l'étiquetage de données automatique

Si vous souhaitez créer une tâche d'étiquetage avec Étiquetage automatique des données, vous devez 1) ajouter une stratégie à la stratégie IAM attachée au rôle d'exécution et 2) mettre à jour la stratégie d'approbation du rôle d'exécution.

L'instruction suivante permet de transmettre le rôle d'exécution IAM à SageMaker afin qu'il puisse être utilisé pour exécuter les tâches d'entraînement et d'inférence utilisées respectivement pour l'apprentissage actif et l'étiquetage automatisé des données. Ajoutez cette instruction à une stratégie de rôle d'exécution comme celles qui se trouvent dans ou Exigences du rôle d'exécution des types de tâches intégrés (tâches à exécution perpétuelle). Remplacez arn:aws:iam::<account-number>:role/<role-name> par l'ARN du rôle d'exécution. Vous pouvez trouver l'ARN de votre rôle IAM dans la console IAM, sous Rôles.

{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::<account-number>:role/<execution-role-name>", "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com" ] } } }

L'instruction suivante permet à SageMaker d'assumer le rôle d'exécution pour créer et gérer les tâches d'entraînement et d'inférence SageMaker. Cette stratégie doit être ajoutée à la relation d'approbation du rôle d'exécution. Pour savoir comment ajouter ou modifier une stratégie d'approbation de rôle IAM, veuillez consulter Modification d'un rôle dans le Guide de l'utilisateur IAM.

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