

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 让 SageMaker AI 处理任务访问您的 Amazon VPC 中的资源
<a name="process-vpc"></a>

要控制对您的数据和处理作业的访问，请创建具有私有子网的 Amazon VPC。有关创建和配置 VPC 的信息，请参阅《Amazon VPC 用户指南》**中的 [Amazon VPC 入门](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-getting-started.html)。

您可以通过 VPC 流日志来监控进出处理容器的所有网络流量。有关更多信息，请参阅《Amazon VPC 用户指南》**中的 [VPC 流日志](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/flow-logs.html)。

本文档介绍如何为处理作业添加 Amazon VPC 配置。

## 配置处理作业以进行 Amazon VPC 访问
<a name="process-vpc-configure"></a>

您可以通过指定 VPC IDs 内的子网和安全组来配置处理任务。您无需为处理容器指定子网。Amazon SageMaker AI 会自动从亚马逊 ECR 中提取处理容器。有关处理容器的更多信息，请参阅[带 SageMaker 处理功能的数据转换工作负载](processing-job.md)。

创建处理任务时，您可以使用 SageMaker AI 控制台或 API 在 VPC 中指定子网和安全组。

要使用 API，请在[ CreateProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)操作的`NetworkConfig.VpcConfig`参数 IDs 中指定子网和安全组。 SageMaker AI 使用子网和安全组详细信息来创建网络接口并将其连接到处理容器。网络接口在 VPC 中为处理容器提供网络连接。这允许处理作业连接到您的 VPC 中存在的资源。

以下是您在调用 `CreateProcessingJob` 操作时将包含的 `VpcConfig` 参数的示例：

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

## 配置您的私有 VPC 以进行 SageMaker AI 处理
<a name="process-vpc-vpc"></a>

在为 SageMaker AI 处理任务配置私有 VPC 时，请遵循以下准则。有关设置 VPC 的信息，请参阅 *Amazon VPC 用户指南*中的[使用 VPCs 和子网](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/working-with-vpcs.html)。

**Topics**
+ [确保子网拥有足够的 IP 地址](#process-vpc-ip)
+ [创建 Amazon S3 VPC 端点](#process-vpc-s3)
+ [使用自定义终端节点策略限制 S3 访问](#process-vpc-policy)
+ [配置路由表](#process-vpc-route-table)
+ [配置 VPC 安全组](#process-vpc-groups)
+ [连接到 VPC 之外的资源](#process-vpc-nat)
+ [使用 CloudWatch 日志和指标监控 Amazon SageMaker 处理任务](#process-vpc-cloudwatch)

### 确保子网拥有足够的 IP 地址
<a name="process-vpc-ip"></a>

对于处理作业中的每个实例，您的 VPC 子网应至少拥有两个私有 IP 地址。有关更多信息，请参阅 *Amazon VPC 用户指南 IPv4中的 VPC* [和子网大小](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html#vpc-sizing-ipv4)。

### 创建 Amazon S3 VPC 端点
<a name="process-vpc-s3"></a>

如果您将 VPC 配置为使处理容器不具有互联网访问权限，则这些容器无法连接到包含数据的 Amazon S3 存储桶，除非您创建一个允许访问的 VPC 端点。通过创建 VPC 终端节点，您允许处理容器访问用于存储数据的存储桶。我们还建议您创建自定义策略，只允许来自私有 VPC 的请求访问您的 S3 存储桶。有关更多信息，请参阅[用于 Amazon S3的端点](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html)。

**要创建 S3 VPC 终端节点，请执行以下操作：**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Endpoints (终端节点)**，然后选择 **Create Endpoint (创建终端节点)**。

1. 对于**服务名称**，请选择 **com.amazonaws。 *region*.s3**，其中*region*是您的 VPC 所在区域的名称。

1. 对于 **VPC**，请选择要用于该终端节点的 VPC。

1. 对于 **Configure route tables**，选择终端节点要使用的路由表。VPC 服务自动将一个路由添加到您选择的每个路由表中，它将任何 S3 流量传送到新的终端节点。

1. 对于 **Policy (策略)**，请选择 **Full Access (完全访问)** 以允许 VPC 中的任何用户或服务完全访问 S3 服务。选择 **Custom (自定义)** 以进一步限制访问。有关信息，请参阅[使用自定义终端节点策略限制 S3 访问](#process-vpc-policy)。

### 使用自定义终端节点策略限制 S3 访问
<a name="process-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="process-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="process-vpc-route-table"></a>

使用终端节点路由表的默认 DNS 设置，以便标准的 Amazon S3 URLs （例如`http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket`）可以解析。如果您不使用默认 DNS 设置，请确保通过配置终端节点路由表来解析用于在处理任务中指定数据位置的。 URLs 有关 VPC 端点路由表的信息，请参阅《Amazon VPC 用户指南》**中的[网关端点路由](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-gateway.html#vpc-endpoints-routing)。

### 配置 VPC 安全组
<a name="process-vpc-groups"></a>

在分布式处理中，您必须允许在同一处理作业中的不同容器之间进行通信。为此，请为您的安全组配置规则，以允许同一安全组的成员之间实现入站连接。有关更多信息，请参阅[安全组规则](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html#SecurityGroupRules)。

### 连接到 VPC 之外的资源
<a name="process-vpc-nat"></a>

如果您要将模型连接到它们运行所在的 VPC 之外的资源，请执行以下操作之一：
+ **连接到其他 AWS 服务** — 如果您的模型需要访问支持接口 Amazon VPC 终端节点的 AWS 服务，请创建一个终端节点来连接到该服务。有关支持接口端点的服务列表，请参阅《 AWS PrivateLink 用户指南》 AWS PrivateLink中[与之集成的AWS 服务](https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html)。有关创建接口 VPC 终端节点的信息，请参阅 AWS PrivateLink 用户指南中的[使用接口 VPC 终端节点访问 AWS 服务](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。
+ **通过互联网连接到资源** - 如果您的模型在 Amazon VPC 中的实例上运行，而该 VPC 没有可访问互联网的子网，则模型将无法访问互联网上的资源。如果您的模型需要访问不支持接口 VPC 终端节点的 AWS 服务，或者访问外部的资源 AWS，请确保您的模型在私有子网中运行，该子网可使用公有子网中的公有 NAT 网关访问 Internet。在私有子网中运行模型后，请配置安全组和网络访问控制列表 (NACLs)，以允许从私有子网到公有子网中的公有 NAT 网关的出站连接。有关信息，请参阅《Amazon VPC 用户指南》中的 [NAT 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html )。

### 使用 CloudWatch 日志和指标监控 Amazon SageMaker 处理任务
<a name="process-vpc-cloudwatch"></a>

Amazon A SageMaker I 提供亚马逊 CloudWatch 日志和指标来监控训练作业。 CloudWatch 提供 CPU、GPU、内存、GPU 内存和磁盘指标以及事件记录。有关监控 Amazon SageMaker 处理任务的更多信息，请参阅[亚马逊中的亚马逊 A SageMaker I 指标 CloudWatch](monitoring-cloudwatch.md)和[SageMaker AI 工作指标](monitoring-cloudwatch.md#cloudwatch-metrics-jobs)。