Führen Sie einen Amazon SageMaker Ground Truth Labeling-Job in einer Amazon Virtual Private Cloud aus - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Führen Sie einen Amazon SageMaker Ground Truth Labeling-Job in einer Amazon Virtual Private Cloud aus

Ground Truth unterstützt die folgenden Funktionen in Amazon VPC.

  • Sie können Amazon S3 Bucket-Richtlinien verwenden, um den Zugriff auf Buckets von bestimmten Amazon VPC-Endpunkten oder bestimmten VPCs aus zu steuern. Wenn Sie einen Labeling-Job starten und sich Ihre Eingabedaten in einem Amazon S3 S3-Bucket befinden, der auf Benutzer in Ihrer VPC beschränkt ist, können Sie eine Bucket-Richtlinie hinzufügen, um auch einem Ground Truth Truth-Endpunkt die Erlaubnis zu erteilen, auf den Bucket zuzugreifen. Weitere Informationen hierzu finden Sie unter Erlauben Sie Ground Truth den Zugriff auf VPC-eingeschränkte Amazon-S3-Buckets.

  • Sie können einen automatisierten Daten-Labeling-Job in Ihrer VPC starten. Sie verwenden eine VPC-Konfiguration, um VPC-Subnetze und Sicherheitsgruppen anzugeben. SageMaker verwendet diese Konfiguration, um die Trainings- und Inferenzjobs zu starten, die für die automatische Datenkennzeichnung in Ihrer VPC verwendet werden. Weitere Informationen hierzu finden Sie unter Erstellen eines automatisierten Datenetikettierungsauftrags in einer VPC.

Sie können diese Optionen auf eine der folgenden Arten verwenden.

  • Sie können beide Methoden verwenden, um einen Labeling-Job mit einem VPC-geschützten Amazon-S3-Bucket mit aktiviertem automatisierten Daten-Labeling zu starten.

  • Sie können einen Labeling-Job mit jedem integrierten Aufgabentyp starten, der einen VPC-geschützten Bucket verwendet.

  • Sie können einen benutzerdefinierten Label-Workflow mit einem VPC-geschützten Bucket starten. Ground Truth interagiert mit Ihren Lambda-Funktionen vor und nach der Annotation über einen AWS PrivateLink Endpunkt.

Wir empfehlen Ihnen, dies zu überprüfen, Voraussetzungen für die Ausführung eines Ground Truth Truth-Labeling-Jobs in einer VPC bevor Sie einen Labeling-Job in einer Amazon VPC erstellen.

Voraussetzungen für die Ausführung eines Ground Truth Truth-Labeling-Jobs in einer VPC

Überprüfen Sie die folgenden Voraussetzungen, bevor Sie einen Ground-Truth-Labeling-Auftrag in einer Amazon VPC erstellen.

  • Lesen Sie den Abschnitt Ground Truth Sicherheit und Berechtigungen und stellen Sie sicher, dass Sie die folgenden Bedingungen erfüllt haben.

    • Der Benutzer, der den Labeling-Job erstellt, verfügt über alle erforderlichen Berechtigungen

    • Sie haben eine IAM-Ausführungsrolle mit den erforderlichen Berechtigungen erstellt. Wenn Sie für Ihren Anwendungsfall keine genau abgestimmten Berechtigungen benötigen, empfehlen wir Ihnen, die unter Erteilen Sie allgemeine Berechtigungen, um mit Ground Truth zu beginnen.

    • Erlauben Sie Ihrer VPC den Zugriff auf die sagemaker-labeling-data-region und sm-bxcb-region-saved-task-states S3 Buckets. Dabei handelt es sich um systemeigene, regionalisierte S3-Buckets, auf die über das Worker-Portal zugegriffen wird, wenn der Worker an einer Aufgabe arbeitet. Wir verwenden diese Buckets, um mit systemverwalteten Daten zu interagieren.

Erlauben Sie Ground Truth den Zugriff auf VPC-eingeschränkte Amazon-S3-Buckets

In den folgenden Abschnitten finden Sie Einzelheiten zu den Berechtigungen, die Ground Truth benötigt, um Labeling-Jobs mit Amazon-S3-Buckets zu starten, deren Zugriff auf Ihre VPC und VPC-Endpunkte beschränkt ist. Informationen zum Beschränken des Zugriffs auf einen Amazon-S3-Bucket auf eine VPC finden Sie unter Steuern des Zugriffs von VPC-Endpunkten mit Bucket-Richtlinien im Benutzerhandbuch zu Amazon Simple Storage Service. Informationen zum Hinzufügen einer Richtlinie zu einem S3-Bucket finden Sie unter Hinzufügen einer Bucket-Richtlinie mit der Amazon-S3-Konsole.

Anmerkung

Das Ändern von Richtlinien für bestehende Buckets kann dazu führen, dass IN_PROGRESS Ground-Truth-Jobs fehlschlagen. Wir empfehlen Ihnen, neue Jobs mit einem neuen Bucket zu starten. Wenn Sie weiterhin denselben Bucket verwenden möchten, können Sie eine der folgenden Aktionen durchführen.

  • Warten Sie, bis ein IN_PROGRESS Job abgeschlossen ist.

  • Beenden Sie den Job mit der Konsole oder dem AWS CLI.

Sie können den Amazon-S3-Bucket-Zugriff auf Benutzer in Ihrer VPC mithilfe eines AWS PrivateLinkEndpunkts einschränken. Die folgende S3-Bucket-Richtlinie erlaubt zum Beispiel den Zugriff auf einen bestimmten Bucket, <bucket-name>, nur von <vpc> und dem Endpunkt <vpc-endpoint>. Wenn Sie diese Richtlinie ändern, müssen Sie den gesamten rot kursiv geschriebenen Text durch Ihre Ressourcen und Spezifikationen ersetzen.

Anmerkung

Die folgende Richtlinie verweigert allen Entitäten außer Benutzern innerhalb einer VPC die Durchführung der unter Action aufgeführten Aktionen. Wenn Sie Aktionen nicht in diese Liste aufnehmen, sind sie dennoch für jede Entität zugänglich, die Zugriff auf diesen Bucket und die Berechtigung hat, diese Aktionen auszuführen. Wenn ein Benutzer beispielsweise berechtigt ist, in Ihrem GetBucketLocation Amazon-S3-Bucket etwas auszuführen, schränkt die folgende Richtlinie den Benutzer nicht daran ein, diese Aktion außerhalb Ihrer VPC auszuführen.

{ "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 muss in der Lage sein, die folgenden Amazon S3-Aktionen für die S3-Buckets durchzuführen, die Sie zur Konfiguration des Labeling-Jobs verwenden.

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

Sie können dies tun, indem Sie der Bucket-Richtlinie einen Ground-Truth-Endpunkt hinzufügen, wie der zuvor erwähnte. Die folgende Tabelle enthält Ground Truth Service-Endpunkte für jede AWS Region. Fügen Sie Ihrer Bucket-Richtlinie einen Endpunkt in derselben AWS -Region hinzu, in der Sie Ihren Labeling-Job ausführen.

AWS Region 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

Die folgende Richtlinie schränkt zum Beispiel ein und führt Aktionen durch: GetObject PutObject

  • Ein Amazon-S3-Bucket für Benutzer in einer VPC () <vpc>

  • Ein VPC-Endpunkt (<vpc-endpoint>)

  • Ein Ground-Truth-Dienstendpunkt (<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>" } } } ] }

Wenn Sie möchten, dass ein Benutzer berechtigt ist, einen Labeling-Auftrag über die Ground-Truth-Konsole zu starten, müssen Sie unter Verwendung der aws:PrincipalArn Bedingung auch den ARN des Benutzers zur Bucket-Richtlinie hinzufügen. Dieser Benutzer muss außerdem berechtigt sein, die folgenden Amazon S3-Aktionen für den Bucket auszuführen, den Sie zum Starten des Labeling-Aufträge verwenden.

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

Der folgende Code ist ein Beispiel für eine Bucket-Richtlinie, die die Erlaubnis zur Ausführung der im S3-Bucket <bucket-name> aufgeführten Aktionen Action auf die folgenden beschränkt.

  • <role-name>

  • Die VPC-Endpunkte, die unter aufgeführt sind aws:sourceVpce

  • Benannte Benutzer innerhalb der VPC<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>" } } } ] }
Anmerkung

Die Endpunkte der Amazon VPC-Schnittstelle und die geschützten Amazon S3 S3-Buckets, die Sie für Eingabe- und Ausgabedaten verwenden, müssen sich in derselben AWS Region befinden, in der Sie den Labeling-Job erstellt haben.

Nachdem Sie Ground Truth die Erlaubnis erteilt haben, auf Ihre Amazon-S3-Buckets zuzugreifen, können Sie eines der Themen unter Labeling-Job erstellen verwenden, um einen Labeling-Job zu starten. Geben Sie die VPC-beschränkten Amazon-S3-Buckets für Ihre Eingabe- und Ausgabe-Daten-Buckets an.

Erstellen eines automatisierten Datenetikettierungsauftrags in einer VPC

Um einen automatisierten Daten-Labeling-Job mit einer Amazon VPC zu erstellen, stellen Sie mithilfe der Ground-Truth-Konsole oder des CreateLabelingJob-API-Vorgangs eine VPC-Konfiguration bereit. SageMaker verwendet die von Ihnen bereitgestellten Subnetze und Sicherheitsgruppen, um die für die automatische Kennzeichnung verwendeten Schulungs- und Inferenzaufgaben zu starten.

Wichtig

Bevor Sie einen automatisierten Daten-Beschriftungsauftrag mit einer VPC-Konfiguration starten, stellen Sie sicher, dass Sie einen Amazon S3-VPC-Endpunkt mit der VPC erstellt haben, die Sie für den Labeling-Job verwenden möchten. Wie das geht, erfahren Sie unter Erstellen eines Amazon S3-VPC-Endpunkts.

Wenn Sie einen automatisierten Daten-Labeling-Job mit einem VPC-beschränkten Amazon-S3-Bucket erstellen, müssen Sie außerdem den Anweisungen unter Erlauben Sie Ground Truth den Zugriff auf VPC-eingeschränkte Amazon-S3-Buckets folgen, um Ground Truth die Erlaubnis für den Zugriff auf den Bucket zu erteilen.

Verwenden Sie die folgenden Verfahren, um zu erfahren, wie Sie Ihrer Labeling-Job-Anfrage eine VPC-Konfiguration hinzufügen.

Fügen Sie einer automatisierte Daten-Labeling-Aufgabe (Konsole) eine VPC-Konfiguration hinzu:
  1. Folgen Sie den Anweisungen unter Einen Labeling-Job erstellen (Konsole) und führen Sie jeden Schritt des Verfahrens aus, bis zu Schritt 15.

  2. Aktivieren Sie im Bereich Auftragnehmer das Kontrollkästchen neben Automatisiertes Daten-Labeling aktivieren.

  3. Maximieren Sie den VPC-Konfigurationsbereich der Konsole, indem Sie den Pfeil auswählen.

  4. Geben Sie die Virtual Private Cloud (VPC) an, die Sie für Ihr automatisiertes Daten-Labeling verwenden möchten.

  5. Wählen Sie die Dropdown-Liste unter Subnetze und wählen Sie ein oder mehrere Subnetze aus.

  6. Wählen Sie die Dropdown-Liste unter Sicherheitsgruppen und wählen Sie eine oder mehrere Gruppen aus.

  7. Schließen Sie alle verbleibenden Schritte des Verfahrens unter Einen Labeling-Job erstellen (Konsole) ab.

Fügen Sie einer automatisierten Daten-Labeling-Aufgabe (API) eine VPC-Konfiguration hinzu:

Um einen Labeling-Job mithilfe des Ground-Truth-API-Vorgangs, CreateLabelingJob, zu konfigurieren, folgen Sie den Anweisungen unter Erstellen eines automatisierten Daten-Labeling-Jobs (API), um Ihre Anfrage zu konfigurieren. Zusätzlich zu den in dieser Dokumentation beschriebenen Parametern müssen Sie einen VpcConfig Parameter in LabelingJobResourceConfig angeben, um ein oder mehrere Subnetze und Sicherheitsgruppen mithilfe des folgenden Schemas anzugeben.

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

Im Folgenden finden Sie ein Beispiel für eine AWS Python-SDK-Anfrage (Boto3) zur Erstellung eines automatisierten Daten-Labeling-Jobs in der Region USA Ost (Nord-Virginia) mithilfe einer privaten Belegschaft. Ersetzen Sie den gesamten rot kursiv geschriebenen Text durch Ihre Ressourcen und Spezifikationen für den Labeling-Job. Weitere Informationen zu diesem CreateLabelingJob Vorgang finden Sie im Tutorial Create a Labeling Job (API) und in der CreateLabelingJob API-Dokumentation.

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" }, ] )