Exécutez une tâche d'étiquetage Amazon SageMaker Ground Truth dans un Amazon Virtual Private Cloud - Amazon SageMaker

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.

Exécutez une tâche d'étiquetage Amazon SageMaker Ground Truth dans un Amazon Virtual Private Cloud

Ground Truth prend en charge les fonctionnalités suivantes dans Amazon VPC.

  • Vous pouvez utiliser des stratégies de compartiment Amazon S3 pour contrôler l'accès aux compartiments à partir de points de terminaison Amazon VPC spécifiques ou de VPC spécifiques. Si vous lancez une tâche d'étiquetage et que vos données d'entrée se trouvent dans un compartiment Amazon S3 réservé aux utilisateurs de votre VPC, vous pouvez ajouter une politique de compartiment afin d'accorder également à un point de terminaison Ground Truth l'autorisation d'accéder au compartiment. Pour en savoir plus, veuillez consulter la section Autoriser Ground Truth à accéder aux compartiments Amazon S3 restreints par VPC.

  • Vous pouvez lancer une tâche d'étiquetage automatisé des données dans votre VPC. Vous utilisez une configuration VPC pour spécifier les sous-réseaux et les groupes de sécurité VPC. SageMaker utilise cette configuration pour lancer les tâches d'entraînement et d'inférence utilisées pour l'étiquetage automatique des données dans votre VPC. Pour en savoir plus, veuillez consulter la section Création d'une tâche d'étiquetage automatisé des données dans un VPC.

Vous pouvez utiliser ces options de l'une des façons suivantes.

  • Vous pouvez utiliser ces deux méthodes pour lancer une tâche d'étiquetage à l'aide d'un compartiment Amazon S3 protégé par VPC en ayant activé l'étiquetage automatisé des données.

  • Vous pouvez lancer une tâche d'étiquetage en utilisant n'importe quel type de tâche intégrée à l'aide d'un compartiment protégé par VPC.

  • Vous pouvez lancer un flux d'étiquetage personnalisé à l'aide d'un compartiment protégé par VPC. Ground Truth interagit avec vos fonctions Lambda de pré-annotation et de post-annotation à l'aide d'un point de terminaison AWS PrivateLink.

Nous vous recommandons de consulter Conditions préalables à l'exécution d'une tâche d'étiquetage Ground Truth dans un VPC avant de créer une tâche d'étiquetage dans un Amazon VPC.

Conditions préalables à l'exécution d'une tâche d'étiquetage Ground Truth dans un VPC

Passez en revue les conditions préalables suivantes avant de créer une tâche d'étiquetage Ground Truth dans un Amazon VPC.

  • Passez en revue la section Sécurité et autorisations Ground Truth et assurez-vous de satisfaire aux conditions suivantes.

    • L'utilisateur qui crée la tâche d'étiquetage dispose de toutes les autorisations nécessaires.

    • Vous avez créé un rôle d'exécution IAM avec les autorisations requises. Si vous n'avez pas besoin d'autorisations précises pour votre cas d'utilisation, nous vous recommandons d'utiliser les politiques gérées IAM décrites à la rubrique Accorder des autorisations générales pour commencer à utiliser Ground Truth.

    • Autorisez votre VPC à avoir accès aux compartiments S3 sagemaker-labeling-data-region et sm-bxcb-region-saved-task-states. Il s'agit de compartiments S3 régionalisés appartenant au système qui sont accessibles depuis le portail des employés quand l'employé travaille à une tâche. Nous utilisons ces compartiments pour interagir avec les données gérées par le système.

Autoriser Ground Truth à accéder aux compartiments Amazon S3 restreints par VPC

Les sections suivantes fournissent des détails sur les autorisations requises par Ground Truth pour lancer des tâches d'étiquetage à l'aide de compartiments Amazon S3 dont l'accès est limité à votre VPC et à vos points de terminaison de VPC. Pour découvrir comment limiter l'accès d'un compartiment Amazon S3 à un VPC, consultez Contrôle de l’accès à partir des points de terminaison d’un VPC avec des politiques de compartiment dans le Guide de l'utilisateur Amazon Simple Storage Service. Pour savoir comment ajouter une stratégie à un compartiment S3, veuillez consulter Ajout d'une stratégie de compartiment à l'aide de la console Amazon S3.

Note

La modification de politiques sur des compartiments existants peut entraîner l'échec des tâches Ground Truth IN_PROGRESS. Nous vous recommandons de démarrer les nouvelles tâches à l'aide d'un nouveau compartiment. Si vous souhaitez continuer à utiliser le même compartiment, vous pouvez :

  • attendre qu'une tâche IN_PROGRESS se termine ou

  • terminer la tâche à l'aide de la console ou de l'interface AWS CLI.

Vous pouvez restreindre l'accès d'un compartiment Amazon S3 aux utilisateurs de votre VPC à l'aide d'un point de terminaison AWS PrivateLink. Par exemple, la stratégie de compartiment S3 suivante autorise l'accès à un compartiment spécifique, <bucket-name>, depuis <vpc> et le point de terminaison <vpc-endpoint> uniquement. Lorsque vous modifiez cette politique, vous devez remplacer l'ensemble du texte en italique rouge par vos ressources et vos spécifications.

Note

La politique suivante refuse toutes les entités autres que les utilisateurs d'un VPC pour effectuer les actions répertoriées dans Action. Si vous n'incluez pas d'actions dans cette liste, elles restent accessibles à toutes les entités qui ont accès à ce compartiment et qui ont l'autorisation d'effectuer ces actions. Par exemple, si un utilisateur est autorisé à effectuer l'action GetBucketLocation sur votre compartiment Amazon S3, la politique ci-dessous n'empêche pas l'utilisateur d'effectuer cette action en dehors de votre VPC.

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::<bucket-name>", "arn:aws:s3:::<bucket-name>/*" ], "Condition": { "StringNotEquals": { "aws:sourceVpce": [ "<vpc-endpoint>", "<vpc>" ] } } } ] }

Ground Truth doit être en mesure d'effectuer les actions Amazon S3 suivantes sur les compartiments S3 que vous utilisez pour configurer la tâche d'étiquetage.

"s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:GetBucketLocation"

Pour ce faire, vous pouvez ajouter un point de terminaison Ground Truth à la politique de compartiment comme celle mentionnée précédemment. Le tableau suivant indique les points de terminaison du service Ground Truth pour chaque AWS région. Ajoutez un point de terminaison dans la même région AWS que celle que vous utilisez pour exécuter votre tâche d'étiquetage sur votre politique de compartiment.

AWS Région Point de terminaison Ground Truth
us-east-2 vpce-02569ba1c40aad0bc
us-east-1 vpce-08408e335ebf95b40
us-west-2 vpce-0ea07aa498eb78469
ca-central-1 vpce-0d46ea4c9ff55e1b7
eu-central-1 vpce-0865e7194a099183d
eu-west-2 vpce-0bccd56798f4c5df0
eu-west-1 vpce-0788e7ed8628e595d
ap-south-1 vpce-0d7fcda14e1783f11
ap-southeast-2 vpce-0b7609e6f305a77d4
ap-southeast-1 vpce-0e7e67b32e9efed27
ap-northeast-2 vpce-007893f89e05f2bbf
ap-northeast-1 vpce-0247996a1a1807dbd

Par exemple, la politique suivante restreint les actions GetObject et PutObject sur :

  • un compartiment Amazon S3 aux utilisateurs d'un VPC (<vpc>)

  • un point de terminaison de VPC (<vpc-endpoint>)

  • un point de terminaison de service Ground Truth (<ground-truth-endpoint>)

{ "Version": "2012-10-17", "Id": "1", "Statement": [ { "Sid": "DenyAccessFromNonGTandCustomerVPC", "Effect": "Deny", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>", "arn:aws:s3:::<bucket-name>/*" ], "Condition": { "ForAllValues:StringNotEquals": { "aws:sourceVpce": [ "<vpc-endpoint>", "<ground-truth-endpoint>" ], "aws:SourceVpc": "<vpc>" } } } ] }

Si vous souhaitez qu'un utilisateur soit autorisé à lancer une tâche d'étiquetage à l'aide de la console Ground Truth, vous devez également ajouter l'ARN de l'utilisateur à la politique de compartiment à l'aide de la condition aws:PrincipalArn. Cet utilisateur doit également être autorisé à effectuer les actions Amazon S3 suivantes sur le compartiment que vous utilisez pour lancer la tâche d'étiquetage.

"s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:GetBucketCors", "s3:PutBucketCors", "s3:ListAllMyBuckets",

Le code suivant est un exemple de politique de compartiment qui limite l'autorisation d'effectuer les actions répertoriées dans Action sur le compartiment S3 <bucket-name> aux :

  • <role-name>

  • points de terminaison de VPC répertoriés dans aws:sourceVpce

  • utilisateurs figurant dans le VPC nommé <vpc>

{ "Version": "2012-10-17", "Id": "1", "Statement": [ { "Sid": "DenyAccessFromNonGTandCustomerVPC", "Effect": "Deny", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>/*", "arn:aws:s3:::<bucket-name>" ], "Condition": { "ForAllValues:StringNotEquals": { "aws:sourceVpce": [ "<vpc-endpoint>", "<ground-truth-endpoint>" ], "aws:PrincipalArn": "arn:aws:iam::<aws-account-id>:role/<role-name>", "aws:SourceVpc": "<vpc>" } } } ] }
Note

Les points de terminaison de l'interface Amazon VPC et les compartiments Amazon S3 protégés que vous utilisez pour les données d'entrée et de sortie doivent être situés dans la même AWS région que celle que vous avez utilisée pour créer la tâche d'étiquetage.

Une fois que vous avez accordé l'autorisation Ground Truth d'accéder à vos compartiments Amazon S3, vous pouvez utiliser l'une des rubriques de la section Création d'une tâche d'étiquetage pour lancer une tâche d'étiquetage. Spécifiez les compartiments Amazon S3 restreints au VPC pour vos compartiments de données d'entrée et de sortie.

Création d'une tâche d'étiquetage automatisé des données dans un VPC

Pour créer une tâche d'étiquetage automatisé des données à l'aide d'un VPC Amazon, fournissez une configuration de VPC à l'aide de la console Ground Truth ou de l'opération d'API CreateLabelingJob. SageMaker utilise les sous-réseaux et les groupes de sécurité que vous fournissez pour lancer les tâches de formation et d'inférence utilisées pour l'étiquetage automatique.

Important

Avant de lancer une tâche d'étiquetage automatisé des données avec une configuration de VPC, assurez-vous d'avoir créé un point de terminaison de VPC Amazon S3 à l'aide du VPC que vous souhaitez utiliser pour la tâche d'étiquetage. Pour savoir comment procéder, consultez Créer un point de terminaison de VPC Amazon S3.

En outre, si vous créez une tâche d'étiquetage automatisé des données à l'aide d'un compartiment Amazon S3 restreint au VPC, vous devez suivre les instructions figurant dans Autoriser Ground Truth à accéder aux compartiments Amazon S3 restreints par VPC pour autoriser Ground Truth à accéder au compartiment.

Procédez comme suit pour savoir comment ajouter une configuration de VPC à votre demande de tâche d'étiquetage.

Ajouter une configuration de VPC à une tâche d'étiquetage automatisé des données (console) :
  1. Suivez les instructions de la rubrique Création d'une tâche d'étiquetage (console) et terminez chaque étape de la procédure, jusqu'à l'étape 15.

  2. Dans la section Workers (Employés), cochez la case en regard de Enable automated data labeling (Activer l'étiquetage automatisé des données).

  3. Agrandissez la section VPC configuration (Configuration de VPC) de la console en sélectionnant la flèche.

  4. Spécifiez le cloud privé virtuel (VPC) que vous souhaitez utiliser pour votre tâche d'étiquetage automatisé des données.

  5. Choisissez la liste déroulante sous Subnets (Sous-réseaux) et sélectionnez un ou plusieurs sous-réseaux.

  6. Choisissez la liste déroulante sous Security groups (Groupes de sécurité) et sélectionnez un ou plusieurs groupes.

  7. Terminez toutes les étapes restantes de la procédure de Création d'une tâche d'étiquetage (console).

Ajouter une configuration de VPC à une tâche d'étiquetage automatisé des données (API) :

Pour configurer une tâche d'étiquetage à l'aide de l'opération d'API Ground Truth, CreateLabelingJob, suivez les instructions figurant dans Créer une tâche d'étiquetage automatisé des données (API) pour configurer votre demande. Outre les paramètres décrits dans la présente documentation, vous devez inclure un paramètre VpcConfig dans LabelingJobResourceConfig pour spécifier un ou plusieurs sous-réseaux et groupes de sécurité à l'aide du schéma suivant.

"LabelingJobAlgorithmsConfig": { "InitialActiveLearningModelArn": "string", "LabelingJobAlgorithmSpecificationArn": "string", "LabelingJobResourceConfig": { "VolumeKmsKeyId": "string", "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } } }

Voici un exemple de demande AWS Python SDK (Boto3) de création d'une tâche d'étiquetage automatisé des données dans la région USA Est (Virginie du Nord) à l'aide d'une main-d'œuvre privée. Remplacez l'ensemble du texte en italique rouge par les ressources et les spécifications de votre tâche d'étiquetage. Pour en savoir plus sur l'CreateLabelingJobopération, consultez le didacticiel Create a Labeling Job (API) et la documentation de l'API CreateLabelingJob.

import boto3 client = boto3.client(service_name='sagemaker') response = client.create_labeling_job( LabelingJobName="example-labeling-job", LabelAttributeName="label", InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': "s3://bucket/path/manifest-with-input-data.json" } } }, "LabelingJobAlgorithmsConfig": { "LabelingJobAlgorithmSpecificationArn": "arn:aws:sagemaker:us-east-1:027400017018:labeling-job-algorithm-specification/tasktype", "LabelingJobResourceConfig": { "VpcConfig": { "SecurityGroupIds": [ "sg-01233456789", "sg-987654321" ], "Subnets": [ "subnet-e0123456", "subnet-e7891011" ] } } }, OutputConfig={ 'S3OutputPath': "s3://bucket/path/file-to-store-output-data", 'KmsKeyId': "string" }, RoleArn="arn:aws:iam::*:role/*, LabelCategoryConfigS3Uri="s3://bucket/path/label-categories.json", StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': "arn:aws:sagemaker:region:*:workteam/private-crowd/*", 'UiConfig': { 'UiTemplateS3Uri': "s3://bucket/path/custom-worker-task-template.html" }, 'PreHumanTaskLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype", 'TaskKeywords': [ "Images", "Classification", "Multi-label" ], 'TaskTitle': "Add task title here", 'TaskDescription': "Add description of task here for workers", 'NumberOfHumanWorkersPerDataObject': 1, 'TaskTimeLimitInSeconds': 3600, 'TaskAvailabilityLifetimeInSeconds': 21600, 'MaxConcurrentTaskCount': 1000, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:ACS-tasktype" }, Tags=[ { 'Key': "string", 'Value': "string" }, ] )