

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為多迴轉 RL 任務設定 VPC
<a name="model-customize-mtrl-vpc"></a>

當您在多迴轉 RL 任務組態`VpcConfig`中提供 時，Amazon SageMaker AI 會在 VPC 中放置代理彈性網路界面 (ENI)。所有客戶資料流量，包括對 S3 儲存貯體的存取、客服人員調用和記錄，都會流經此 ENI。這會將資料保留在您的 VPC 網路邊界內。

**子網路**

在不同的可用區域中提供兩個或多個私有子網路以進行備援。子網路不需要 NAT 閘道或網際網路存取，因為所有流量都會透過 VPC 端點結束。

**安全群組**

使用下列傳出規則建立安全群組。不需要傳入規則。
+ 傳出 TCP 443 至 `0.0.0.0/0`
+ 傳出 UDP 53 至 `0.0.0.0/0`

**注意**  
為了提高安全性，您可以將輸出限制為介面端點 ENIs 的 S3 受管字首清單和私有 IP 地址，而不是允許 `0.0.0.0/0`。

**VPC 端點**

建立下列 VPC 端點，以便來自代理 ENI 的流量可以存取沒有網際網路存取 AWS 的服務。


| Endpoint | 已路由的流量 | 服務名稱 | Type | 
| --- | --- | --- | --- | 
| 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 儲存貯體政策**

若要限制 S3 僅存取您的 VPC，請使用 `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}}"
        }
    }
}
```

**注意**  
只有在請求周遊 S3 Gateway 端點時，才會填入`aws:SourceVpc`條件索引鍵。

**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/*"
        }
    ]
}
```