Esegui un processo di etichettatura di Amazon SageMaker Ground Truth in un Amazon Virtual Private Cloud - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui un processo di etichettatura di Amazon SageMaker Ground Truth in un Amazon Virtual Private Cloud

Ground Truth supporta le seguenti funzionalità in Amazon VPC.

Puoi utilizzare queste opzioni in uno dei seguenti modi.

Ti consigliamo di esaminare Prerequisiti per l'esecuzione di un processo di etichettatura Ground Truth in un VPC prima di creare un processo di etichettatura in un Amazon VPC.

Prerequisiti per l'esecuzione di un processo di etichettatura Ground Truth in un VPC

Verifica i seguenti prerequisiti prima di creare un processo di etichettatura Ground Truth in un Amazon VPC.

  • Consulta la sezione Ground Truth Security and Permissions e assicurati di aver soddisfatto le seguenti condizioni.

    • L'utente che crea il processo di etichettatura dispone di tutte le autorizzazioni necessarie

    • Hai creato un ruolo di esecuzione IAM con le autorizzazioni richieste. Se non hai bisogno di autorizzazioni ottimizzate per il tuo caso d'uso, ti consigliamo di utilizzare le policy gestite IAM descritte in Concedere autorizzazioni generali per iniziare a usare Ground Truth.

    • Consenti al tuo VPC di accedere ai bucket sagemaker-labeling-data-region e sm-bxcb-region-saved-task-states S3. Si tratta di bucket S3 regionalizzati di proprietà del sistema a cui si accede dal portale di lavoro quando il worker sta eseguendo un'attività. Utilizziamo questi bucket per interagire con i dati gestiti dal sistema.

Consenti a Ground Truth di accedere ai bucket Amazon S3 con restrizioni VPC

Le seguenti sezioni forniscono dettagli sulle autorizzazioni richieste da Ground Truth per avviare processi di etichettatura utilizzando bucket Amazon S3 con accesso limitato agli endpoint VPC e VPC. Per informazioni su come limitare l'accesso a un bucket Amazon S3 a un VPC, consulta Controlling access from VPC endpoints with bucket policies nella Guida per l'utente di Amazon Simple Storage Service. Per informazioni su come aggiungere una policy a un bucket S3, consulta Adding a bucket policy using the Amazon S3 console.

Nota

La modifica delle policy sui bucket esistenti può causare il fallimento dei processi Ground Truth IN_PROGRESS. Ti consigliamo di iniziare nuovi processi utilizzando un nuovo bucket. Se desideri continuare a utilizzare lo stesso bucket, puoi eseguire una delle seguenti operazioni.

  • Attendi il completamento di un processo IN_PROGRESS.

  • Termina il processo utilizzando la console o il AWS CLI.

Puoi limitare l'accesso ai bucket Amazon S3 agli utenti del tuo VPC utilizzando un endpoint AWS PrivateLink. Ad esempio, la seguente policy del bucket S3 consente l'accesso a un bucket specifico, <bucket-name>, solo da <vpc> e dall'endpoint <vpc-endpoint>. Quando modifichi questa policy, devi sostituire tutto il testo in corsivo rosso con le tue risorse e specifiche.

Nota

La seguente policy impedisce a tutte le entità diversedagli utenti all'interno di un VPC di eseguire le azioni elencate in Action. Se non includi azioni in questo elenco, sono comunque accessibili a qualsiasi entità che abbia accesso a questo bucket e sia autorizzata a eseguire tali azioni. Ad esempio, se un utente è autorizzato a eseguire GetBucketLocation sul tuo bucket Amazon S3, la policy seguente non limita l'utente a eseguire questa azione al di fuori del tuo 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 deve essere in grado di eseguire le seguenti azioni Amazon S3 sui bucket S3 utilizzati per configurare il processo di etichettatura.

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

Puoi farlo aggiungendo un endpoint Ground Truth alla bucket policy come quello menzionato in precedenza. La tabella seguente include gli endpoint del servizio Ground Truth per ogni AWS regione. Aggiungi un endpoint nella stessa Regione AWS che utilizzi per eseguire il processo di etichettatura alla tua policy bucket.

AWS Regione Endpoint di etichettatura 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

Ad esempio, le seguenti policy limitano GetObject e le azioni PutObject su:

  • Un bucket Amazon S3 per gli utenti in un VPC (<vpc>)

  • Un endpoint VPC (<vpc-endpoint>)

  • Un endpoint del servizio 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>" } } } ] }

Se desideri che un utente abbia l'autorizzazione per avviare un processo di etichettatura utilizzando la console Ground Truth, devi anche aggiungere l'ARN dell'utente alla policy bucket utilizzando la condizione aws:PrincipalArn. Questo utente deve inoltre disporre dell'autorizzazione per eseguire le seguenti azioni di Amazon S3 sul bucket utilizzato per avviare il processo di etichettatura.

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

Il codice seguente è un esempio di policy sui bucket che limita l'autorizzazione a eseguire le azioni elencate in Action sul bucket S3 <bucket-name> a quanto segue.

  • <role-name>

  • Gli endpoint VPC elencati in aws:sourceVpce

  • Utenti all'interno del VPC denominati <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>" } } } ] }
Nota

Gli endpoint dell'interfaccia Amazon VPC e i bucket Amazon S3 protetti utilizzati per i dati di input e output devono trovarsi nella stessa AWS regione utilizzata per creare il processo di etichettatura.

Dopo aver concesso a Ground Truth l'autorizzazione ad accedere ai tuoi bucket Amazon S3, puoi utilizzare uno degli argomenti in Crea un processo di etichettatura per avviare un processo di etichettatura. Specifica i bucket Amazon S3 con restrizioni VPC per i bucket di dati di input e output.

Creare un processo di etichettatura automatizzata dei dati in un VPC

Per creare un processo di etichettatura automatizzato dei dati utilizzando Amazon VPC, fornisci una configurazione VPC utilizzando la console Ground Truth o il funzionamento dell'API. CreateLabelingJob SageMaker utilizza le sottoreti e i gruppi di sicurezza forniti per avviare i processi di formazione e inferenza utilizzati per l'etichettatura automatica.

Importante

Prima di avviare un processo di etichettatura automatizzata dei dati con una configurazione VPC, assicurati di aver creato un endpoint VPC Amazon S3 utilizzando il VPC che desideri utilizzare per il processo di etichettatura. Per scoprire come, consulta Create an Amazon S3 VPC Endpoint.

Inoltre, se crei un processo di etichettatura automatizzato dei dati utilizzando un bucket Amazon S3 con restrizioni VPC, devi seguire le istruzioni in Consenti a Ground Truth di accedere ai bucket Amazon S3 con restrizioni VPC per autorizzare Ground Truth ad accedere al bucket.

Utilizza le seguenti procedure per imparare ad aggiungere una configurazione VPC alla tua richiesta di processo di etichettatura.

Aggiungi una configurazione VPC a un processo di etichettatura dei dati automatizzato (console):
  1. Segui le istruzioni in Crea un processo di etichettatura (Console) e completa ogni fase della procedura, fino alla fase 15.

  2. Nella sezione worker, seleziona la casella di controllo accanto a Abilita l'etichettatura automatica dei dati.

  3. Massimizza la sezione di configurazione del VPC della console selezionando la freccia.

  4. Specifica il cloud privato virtuale (VPC) da utilizzare per il processo di etichettatura automatica dei dati.

  5. Scegli l'elenco a discesa in Sottoreti e seleziona una o più sottoreti.

  6. Scegli l'elenco a discesa in Gruppi di sicurezza e seleziona uno o più gruppi.

  7. Completa tutte le fasi rimanenti della procedura in Crea un processo di etichettatura (Console).

Aggiungi una configurazione VPC a un processo di etichettatura dei dati automatizzato (API):

Per configurare un processo di etichettatura utilizzando l'operazione dell'API Ground Truth, CreateLabelingJob, segui le istruzioni in Create an automated data labeling job (API) per configurare la tua richiesta. Oltre ai parametri descritti in questa documentazione, devi includere un parametro VpcConfig in LabelingJobResourceConfig per specificare una o più sottoreti e gruppi di sicurezza utilizzando lo schema seguente.

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

Di seguito è riportato un esempio di richiesta AWS SDK Python (Boto3) per creare un processo di etichettatura automatizzata dei dati nella Regione Stati Uniti orientali (Virginia settentrionale) utilizzando una forza lavoro privata. Sostituisci tutto il testo in corsivo rosso con le risorse e le specifiche del processo di etichettatura. Per ulteriori informazioni sull'CreateLabelingJoboperazione, consulta il tutorial Create a Labeling Job (API) e la documentazione dell'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" }, ] )