让 Batch Transform 任务访问您的 Amazon 中的资源 VPC - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

让 Batch Transform 任务访问您的 Amazon 中的资源 VPC

要控制对数据的访问权限和批量转换任务,我们建议您创建私有 Amazon VPC 并将其配置为无法通过公共互联网访问您的任务。在创建模型时,您可以通过指定子网和安全组来指定您的私有VPC配置。然后,您可以在创建批量转换作业时指定相同的模型。当您指定子网和安全组时, SageMaker 会在其中一个子网中创建与您的安全组关联的弹性网络接口。网络接口允许您的模型容器连接到中的资源VPC。有关网络接口的信息,请参阅 Amazon VPC 用户指南中的弹性网络接口

本文档介绍如何为批量转换任务添加 Amazon VPC 配置。

为 Amazon Acc VPC ess 配置批处理转换 Job

要指定私有子网和安全组VPC,请使用的VpcConfig请求参数 CreateModelAPI,或者在 SageMaker 控制台中创建模型时提供此信息。然后在的ModelName请求参数中指定相同的模型 CreateTransformJobAPI,或者在 SageMaker 控制台中创建转换作业时,在模型名称字段中指定相同的模型。 SageMaker 使用此信息创建网络接口并将其连接到您的模型容器。网络接口为您的模型容器提供了一个未连接VPC到 Internet 的网络连接。它们还使您的转换任务能够连接到您的私有资源VPC。

以下是您在调用 CreateModel 时将包含的 VpcConfig 参数的示例:

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

如果您使用CreateModelAPI操作创建模型,则用于创建模型的IAM执行角色必须包含中描述的权限CreateModel API: 执行角色权限,包括私有所需的以下权限VPC。

在控制台中创建模型时,如果您在 “模型设置” 部分中选择 “创建新角色”,则用于创建角色的AmazonSageMakerFullAccess 策略已包含这些权限。如果您选择 “输入自定义IAM角色” ARN 或 “使用现有角色”ARN,则您指定的角色必须具有具有以下权限的执行策略。

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

为 B SageMaker atch 转换配置您的私有VPC内容

VPC为 SageMaker 批量转换作业配置私有时,请遵循以下准则。有关设置的信息VPC,请参阅 Amazon VPC 用户指南中的使用VPCs和子网

确保子网拥有足够的 IP 地址

在转换作业中,每个实例的VPC子网应至少有两个私有 IP 地址。有关更多信息,请参阅 VPC Amazon VPC 用户指南IPv4中的子网大小

创建 Amazon S3 VPC 终端节点

如果您将您的配置为VPC使模型容器无法访问互联网,则除非您创建允许访问的VPC终端节点,否则它们将无法连接到包含您的数据的 Amazon S3 存储桶。通过创建VPC终端节点,您可以允许模型容器访问存储数据和模型工件的存储桶。我们还建议您创建自定义策略,仅允许来自您的私有存储桶的请求VPC访问您的 S3 存储桶。有关更多信息,请参阅用于 Amazon S3 的端点

要创建 S3 VPC 端点,请执行以下操作:
  1. 打开亚马逊VPC控制台,网址为https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Endpoints (终端节点),然后选择 Create Endpoint (创建终端节点)

  3. 对于服务名称,请选择 com.amazonaws。region.s3,其中 region 是您VPC居住的地区的名称。

  4. 对于 VPC,请选择VPC要用于此端点的。

  5. 对于 Configure route tables,选择终端节点要使用的路由表。该VPC服务会自动向您选择的每个路由表添加一条路由,将任何 S3 流量指向新的终端节点。

  6. 对于策略,选择完全访问权限以允许任何用户或其中的服务完全访问 S3 服务VPC。选择 Custom (自定义) 以进一步限制访问。有关信息,请参阅使用自定义终端节点策略限制 S3 访问

使用自定义终端节点策略限制 S3 访问

默认终端节点策略允许您中的任何用户或服务完全访问 S3 VPC。要进一步限制 S3 访问,请创建一个自定义终端节点策略。有关更多信息,请参阅对 Amazon S3 使用端点策略。您还可以使用存储桶策略将访问您的 S3 存储桶限制为仅限来自您的 Amazon VPC 的流量。有关信息,请参阅使用 Amazon S3 存储桶策略

限制在模型容器上安装包

默认终端节点策略允许用户在训练容器中安装来自 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/*" ] } ] }

配置路由表

使用终端节点路由表的默认DNS设置,以便标准的 Amazon S3URLs(例如http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket)可以解析。如果您不使用默认DNS设置,请确保通过配置终端节点路由表来解析用于在批处理转换作业中指定数据位置的设置。URLs有关VPC终端节点路由表的信息,请参阅 Amazon VPC 用户指南中的网关终端节点路由。

配置VPC安全组

在分布式批量转换中,您必须允许同一批量转换作业中的不同容器之间进行通信。为此,请为您的安全组配置规则,以允许同一安全组的成员之间实现入站和出站连接。同一安全组的成员应能通过所有端口相互通信。有关更多信息,请参阅安全组规则

Connect 连接到你以外的资源 VPC

如果您将您的配置VPC为无法访问 Internet,VPC请批量转换那些无法访问您外部资源的作业VPC。如果您的批处理转换作业需要访问您之外的资源VPC,请使用以下选项之一提供访问权限:

  • 如果您的批处理转换作业需要访问 Amazon 支持接口VPC端点的服务,请创建一个终端节点以连接到该服务。有关支持接口终端节点的服务列表,请参阅 Amazon VPC 用户指南中的VPC终端节点。有关创建接口终端节点的信息,请参阅接口VPC终VPC端节点 (Amazon PrivateLink) 在《亚马逊VPC用户指南》中。

  • 如果您的批处理转换作业需要访问 Amazon 不支持接口VPC端点或指向外部资源的服务 Amazon,创建NAT网关并将您的安全组配置为允许出站连接。有关为您的设置NAT网关的信息VPC,请参阅 Amazon Virtual Private Cloud 用户指南中的场景 2:VPC使用公有子网和私有子网 (NAT)