

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

# マルチターン RL ジョブの VPC を設定する
<a name="model-customize-mtrl-vpc"></a>

マルチターン RL ジョブ設定`VpcConfig`で を指定すると、Amazon SageMaker AI はプロキシ Elastic Network Interface (ENI) を VPC に配置します。S3 バケットへのアクセス、エージェントの呼び出し、ログ記録を含むすべての顧客データトラフィックは、この ENI を経由します。これにより、データは VPC ネットワーク境界内に保持されます。

**サブネット**

冗長性を確保するために、異なるアベイラビリティーゾーンに 2 つ以上のプライベートサブネットを指定します。すべてのトラフィックは VPC エンドポイントを経由するため、サブネットには NAT ゲートウェイやインターネットアクセスは必要ありません。

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

次のアウトバウンドルールを使用してセキュリティグループを作成します。インバウンドルールは必要ありません。
+ へのアウトバウンド TCP 443 `0.0.0.0/0`
+ へのアウトバウンド UDP 53 `0.0.0.0/0`

**注記**  
セキュリティを強化するために、 を許可する代わりに、S3 マネージドプレフィックスリストとインターフェイスエンドポイント ENIs のプライベート IP アドレスに出力を制限できます`0.0.0.0/0`。

**VPC エンドポイント**

プロキシ ENI からのトラフィックがインターネットアクセスなしで AWS サービスに到達できるように、次の VPC エンドポイントを作成します。


| Endpoint | ルーティングされたトラフィック | サービス名 | タイプ | 
| --- | --- | --- | --- | 
| S3 (必須) | プロンプトデータ、ジョブ出力、MLflow アーティファクト (GetObject、PutObject、ListBucket) | com.amazonaws.{{region}}.s3 | ゲートウェイ | 
| CloudWatch Logs (必須) | トレーニングコンテナログ (PutLogEvents、CreateLogGroup、CreateLogStream) | com.amazonaws.{{region}}.logs | インターフェイス | 
| Bedrock AgentCore (Bedrock エージェントを使用する場合は必須) | エージェント呼び出し (InvokeAgentRuntime) | com.amazonaws.{{region}}.bedrock-agentcore | インターフェイス | 
| Lambda (Lambda エージェントを使用する場合は必須) | Lambda フォワーダーによるエージェントの呼び出し (Invoke) | com.amazonaws.{{region}}.lambda | インターフェイス | 
| MLflow (MLflow 追跡を使用する場合に必要) | トレーニングメトリクスとトレース (LogBatch、StartTrace、EndTrace) | aws.sagemaker.{{region}}.mlflow | インターフェイス | 

**注記**  
すべてのインターフェイスエンドポイントでプライベート DNS を有効にします。

**インターフェイスエンドポイントセキュリティグループ**

すべてのインターフェイスエンドポイントは、VPC CIDR からのインバウンド TCP 443 とセキュリティグループを共有する必要があります。

**IAM アクセス許可**

実行ロールには、ENI 管理のための EC2 アクセス許可を含める必要があります。ロールに次のポリシーステートメントを追加します。

```
[
    {
        "Effect": "Allow",
        "Action": [
            "ec2:CreateNetworkInterface",
            "ec2:CreateNetworkInterfacePermission",
            "ec2:DeleteNetworkInterface",
            "ec2:DeleteNetworkInterfacePermission",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeSubnets",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeVpcs"
        ],
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "ec2:CreateTags"
        ],
        "Resource": "arn:aws:ec2:*:*:network-interface/*",
        "Condition": {
            "StringEquals": {
                "ec2:CreateAction": "CreateNetworkInterface"
            }
        }
    }
]
```

**API 設定**

マルチターン RL ジョブリクエストに `VpcConfig`パラメータを含めます。

```
"VpcConfig": {
    "Subnets": ["subnet-0abc123", "subnet-0def456"],
    "SecurityGroupIds": ["sg-0abc123def"]
}
```

VPC 設定をさらに保護するために、追加の制限を適用できます。

**S3 バケットポリシー**

VPC への S3 アクセスのみを制限するには、 `aws:SourceVpc`条件で拒否ポリシーを追加します。

```
{
    "Sid": "DenyAccessFromOutsideVpc",
    "Effect": "Deny",
    "Principal": "*",
    "Action": "s3:*",
    "Resource": [
        "arn:aws:s3:::{{my-mtrl-bucket}}",
        "arn:aws:s3:::{{my-mtrl-bucket}}/*"
    ],
    "Condition": {
        "StringNotEquals": {
            "aws:SourceVpc": "{{vpc-0abc123def}}"
        }
    }
}
```

**注記**  
`aws:SourceVpc` 条件キーは、リクエストが S3 Gateway エンドポイントを通過する場合にのみ入力されます。

**VPC エンドポイントポリシー**

マルチターン RL ジョブに必要なアクションのみを許可するようにインターフェイスエンドポイントを制限できます。次の例では、CloudWatch Logs エンドポイントを `/aws/sagemaker/Job/` プレフィックスを持つロググループに制限します。

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:CreateLogStream"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:/aws/sagemaker/Job/*"
        }
    ]
}
```