

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SageMaker Ground Truth の Amazon Virtual Private Cloud での使用
<a name="sms-vpc"></a>

 [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html) (Amazon VPC) を使用すると、定義した論理的に分離された仮想ネットワークで AWS リソースを起動できます。Ground Truth では、インターネット経由で接続する代わりに Amazon VPC 内でのラベリングジョブの実行がサポートされます。Amazon VPC でラベル付けジョブを起動すると、VPC と Ground Truth 間の通信が AWS ネットワーク内で完全かつ安全に行われます。

このガイドでは、以下の方法で Amazon VPC で Ground Truth を使用する方法を示します。

1. [Amazon Virtual Private Cloud での Amazon SageMaker Ground Truth ラベリングジョブの実行](samurai-vpc-labeling-job.md)

1. [プライベートワーカーポータルから Amazon VPC モードを使用する](samurai-vpc-worker-portal.md)

# Amazon Virtual Private Cloud での Amazon SageMaker Ground Truth ラベリングジョブの実行
<a name="samurai-vpc-labeling-job"></a>

Ground Truth は、Amazon VPC の以下の機能をサポートしています。
+ Amazon S3 バケットポリシーを使用して、特定の Amazon VPC エンドポイントまたは特定の VPC からのバケットへのアクセスを制御できます。ラベリングジョブを起動し、VPC 内のユーザーに制限された Amazon S3 バケットに入力データがある場合、バケットポリシーを追加することで、Ground Truth のエンドポイントにもバケットへのアクセス許可を付与することができます。詳細については[Ground Truth による VPC 制限付き Amazon S3 バケットへのアクセス許可](#sms-vpc-permissions-s3)を参照してください。
+ VPC で[自動データラベリングジョブ](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-automated-labeling.html)を起動できます。VPC 設定を使用して VPC サブネットとセキュリティグループを指定します。SageMaker AI はこの設定を使用して VPC 内の自動データラベリングに使用されるトレーニングジョブと推論ジョブを起動します。詳細については[VPC での自動データラベリングジョブの作成](#sms-vpc-permissions-automated-labeling)を参照してください。

これらのオプションは、以下のいずれかの方法で使用できます。
+ これらの方法の両方を使用して、自動データラベリングが有効になっている VPC で保護された Amazon S3 バケットを使用してラベリングジョブを開始できます。
+ VPC で保護されたバケットを使用して、任意の[組み込みタスクタイプ](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html)でラベリングジョブを起動できます。
+ VPC で保護されたバケットを使用して[カスタムラベルリングワークフロー](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates.html)を起動できます。Ground Truth は、[AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/endpoint-services-overview.html) エンドポイントを使用して、前注釈および後注釈の Lambda 関数と連携します。

Amazon VPC でラベリングジョブを作成する前に、「[VPC で Ground Truth ラベリングジョブを実行するための前提条件](#sms-vpc-gt-prereq)」を確認しておくことをお勧めします。

## VPC で Ground Truth ラベリングジョブを実行するための前提条件
<a name="sms-vpc-gt-prereq"></a>

Amazon VPC で Ground Truth ラベリングジョブを作成する前に、以下の前提条件を確認します。
+ Ground Truth を初めて使用する場合は、「[Getting started](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-getting-started.html)」で、ラベリングジョブの作成方法を確認してください。
+ 入力データが VPC で保護された Amazon S3 バケットにある場合、ワーカーは VPC からワーカーポータルにアクセスする必要があります。VPC ベースのラベルリングジョブでは、プライベートワークチームを使用する必要があります。プライベートワークチームの作成に関する詳細は、「[Use a Private Workforce](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-private.html)」を参照してください。
+ 以下の前提条件は、VPC でラベルリングジョブを起動する場合に固有のものです。
  + 「[Create an Amazon S3 VPC Endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html#train-vpc-s3)」の手順を使用します。自動データラベリングワークフローで使用されるトレーニングコンテナと推論コンテナは、このエンドポイントを使用して Amazon S3 のバケットと通信します。
  + この機能の詳細については、「[Automate Data Labeling](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-automated-labeling.html)」を確認します。自動データラベリングは、以下の[組み込みタスクタイプ](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html)でサポートされていることに注意してください。[イメージ分類 (単一ラベル)](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-image-classification.html)、[イメージセマンティックセグメンテーション](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-semantic-segmentation.html)、[境界ボックス](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-bounding-box.html)、[テキスト分類 (単一ラベル)](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-text-classification.html)。ストリーミングラベル付けジョブは、自動データラベリングをサポートしていません。
+ [Ground Truth のセキュリティおよびアクセス許可](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-general.html)セクションを確認し、以下の条件を満たしていることを確認します。
  + ラベリングジョブを作成するユーザーには、必要なすべてのアクセス許可があります。
  + 必要なアクセス許可を持つ IAM 実行ロールが作成されました。ユースケースに微調整されたアクセス許可を必要としない場合は、「[Grant General Permissions To Get Started Using Ground Truth](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-permissions-get-started)」で説明されている IAM 管理ポリシーを使用することをお勧めします。
  + VPC が `sagemaker-labeling-data-region` と `sm-bxcb-region-saved-task-states` S3 バケットにアクセスできるようにします。これらはシステム所有のリージョン化された S3 バケットで、ワーカーがタスクに取り組んでいるときにワーカーポータルからアクセスされます。これらのバケットを使用してシステム管理データとやり取りします。

## Ground Truth による VPC 制限付き Amazon S3 バケットへのアクセス許可
<a name="sms-vpc-permissions-s3"></a>

以下のセクションでは、アクセスが VPC と VPC エンドポイントに制限されている Amazon S3 バケットを使用してラベリングジョブを起動するために Ground Truth が必要とするアクセス許可について詳しく説明します。Amazon S3 バケットへのアクセスを VPC に制限する方法については、「Amazon Simple Storage Service ユーザーガイド」の「[バケットポリシーを使用した VPC エンドポイントからのアクセスコントロール](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html)」を参照してください。S3 バケットにポリシーを追加する方法については、「[Amazon S3 コンソールを使用したバケットポリシーの追加](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)」を参照してください。

**注記**  
既存のバケットのポリシーを変更すると、`IN_PROGRESS` Ground Truth ジョブが失敗する可能性があります。新しいバケットを使用して新しいジョブを開始することをお勧めします。同じバケットを引き続き使用する場合は、次のいずれかを実行します。  
`IN_PROGRESS` のジョブが終了するまで待ちます。
コンソールまたは AWS CLIを使用してジョブを終了します。

[AWS PrivateLink](https://aws.amazon.com/privatelink/) エンドポイントを使用して、VPC 内のユーザーに Amazon S3 バケットへのアクセスを制限できます。例えば、次の S3 バケットポリシーは、`<vpc>` とエンドポイント `<vpc-endpoint>` からのみ、特定のバケット `<bucket-name>` へのアクセスを許可します。このポリシーを変更する場合は、*赤色の斜体テキスト*をすべてリソースと仕様に置き換える必要があります。

**注記**  
次のポリシーでは、VPC 内のユーザー以外のすべてのエンティティに対して、`Action` に記載されているアクションの実行を拒否します。このリストにアクションを含めない場合でも、このバケットへのアクセス許可と、そのアクションを実行するアクセス許可を持つエンティティであればアクセス可能です。例えば、ユーザーに Amazon S3 バケットで `GetBucketLocation` を実行するアクセス許可がある場合、以下のポリシーでは、そのユーザーが VPC の外でこのアクションを実行することを制限しません。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Policy1415115909152",
    "Statement": [
        {
            "Sid": "AccessToSpecificVPCEOnly",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Effect": "Deny",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "aws:sourceVpce": [
                        "vpce-12345678",
                        "vpce-12345678901234567"
                    ]
                }
            }
        }
    ]
}
```

------

Ground Truth は、ラベリングジョブの設定に使用する S3 バケットで次の Amazon S3 アクションを実行できる必要があります。

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

これを行うには、前述のように Ground Truth エンドポイントをバケットポリシーに追加します。次の表に、各 AWS リージョンの Ground Truth サービスエンドポイントを示します。ラベリングジョブの実行に使用するのと同じ [AWS リージョン](https://docs.aws.amazon.com/general/latest/gr/rande.html)のエンドポイントをバケットポリシーに追加します。


****  

| 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>`)

------
#### [ JSON ]

****  

```
{
    "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": {
              "StringNotEquals": {
                "aws:SourceVpc": "vpc-12345678",
                "aws:sourceVpce": [
                  "vpce-12345678",
                  "vpce-12345678"
                ] 
             }
           }
        }
    ]
}
```

------

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 内のユーザー

------
#### [ JSON ]

****  

```
{
    "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": {
                "StringNotEquals": {
                    "aws:SourceVpc": "vpc-12345678",
                    "aws:PrincipalArn": "arn:aws:iam::111122223333:role/role-name"
                },
                "StringNotEquals": {
                    "aws:sourceVpce": [
                        "vpce-12345678",
                        "vpce-12345678"
                    ]
                }
            }
        }
    ]
}
```

------

**注記**  
入出力データに使用する Amazon VPC インターフェイスエンドポイントと保護された Amazon S3 バケットは、ラベル付けジョブの作成に使用する AWS リージョンと同じリージョンに配置する必要があります。

Ground Truth に Amazon S3 バケットへのアクセス許可を付与した後、[ラベリングジョブの作成](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-create-labeling-job.html)のいずれかのトピックを使用して、ラベリングジョブを起動することができます。入力データバケットと出力データバケットに VPC 制限のある Amazon S3 バケットを指定します。

## VPC での自動データラベリングジョブの作成
<a name="sms-vpc-permissions-automated-labeling"></a>

Amazon VPC を使用して自動データラベリングジョブを作成するには、Ground Truth コンソールまたは `CreateLabelingJob` API オペレーションを使用して VPC 設定を指定します。SageMaker AI は、指定されたサブネットとセキュリティグループを使用して、自動ラベリングに使用されるトレーニングジョブと推論ジョブを起動します。

**重要**  
VPC 設定で自動データラベリングジョブを起動する前に、ラベリングジョブに使用する VPC を使用して Amazon S3 VPC エンドポイントを作成していることを確認します。この方法については、「[Create an Amazon S3 VPC Endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html#train-vpc-s3)」を参照してください。  
さらに、VPC 制限のある Amazon S3 バケットを使用して自動データラベリングジョブを作成する場合は、「[Ground Truth による VPC 制限付き Amazon S3 バケットへのアクセス許可](#sms-vpc-permissions-s3)」の指示に従って、バケットへのアクセス許可を Ground Truth に付与する必要があります。

次の手順を使用して、ラベリングジョブリクエストに VPC 設定を追加する方法を確認します。

**自動データラベリングジョブ (コンソール) に VPC 設定を追加する**

1. [ラベリングジョブの作成 (コンソール)](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-create-labeling-job-console.html) の指示に従い、ステップ 15 までの手順の各ステップを完了します。

1. **[ワーカー]** セクションで、**[自動データラベリングを有効にする]** の横にあるチェックボックスを選択します。

1. 矢印を選択して、コンソールの **[VPC 設定]** セクションを最大化します。

1. 自動データラベリングジョブに使用する **[仮想プライベートクラウド (VPC)]** を指定します。

1. **[サブネット]** のドロップダウンリストを選択し、1 つ以上のサブネットを選択します。

1. **[セキュリティグループ]** のドロップダウンリストを選択し、1 つ以上のグループを選択します。

1. [ラベリングジョブの作成 (コンソール)](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-create-labeling-job-console.html) の手順の残りのステップをすべて完了します。

**VPC 設定を自動データラベリングジョブ (API) に追加する**  
Ground Truth API オペレーション `CreateLabelingJob` を使用してラベリングジョブを設定するには、[自動データラベリングジョブ (API) の作成](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-automated-labeling.html#sms-create-automated-labeling-api)の手順に従ってリクエストを設定します。このドキュメントで説明されているパラメータに加えて、次のスキーマを使用して 1 つ以上のサブネットとセキュリティグループを指定するために、`LabelingJobResourceConfig` に `VpcConfig` パラメータを含める必要があります。

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

以下は、米国東部 (バージニア北部) リージョンで、プライベートワークフォースを使用して自動ラベリングジョブを作成する [AWS Python SDK (Boto3) リクエスト](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_labeling_job)の例です。*赤色の斜体テキスト*を、ラベリングジョブのリソースと仕様に置き換えます。`CreateLabelingJob` オペレーションの詳細については、「[Create a Labeling Job (API)](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-create-labeling-job-api.html)」チュートリアルと「[CreateLabelingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html)」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"
        },
    ]
)
```

# プライベートワーカーポータルから Amazon VPC モードを使用する
<a name="samurai-vpc-worker-portal"></a>

Amazon VPC 内で動作するラベル作成者のワーカーポータルアクセスを制限するには、Ground Truth プライベートワークフォースを作成する際に VPC 設定を追加します。VPC 設定を既存のプライベートワークフォースに追加することもできます。Ground Truth は VPC に VPC インターフェイスエンドポイントを自動的に作成し、VPC エンドポイントと Ground Truth サービス間に AWS PrivateLink を設定します。ワークフォースに関連するワーカーポータル URL には、VPC からアクセスできます。パブリックインターネットに制限を設定するまで、ワーカーポータル URL には、パブリックインターネットからもアクセスできます。ワークフォースを削除するか、ワークフォースから VPC 設定を削除すると、Ground Truth はワークフォースに関連付けられた VPC エンドポイントを自動的に削除します。

**注記**  
1 人のワークフォースに対してサポートされる VPC は 1 つだけです。

[点群](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html)と[動画](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html)タスクは VPC 経由のロードをサポートしていません。

このガイドでは、Amazon VPC 設定をワークフォースに追加および削除するために必要なステップを実行して前提条件を満たす方法について説明します。

## 前提条件
<a name="samurai-vpc-getting-started-prerequisites"></a>

Amazon VPC で Ground Truth ラベリングジョブを実行するには、以下の前提条件を確認してください。
+ 使用可能な Amazon VPC が設定されていること。VPC を設定していない場合は、次の手順に従って [VPC を作成](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#interface-endpoint-shared-subnets)してください。
+ [ワーカータスクテンプレート](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-instructions-overview.html)の記述方法によっては、Amazon S3 バケットに保存されたラベリングデータが、ラベリングタスク中に Amazon S3 から直接アクセスされる場合があります。このような場合、人間のラベル作成者が使用するデバイスから、ラベリングデータを含む S3 バケットへのトラフィックを許可するように VPC ネットワークを設定する必要があります。
+ VPC の DNS ホスト名と DNS 解決を有効にするには、「[VPC の DNS 属性の表示と更新](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating)」の手順に従ってください。

**注記**  
ワークフォースに VPC を設定するには 2 つの方法があります。これは、 [コンソール](https://console.aws.amazon.com/sagemaker)または AWS SageMaker AI [CLI](https://aws.amazon.com/cli/) を使用して実行できます。

# SageMaker AI コンソールを使用した VPC 設定の管理
<a name="samurai-vpc-workforce-console"></a>

[SageMaker AI コンソール](https://console.aws.amazon.com/sagemaker)を使用して、VPC 設定を追加または削除できます。既存のワークフォースを削除することもできます。

## VPC 設定をワークフォースに追加
<a name="samurai-add-vpc-workforce"></a>

### プライベートワークフォースを作成する
<a name="samurai-vpc-create-workforce"></a>
+ [Amazon Cognito を使用してプライベートワークフォースを作成する](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-private-use-cognito.html)
+ [OpenID Connect (OIDC) アイデンティティプロバイダー (IdP) を使用してプライベートワークフォースを作成する](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-private-use-oidc.html)

プライベートワークフォースを作成したら、VPC 設定を追加します。

1. コンソールで [Amazon SageMaker ランタイム](https://console.aws.amazon.com/sagemaker)に移動します。

1. 左側のパネルで **[ラベリングワークフォース]** を選択します。

1. **[プライベート]** を選択してプライベートワークフォースにアクセスします。**[ワークフォースステータス]** が **[アクティブ]** になったら、**[VPC]** の横にある **[追加]** を選択します。

1. VPC を設定するように求められたら、次の情報を入力します。

   1. **VPC**

   1. **サブネット**

      1. VPC に既存のサブネットがあることを確認する

   1. **セキュリティグループ**

      1. 
**注記**  
5 つ以上のセキュリティグループを選択することはできません。

   1. この情報を入力したら、**[確認]** を選択します。

1. **[確認]** を選択すると、**[ラベリングワークフォース]** の下の **[非公開]** ページにリダイレクトされます。上部に、**[VPC 設定によるプライベートワークフォースの更新は正常に初期化されました]** という緑色のバナーが表示されます。ワークフォースのステータスは **[更新中]** です。**[ワークフォースの削除]** ボタンの横には **[更新]** ボタンがあります。このボタンを使用して最新の **[ワークフォースのステータス]** を取得できます。ワークフォースのステータスが **[アクティブ]** に変わると、VPC エンドポイント ID も更新されます。

## VPC 設定をワークフォースから削除する
<a name="samurai-remove-vpc-workforce"></a>

コンソールを使用してワークフォースから VPC 設定を削除するには、次の情報を使用してください。

1. コンソールで [Amazon SageMaker ランタイム](https://console.aws.amazon.com/sagemaker)に移動します。

1. 左側のパネルで **[ラベリングワークフォース]** を選択します。

1. ワークフォースを検索して選択します。

1. **[プライベートワークフォースの概要]** で **[VPC]** の横にある **[削除]** を選択します。

1. **[削除]** を選択します。

## コンソールでワークフォースを削除する
<a name="samurai-delete-vpc-workforce"></a>

ワークフォースを削除する場合、そのワークフォースにチームが関連付けられていないことを確認してください。ワークフォースを削除できるのは、ワークフォースステータスが **[アクティブ]** または **[失敗]** の場合のみです。

コンソールを使用してワークフォースを削除するには、次の情報を使用してください。

1. コンソールで [Amazon SageMaker ランタイム](https://console.aws.amazon.com/sagemaker)に移動します。

1. 左側のパネルで **[ラベリングワークフォース]** を選択します。

1. ワークフォースを検索して選択します。

1. **[ワークフォースの削除]** を選択します。

1. [**削除**] を選択します。

# SageMaker AI AWS API を使用した VPC 設定の管理
<a name="samurai-vpc-workforce-cli"></a>

以下のセクションでは、ワークチームへの適切なレベルのアクセスを維持しながら、VPC 設定を管理する方法について詳しく説明します。

## VPC 設定でワークフォースを構築する
<a name="samurai-create-vpc-cli"></a>

アカウントに既にワークフォースがある場合は、まずそのワークフォースを削除する必要があります。VPC 設定でワークフォースを更新することもできます。

```
aws sagemaker create-workforce --cognito-config '{"ClientId": "app-client-id","UserPool": "Pool_ID",}' --workforce-vpc-config \       
" {\"VpcId\": \"vpc-id\", \"SecurityGroupIds\": [\"sg-0123456789abcdef0\"], \"Subnets\": [\"subnet-0123456789abcdef0\"]}" --workforce-name workforce-name
{
    "WorkforceArn": "arn:aws:sagemaker:us-west-2:xxxxxxxxx:workforce/workforce-name"
}
```

ワークフォースについて説明し、ステータスが `Initializing` であることを確認します。

```
aws sagemaker describe-workforce --workforce-name workforce-name
{
    "Workforce": {
        "WorkforceName": "workforce-name",
        "WorkforceArn": "arn:aws:sagemaker:us-west-2:xxxxxxxxx:workforce/workforce-name",
        "LastUpdatedDate": 1622151252.451,
        "SourceIpConfig": {
            "Cidrs": []
        },
        "SubDomain": "subdomain.us-west-2.sagamaker.aws.com",
        "CognitoConfig": {
            "UserPool": "Pool_ID",
            "ClientId": "app-client-id"
        },
        "CreateDate": 1622151252.451,
        "WorkforceVpcConfig": {
            "VpcId": "vpc-id",
            "SecurityGroupIds": [
                "sg-0123456789abcdef0"
            ],
            "Subnets": [
                "subnet-0123456789abcdef0"
            ]
        },
        "Status": "Initializing"
    }
}
```

Amazon VPC コンソールに移動します。左パネルから **[エンドポイント]** オプションを選択します。アカウントには 2 つの VPC エンドポイントが作成されているはずです。

## ワークフォースに VPC 設定を追加する
<a name="samurai-add-vpc-cli"></a>

次のコマンドを使用して、VPC 以外のプライベートワークフォースを VPC 設定で更新します。

```
aws sagemaker update-workforce --workforce-name workforce-name\
--workforce-vpc-config "{\"VpcId\": \"vpc-id\", \"SecurityGroupIds\": [\"sg-0123456789abcdef0\"], \"Subnets\": [\"subnet-0123456789abcdef0\"]}"
```

ワークフォースについて説明し、ステータスが `Updating` であることを確認します。

```
aws sagemaker describe-workforce --workforce-name workforce-name
{
    "Workforce": {
        "WorkforceName": "workforce-name",
        "WorkforceArn": "arn:aws:sagemaker:us-west-2:xxxxxxxxx:workforce/workforce-name",
        "LastUpdatedDate": 1622151252.451,
        "SourceIpConfig": {
            "Cidrs": []
        },
        "SubDomain": "subdomain.us-west-2.sagamaker.aws.com",
        "CognitoConfig": {
            "UserPool": "Pool_ID",
            "ClientId": "app-client-id"
        },
        "CreateDate": 1622151252.451,
        "WorkforceVpcConfig": {
            "VpcId": "vpc-id",
            "SecurityGroupIds": [
                "sg-0123456789abcdef0"
            ],
            "Subnets": [
                "subnet-0123456789abcdef0"
            ]
        },
        "Status": "Updating"
    }
}
```

[Amazon VPC コンソール] に移動します。左パネルから **[エンドポイント]** オプションを選択します。アカウントには 2 つの VPC エンドポイントが作成されているはずです。

## VPC 設定をワークフォースから削除する
<a name="samurai-remove-vpc-cli"></a>

VPC リソースを削除するには、VPC プライベートワークフォースを空の VPC 設定で更新します。

```
aws sagemaker update-workforce --workforce-name workforce-name\ 
--workforce-vpc-config "{}"
```

ワークフォースについて説明し、ステータスが `Updating` であることを確認します。

```
aws sagemaker describe-workforce --workforce-name workforce-name
{
    "Workforce": {
        "WorkforceName": "workforce-name",
        "WorkforceArn": "arn:aws:sagemaker:us-west-2:xxxxxxxxx:workforce/workforce-name",
        "LastUpdatedDate": 1622151252.451,
        "SourceIpConfig": {
            "Cidrs": []
        },
        "SubDomain": "subdomain.us-west-2.sagamaker.aws.com",
        "CognitoConfig": {
            "UserPool": "Pool_ID",
            "ClientId": "app-client-id"
        },
        "CreateDate": 1622151252.451,
        "Status": "Updating"
    }
}
```

Amazon VPC コンソールに移動します。左パネルから **[エンドポイント]** オプションを選択します。2 つの VPC エンドポイントは削除する必要があります。

## VPC 経由のアクセスを維持しながら、ワーカーポータルへのパブリックアクセスを制限する
<a name="public-access-vpc"></a>

 VPC または VPC 以外のワーカーポータルのワーカーは、自分に割り当てられたラベリングジョブタスクを確認できます。割り当ては、OIDC グループを通じて作業チームのワーカーを割り当てることによって行われます。ワークフォースに `sourceIpConfig` を設定して、公共のワーカーポータルへのアクセスを制限するのはお客様の責任です。

**注記**  
SageMaker API を介してのみ、ワーカーポータルへのアクセスを制限できます。これはコンソールからは実行できません。

次のコマンドを使用して、ワーカーポータルへのパブリックアクセスを制限します。

```
aws sagemaker update-workforce --region us-west-2 \
--workforce-name workforce-demo --source-ip-config '{"Cidrs":["10.0.0.0/16"]}'
```

ワークフォースに `sourceIpConfig` を設定すると、ワーカーは VPC のワーカーポータルにアクセスできますが、パブリックインターネットからはアクセスできなくなります。

**注記**  
VPC のワーカーポータルには `sourceIP` 制限を設定できません。