本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
允许 SageMaker 托管终端节点访问您的 Amazon 中的资源 VPC
为 Amazon A VPC ccess 配置模型
要指定私有子网和安全组VPC,请使用的VpcConfig
请求参数 CreateModel
API,或者在 SageMaker 控制台中创建模型时提供此信息。 SageMaker 使用此信息创建网络接口并将其连接到您的模型容器。网络接口为您的模型容器提供了一个未连接VPC到 Internet 的网络连接。它们还使您的模型能够连接到您的私有资源VPC。
注意
即使只有一个托管实例,您也必须在私VPC有网络的不同可用区中创建至少两个子网。
以下是您在调用 CreateModel
时将包含的 VpcConfig
参数的示例:
VpcConfig: { "Subnets": [ "subnet-0123456789abcdef0", "subnet-0123456789abcdef1", "subnet-0123456789abcdef2" ], "SecurityGroupIds": [ "sg-0123456789abcdef0" ] }
为 SageMaker 托管配置您的私VPC有账户
VPC为模型配置私有 SageMaker 模式时,请遵循以下准则。有关设置的信息VPC,请参阅 Amazon VPC 用户指南中的使用VPCs和子网。
主题
确保子网拥有足够的 IP 地址
不使用弹性结构适配器 (EFA) 的训练实例应至少有 2 个私有 IP 地址。使用的训练实例EFA应至少有 5 个私有 IP 地址。有关更多信息,请参阅 Amazon EC2 用户指南中的多个 IP 地址。
创建 Amazon S3 VPC 终端节点
如果您将您的配置为VPC使模型容器无法访问互联网,则除非您创建允许访问的VPC终端节点,否则它们将无法连接到包含您的数据的 Amazon S3 存储桶。通过创建VPC终端节点,您可以允许模型容器访问存储数据和模型工件的存储桶。我们还建议您创建自定义策略,仅允许来自您的私有存储桶的请求VPC访问您的 S3 存储桶。有关更多信息,请参阅用于 Amazon S3 的端点。
要创建 Amazon S3 VPC 终端节点,请执行以下操作:
-
打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/
。 -
在导航窗格中,选择 Endpoints (终端节点),然后选择 Create Endpoint (创建终端节点)。
-
对于服务名称,请选择 com.amazonaws。
region
.s3,其中region
是您VPC居住的 Amazon 地区的名称。 -
对于 VPCVPC,请选择要用于此端点的。
-
对于配置路由表,请选择端点要使用的路由表。该VPC服务会自动向您选择的每个路由表添加一条路由,将 Amazon S3 流量指向新的终端节点。
-
对于策略,选择完全访问权限以允许任何用户或其中的服务完全访问 Amazon S3 服务VPC。要进一步限制访问,请选择 Custom (自定义)。有关更多信息,请参阅 使用自定义端点策略限制访问 Amazon S3。
使用自定义端点策略限制访问 Amazon S3
默认终端节点策略允许您中的任何用户或服务完全访问亚马逊简单存储服务 (Amazon S3)。VPC要进一步限制访问 Amazon 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/*" ] } ] }
为自定义IAM策略添加在中运行的容器的终端节点访问权限 VPC
SageMakerFullAccess
托管策略包括使用为通过终端节点VPC访问Amazon配置的模型所需的权限。这些权限 SageMaker 允许创建 elastic network interface 并将其附加到在中运行的模型容器上VPC。如果您使用自己的IAM策略,则必须向该策略添加以下权限才能使用为VPC访问配置的模型。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVpcEndpoints", "ec2:DescribeDhcpOptions", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateNetworkInterface" ], "Resource": "*" } ] }
有关 SageMakerFullAccess
托管策略的更多信息,请参阅 Amazon 托管策略: AmazonSageMakerFullAccess。
配置路由表
使用终端节点路由表的默认DNS设置,以便标准的 Amazon S3URLs(例如http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket
)可以解析。如果您不使用默认DNS设置,请确保通过配置端点路由表来解析模型中用于指定数据位置的设置。URLs有关VPC终端节点路由表的信息,请参阅 Amazon VPC 用户指南中的网关终端节点路由。
Connect 连接到你以外的资源 VPC
如果您将您的VPC配置为无法访问 Internet,则使用该VPC模型的模型将无法访问您外部的资源VPC。如果您的模型需要访问外部资源VPC,请使用以下选项之一提供访问权限:
-
如果您的模型需要访问支持接口VPC终端节点的 Amazon 服务,请创建一个终端节点来连接到该服务。有关支持接口终端节点的服务列表,请参阅 Amazon VPC 用户指南中的VPC终端节点。有关创建接口VPC终端节点的信息,请参阅 Amazon VPC 用户指南中的接口VPC终端节点 (Amazon PrivateLink)。
-
如果您的模型需要访问不支持接口VPC终端节点的 Amazon 服务或外部的资源 Amazon,请创建NAT网关并将您的安全组配置为允许出站连接。有关为您的设置NAT网关的信息VPC,请参阅 Amazon Virtual Private Cloud 用户指南中的场景 2:VPC使用公有子网和私有子网 (NAT)。