翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Ground Truth は、Amazon VPC の以下の機能をサポートしています。
-
Amazon S3 バケットポリシーを使用して、特定の Amazon VPC エンドポイントまたは特定の VPC からのバケットへのアクセスを制御できます。ラベリングジョブを起動し、VPC 内のユーザーに制限された Amazon S3 バケットに入力データがある場合、バケットポリシーを追加することで、Ground Truth のエンドポイントにもバケットへのアクセス許可を付与することができます。詳細については、「Ground Truth による VPC 制限付き Amazon S3 バケットへのアクセス許可」を参照してください。
-
VPC で自動データラベリングジョブを起動できます。VPC 設定を使用して VPC サブネットとセキュリティグループを指定します。SageMaker AI はこの設定を使用して、VPC 内の自動データラベリングに使用されるトレーニングジョブと推論ジョブを起動します。詳細については、「VPC での自動データラベリングジョブの作成」を参照してください。
これらのオプションは、以下のいずれかの方法で使用できます。
-
これらの方法の両方を使用して、自動データラベリングが有効になっている VPC で保護された Amazon S3 バケットを使用してラベリングジョブを開始できます。
-
VPC で保護されたバケットを使用して、任意の組み込みタスクタイプでラベリングジョブを起動できます。
-
VPC で保護されたバケットを使用してカスタムラベルリングワークフローを起動できます。Ground Truth は、AWS PrivateLink エンドポイントを使用して、前注釈および後注釈の Lambda 関数と連携します。
Amazon VPC でラベリングジョブを作成する前に、「VPC で Ground Truth ラベリングジョブを実行するための前提条件」を確認しておくことをお勧めします。
VPC で Ground Truth ラベリングジョブを実行するための前提条件
Amazon VPC で Ground Truth ラベリングジョブを作成する前に、以下の前提条件を確認します。
-
Ground Truth を初めて使用する場合は、「Getting started」で、ラベリングジョブの作成方法を確認してください。
-
入力データが VPC で保護された Amazon S3 バケットにある場合、ワーカーは VPC からワーカーポータルにアクセスする必要があります。VPC ベースのラベルリングジョブでは、プライベートワークチームを使用する必要があります。プライベートワークチームの作成に関する詳細は、「Use a Private Workforce」を参照してください。
-
以下の前提条件は、VPC でラベルリングジョブを起動する場合に固有のものです。
-
「Create an Amazon S3 VPC Endpoint」の手順を使用します。自動データラベリングワークフローで使用されるトレーニングコンテナと推論コンテナは、このエンドポイントを使用して Amazon S3 のバケットと通信します。
-
この機能の詳細については、「Automate Data Labeling」を確認します。自動データラベリングは、以下の組み込みタスクタイプでサポートされていることに注意してください。イメージ分類 (単一ラベル)、イメージセマンティックセグメンテーション、境界ボックス、テキスト分類 (単一ラベル)。ストリーミングラベル付けジョブは、自動データラベリングをサポートしていません。
-
-
Ground Truth のセキュリティおよびアクセス許可セクションを確認し、以下の条件を満たしていることを確認します。
ラベリングジョブを作成するユーザーには、必要なすべてのアクセス許可があります。
必要なアクセス許可を持つ IAM 実行ロールが作成されました。ユースケースに微調整されたアクセス許可を必要としない場合は、「Grant General Permissions To Get Started Using Ground Truth」で説明されている IAM 管理ポリシーを使用することをお勧めします。
VPC が
sagemaker-labeling-data-
とregion
sm-bxcb-
S3 バケットにアクセスできるようにします。これらはシステム所有のリージョン化された S3 バケットで、ワーカーがタスクに取り組んでいるときにワーカーポータルからアクセスされます。これらのバケットを使用してシステム管理データとやり取りします。region
-saved-task-states
Ground Truth による VPC 制限付き Amazon S3 バケットへのアクセス許可
以下のセクションでは、アクセスが VPC と VPC エンドポイントに制限されている Amazon S3 バケットを使用してラベリングジョブを起動するために Ground Truth が必要とするアクセス許可について詳しく説明します。Amazon S3 バケットへのアクセスを VPC に制限する方法については、「Amazon Simple Storage Service ユーザーガイド」の「バケットポリシーを使用した VPC エンドポイントからのアクセスコントロール」を参照してください。S3 バケットにポリシーを追加する方法については、「Amazon S3 コンソールを使用したバケットポリシーの追加」を参照してください。
注記
既存のバケットのポリシーを変更すると、IN_PROGRESS
Ground Truth ジョブが失敗する可能性があります。新しいバケットを使用して新しいジョブを開始することをお勧めします。同じバケットを引き続き使用する場合は、次のいずれかを実行します。
IN_PROGRESS
のジョブが終了するまで待ちます。コンソールまたは AWS CLIを使用してジョブを終了します。
AWS PrivateLink
とエンドポイント <vpc>
からのみ、特定のバケット <vpc-endpoint>
へのアクセスを許可します。このポリシーを変更する場合は、<bucket-name>
赤色の斜体テキスト
をすべてリソースと仕様に置き換える必要があります。
注記
次のポリシーでは、VPC 内のユーザー以外のすべてのエンティティに対して、Action
に記載されているアクションの実行を拒否します。このリストにアクションを含めない場合でも、このバケットへのアクセス許可と、そのアクションを実行するアクセス許可を持つエンティティであればアクセス可能です。例えば、ユーザーに Amazon S3 バケットで GetBucketLocation
を実行するアクセス許可がある場合、以下のポリシーでは、そのユーザーが 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 は、ラベリングジョブの設定に使用する S3 バケットで次の Amazon S3 アクションを実行できる必要があります。
"s3:AbortMultipartUpload",
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket",
"s3:GetBucketLocation"
これを行うには、前述のように Ground Truth エンドポイントをバケットポリシーに追加します。次の表に、各 AWS リージョンの Ground Truth サービスエンドポイントを示します。ラベリングジョブの実行に使用するのと同じ AWS リージョンのエンドポイントをバケットポリシーに追加します。
AWS リージョン | 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 |
例えば、以下のポリシーでは GetObject
と PutObject
のアクションを制限します。
VPC 内のユーザーへの Amazon S3 バケット (
<vpc>
)VPC エンドポイント (
)<vpc-endpoint>
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>
"
}
}
}
]
}
Ground Truth コンソールを使用してラベリングジョブを起動するアクセス許可をユーザーに付与する場合は、aws:PrincipalArn
条件を使用してユーザーの ARN をバケットポリシーに追加する必要もあります。このユーザーには、ラベリングジョブの起動に使用するバケットで次の Amazon S3 アクションを実行するアクセス許可も必要です。
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket",
"s3:GetBucketCors",
"s3:PutBucketCors",
"s3:ListAllMyBuckets",
次のコードは、S3 バケット <bucket-name>
の Action
に記載されているアクションを実行するアクセス許可を以下に制限するバケットポリシーの例です。
<role-name>
aws:sourceVpce
に記載されている VPC エンドポイント<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>
" } } } ] }
注記
入出力データに使用する Amazon VPC インターフェイスエンドポイントと保護された Amazon S3 バケットは、ラベル付けジョブの作成に使用する AWS リージョンと同じリージョンに配置する必要があります。
Ground Truth に Amazon S3 バケットへのアクセス許可を付与した後、ラベリングジョブの作成のいずれかのトピックを使用して、ラベリングジョブを起動することができます。入力データバケットと出力データバケットに VPC 制限のある Amazon S3 バケットを指定します。
VPC での自動データラベリングジョブの作成
Amazon VPC を使用して自動データラベリングジョブを作成するには、Ground Truth コンソールまたは CreateLabelingJob
API オペレーションを使用して VPC 設定を指定します。SageMaker AI は、指定したサブネットとセキュリティグループを使用して、自動ラベル付けに使用されるトレーニングジョブと推論ジョブを起動します。
重要
VPC 設定で自動データラベリングジョブを起動する前に、ラベリングジョブに使用する VPC を使用して Amazon S3 VPC エンドポイントを作成していることを確認します。この方法については、「Create an Amazon S3 VPC Endpoint」を参照してください。
さらに、VPC 制限のある Amazon S3 バケットを使用して自動データラベリングジョブを作成する場合は、「Ground Truth による VPC 制限付き Amazon S3 バケットへのアクセス許可」の指示に従って、バケットへのアクセス許可を Ground Truth に付与する必要があります。
次の手順を使用して、ラベリングジョブリクエストに VPC 設定を追加する方法を確認します。
自動データラベリングジョブ (コンソール) に VPC 設定を追加する
-
ラベリングジョブの作成 (コンソール) の指示に従い、ステップ 15 までの手順の各ステップを完了します。
-
[ワーカー] セクションで、[自動データラベリングを有効にする] の横にあるチェックボックスを選択します。
-
矢印を選択して、コンソールの [VPC 設定] セクションを最大化します。
-
自動データラベリングジョブに使用する [仮想プライベートクラウド (VPC)] を指定します。
-
[サブネット] のドロップダウンリストを選択し、1 つ以上のサブネットを選択します。
-
[セキュリティグループ] のドロップダウンリストを選択し、1 つ以上のグループを選択します。
-
ラベリングジョブの作成 (コンソール) の手順の残りのステップをすべて完了します。
VPC 設定を自動データラベリングジョブ (API) に追加する
Ground Truth API オペレーション CreateLabelingJob
を使用してラベリングジョブを設定するには、自動データラベリングジョブ (API) の作成の手順に従ってリクエストを設定します。このドキュメントで説明されているパラメータに加えて、次のスキーマを使用して 1 つ以上のサブネットとセキュリティグループを指定するために、LabelingJobResourceConfig
に VpcConfig
パラメータを含める必要があります。
"LabelingJobAlgorithmsConfig": {
"InitialActiveLearningModelArn": "string
",
"LabelingJobAlgorithmSpecificationArn": "string
",
"LabelingJobResourceConfig": {
"VolumeKmsKeyId": "string
",
"VpcConfig": {
"SecurityGroupIds": [ "string
" ],
"Subnets": [ "string
" ]
}
}
}
以下は、米国東部 (バージニア北部) リージョンで、プライベートワークフォースを使用して自動ラベリングジョブを作成する AWS Python SDK (Boto3) リクエスト赤色の斜体テキスト
を、ラベリングジョブのリソースと仕様に置き換えます。CreateLabelingJob
オペレーションの詳細については、「Create a Labeling Job (API)」チュートリアルと「CreateLabelingJob」API ドキュメントを参照してください。
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"
}, ] )