

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

# Amazon VPC のリソースへのアクセス権をバッチ変換ジョブに付与する
<a name="batch-vpc"></a>

データおよびバッチ変換ジョブへのアクセスを制御するには、プライベート Amazon VPC を作成して設定し、パブリックインターネット経由でジョブにアクセスできないようにすることをお勧めします。VPC 設定を指定するには、モデルの作成時にサブネットとセキュリティグループを指定します。次に、バッチ変換ジョブを作成するときに、同じモデルを指定します。サブネットとセキュリティグループを指定すると、SageMaker AI はサブネットの 1 つのセキュリティグループに関連付けられている *Elastic Network Interface* を作成します。ネットワークインターフェイスを使うと、モデルコンテナは VPC 内のリソースに接続できます。ネットワークインターフェイスの詳細については、Amazon VPC ユーザーガイドの「[Elastic Network Interface](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ElasticNetworkInterfaces.html)」を参照してください。**

このドキュメントでは、バッチ変換ジョブの Amazon VPC 設定を追加する方法を説明します。

## Amazon VPC アクセス用にバッチ変換ジョブを設定する
<a name="batch-vpc-configure"></a>

プライベート VPC 内のサブネットとセキュリティグループを指定するには、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API の `VpcConfig` リクエストパラメータを使用するか、SageMaker AI コンソールでモデルを作成する際に、この情報を指定します。次に、同じモデルを [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) API の `ModelName` リクエストパラメータで指定するか、SageMaker AI コンソールで変換ジョブを作成するときに **[モデル名]** フィールドで指定します。SageMaker AI は、この情報を使用してネットワークインターフェイスを作成し、モデルコンテナにアタッチします。ネットワークインターフェイスは、インターネットに接続されていない VPC 内のネットワーク接続をモデルコンテナに提供します。また、変換ジョブがプライベート VPC 内のリソースに接続できるようにします。

次に、`VpcConfig` への呼び出しに含める `CreateModel` パラメータの例を示します。

```
VpcConfig: {
      "Subnets": [
          "subnet-0123456789abcdef0",
          "subnet-0123456789abcdef1",
          "subnet-0123456789abcdef2"
          ],
      "SecurityGroupIds": [
          "sg-0123456789abcdef0"
          ]
        }
```

`CreateModel` API オペレーションを使ってモデルを作成する場合、モデルの作成に使う IAM 実行ロールには、「[CreateModel API: 実行ロールアクセス許可](sagemaker-roles.md#sagemaker-roles-createmodel-perms)」で説明しているアクセス許可 (プライベート VPC に必要な次のアクセス許可など) を含める必要があります。

コンソールでモデルを作成する場合に **[Model Settings]** (モデル設定) セクションの**[Create a new role]** (新しいロールの作成) を選択したときは、ロールの作成に使用した [AmazonSageMakerFullAccess ](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess$jsonEditor) ポリシーに、既にこれらのアクセス許可が含まれています。**[Enter a custom IAM role ARN]** (カスタム IAM ロールの ARN の入力) または **[Use existing role]** (既存のロールの使用) を選択した場合、指定するロールの ARN に、次のアクセス許可を持つ実行ポリシーをアタッチする必要があります。

```
{
            "Effect": "Allow",
            "Action": [
            "ec2:CreateNetworkInterface",
            "ec2:CreateNetworkInterfacePermission",
            "ec2:DeleteNetworkInterface",
            "ec2:DeleteNetworkInterfacePermission",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeVpcs",
            "ec2:DescribeDhcpOptions",
            "ec2:DescribeSubnets",
            "ec2:DescribeSecurityGroups"
```

## SageMaker AI バッチ変換用のプライベート VPC を設定する
<a name="batch-vpc-vpc"></a>

プライベート VPC を SageMaker AI バッチ変換ジョブ用に設定する場合、次のガイドラインに従います。VPC のセットアップについては、Amazon VPC ユーザーガイドの「[VPC とサブネットの使用](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/working-with-vpcs.html)」を参照してください。**

**Topics**
+ [サブネットに十分な IP アドレスを確保する](#batch-vpc-ip)
+ [Amazon S3 VPC エンドポイントを作成する](#batch-vpc-s3)
+ [カスタムエンドポイントポリシーを使用して S3 へのアクセスを制限する](#batch-vpc-policy)
+ [ルートテーブルの設定](#batch-vpc-route-table)
+ [VPC セキュリティグループを設定する](#batch-vpc-groups)
+ [VPC の外部のリソースに接続する](#batch-vpc-nat)

### サブネットに十分な IP アドレスを確保する
<a name="batch-vpc-ip"></a>

VPC サブネットには、変換ジョブの各インスタンスにプライベート IP アドレスが少なくとも 2 つ必要です。詳細については、*Amazon VPC ユーザーガイド*の [IPv4 用の VPC とサブネットのサイズ設定](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html#vpc-sizing-ipv4)を参照してください。

### Amazon S3 VPC エンドポイントを作成する
<a name="batch-vpc-s3"></a>

モデルコンテナがインターネットにアクセスできないように VPC を設定した場合、アクセスを許可する VPC エンドポイントを作成しない限り、モデルコンテナはデータを含む Amazon S3 バケットに接続できません。VPC エンドポイントを作成することで、データとモデルのアーティファクトを保存するバケットにモデルコンテナがアクセスできるようにします。プライベート VPC からのリクエストのみに S3 バケットへのアクセスを許可するカスタムポリシーも作成することをお勧めします。詳細については、[Amazon S3 のエンドポイント](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html)を参照してください。

**S3 VPC エンドポイントを作成するには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

1. ナビゲーションペインで [**エンドポイント**] を選択し、[**エンドポイントの作成**] を選択します。

1. **[Service Name]** (サービス名) で、**com.amazonaws.*region*.s3** を選択します。この場合、*region* は VPC が存在するリージョンの名前になります。

1. **[VPC]**] で、エンドポイントに使用する VPC を選択します。

1. [**Configure route tables**] で、エンドポイントで使用するルートテーブルを選択します。VPC サービスで、選択した各ルートテーブルに、S3 トラフィックを新しいエンドポイントに向けるルートが自動的に追加されます。

1. [**ポリシー**] で、[**フルアクセス**] を選択して、VPC 内の任意のユーザーまたはサービスによる S3 サービスへのフルアクセスを許可します。アクセスを詳細に制限するには、[**カスタム**] を選択します。詳細については、「[カスタムエンドポイントポリシーを使用して S3 へのアクセスを制限する](#batch-vpc-policy)」を参照してください。

### カスタムエンドポイントポリシーを使用して S3 へのアクセスを制限する
<a name="batch-vpc-policy"></a>

デフォルトのエンドポイントポリシーでは、VPC のすべてのユーザーまたはサービスに対して S3 へのフルアクセスが許可されています。S3 へのアクセスを詳細に制限するには、カスタムエンドポイントポリシーを作成します。詳細については、「[Amazon S3 のエンドポイントポリシー](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3)」を参照してください。バケットポリシーを使って、S3 バケットへのアクセスを Amazon VPC からのトラフィックのみに制限することもできます。詳細については、「[Amazon S3 バケットポリシー](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-s3-bucket-policies)」を参照してください。

#### モデルコンテナへのパッケージのインストールを制限する
<a name="batch-vpc-policy-repos"></a>

デフォルトエンドポイントポリシーでは、ユーザーは、Amazon Linux と Amazon Linux 2 のリポジトリからのパッケージをトレーニングコンテナにインストールできます。ユーザーがそのリポジトリからパッケージをインストールしないようにする場合は、Amazon Linux と Amazon Linux 2 のリポジトリへのアクセスを明示的に拒否するカスタムエンドポイントポリシーを作成します。これらのリポジトリへのアクセスを拒否するポリシーの例を次に示します。

```
{ 
    "Statement": [ 
      { 
        "Sid": "AmazonLinuxAMIRepositoryAccess",
        "Principal": "*",
        "Action": [ 
            "s3:GetObject" 
        ],
        "Effect": "Deny",
        "Resource": [
            "arn:aws:s3:::packages.*.amazonaws.com/*",
            "arn:aws:s3:::repo.*.amazonaws.com/*"
        ] 
      } 
    ] 
} 

{ 
    "Statement": [ 
        { "Sid": "AmazonLinux2AMIRepositoryAccess",
          "Principal": "*",
          "Action": [ 
              "s3:GetObject" 
              ],
          "Effect": "Deny",
          "Resource": [
              "arn:aws:s3:::amazonlinux.*.amazonaws.com/*" 
              ] 
         } 
    ] 
}
```

### ルートテーブルの設定
<a name="batch-vpc-route-table"></a>

エンドポイントルートテーブルのデフォルトの DNS 設定を使って、標準 Amazon S3 URL (例えば、`http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket`) が解決されるようにします。デフォルトの DNS 設定を使用しない場合は、エンドポイントルートテーブルを設定することで、バッチ変換ジョブのデータの場所の指定に使用する URL が解決されるようにします。VPC エンドポイントルートテーブルについては、Amazon VPC ユーザーガイドの「[ゲートウェイエンドポイントのルーティング](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-gateway.html#vpc-endpoints-routing)」を参照してください。**

### VPC セキュリティグループを設定する
<a name="batch-vpc-groups"></a>

分散型バッチ変換では、同じ分散型バッチ変換ジョブ内の異なるコンテナ間の通信を許可する必要があります。そのためには、同じセキュリティグループのメンバー間のインバウンド接続とアウトバウンド接続を許可するセキュリティグループのルールを設定します。同じセキュリティグループのメンバーは、すべてのポート間で相互に通信できる必要があります。詳細については、「[セキュリティグループのルール](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html#SecurityGroupRules)」を参照してください。

### VPC の外部のリソースに接続する
<a name="batch-vpc-nat"></a>

インターネットにアクセスできないように VPC を設定する場合、その VPC を使用するバッチ変換ジョブは、VPC の外部のリソースにアクセスできません。バッチ変換ジョブが VPC の外部のリソースにアクセスする必要がある場合は、次のいずれかのオプションを使用してアクセスを可能にします。
+ バッチ変換ジョブがインターフェイス VPC エンドポイントをサポートする AWS サービスにアクセスする必要がある場合は、そのサービスに接続するエンドポイントを作成します。インターフェイスエンドポイントをサポートするサービスのリストについては、Amazon VPC ユーザーガイドの「[VPC エンドポイント](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html)」を参照してください。**インターフェイス VPC エンドポイントの作成については、*「Amazon* [VPC ユーザーガイド」の「インターフェイス VPC エンドポイント (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-interface.html)」を参照してください。
+ バッチ変換ジョブがインターフェイス VPC エンドポイントをサポートしていない AWS サービスまたは 外のリソースにアクセスする必要がある場合は AWS、NAT ゲートウェイを作成し、アウトバウンド接続を許可するようにセキュリティグループを設定します。VPC 用の NAT ゲートウェイのセットアップについては、*Amazon Virtual Private Cloud ユーザーガイド*の「[シナリオ 2: パブリックサブネットとプライベートサブネットを持つ VPC (NAT)](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html)」を参照してください。