在您的 VPC 中连接到 SageMaker - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在您的 VPC 中连接到 SageMaker

您可以通过虚拟私有云 (VPC) 中的接口端点直接连接到 SageMaker API 或 Amazon SageMaker Runtime,而不是通过互联网进行连接。当您使用 VPC 接口端点时,您的 VPC 与 SageMaker API 或 Runtime 之间的通信完全在 Amazon 网络内安全进行。

通过 VPC 接口端点连接到 SageMaker

SageMaker API 和 SageMaker Runtime 支持 Amazon Virtual Private Cloud (Amazon VPC) 接口端点(由 Amazon PrivateLink 提供支持)。每个 VPC 端点都由您的 VPC 子网中一个或多个使用私有 IP 地址的弹性网络接口代表。例如,您的 VPC 内的应用程序使用 Amazon PrivateLink 与 SageMaker Runtime 进行通信。SageMaker Runtime 则与 SageMaker 端点进行通信。使用 Amazon PrivateLink,您可以从 VPC 内部调用 SageMaker 端点,如下图所示。


                VPC 使用 Amazon PrivateLink 与 SageMaker 端点进行通信。

VPC 接口端点使用 Amazon PrivateLink 将您的 VPC 直接连接到 SageMaker API 或 SageMaker Runtime,而无需使用互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接。您的 VPC 中的实例无需连接到公共互联网,即可与 SageMaker API 或 SageMaker Runtime 进行通信。

您可以创建 Amazon PrivateLink 接口端点,通过 Amazon Web Services Management Console或 Amazon Command Line Interface (Amazon CLI) 连接到 SageMaker 或者 SageMaker 运行时。有关说明,请参阅创建接口终端节点

如果您尚未为 VPC 端点启用私有域名系统 (DNS) 主机名,请在创建 VPC 端点后,指定 SageMaker API 或 SageMaker Runtime 的互联网端点 URL。以下是使用 Amazon CLI 命令指定 endpoint-url 参数的示例代码。

aws sagemaker list-notebook-instances --endpoint-url VPC_Endpoint_ID.api.sagemaker.Region.vpce.amazonaws.com aws sagemaker list-training-jobs --endpoint-url VPC_Endpoint_ID.api.sagemaker.Region.vpce.amazonaws.com aws sagemaker-runtime invoke-endpoint --endpoint-url VPC_Endpoint_ID.runtime.sagemaker.Region.vpce.amazonaws.com \ --endpoint-name Endpoint_Name \ --body "Endpoint_Body" \ --content-type "Content_Type" \ Output_File

如果您为 VPC 端点启用私有 DNS 主机名,则无需指定端点 URL,因为默认主机名 (https://api.sagemaker.Region.amazon.com) 将解析为您的 VPC 端点。同样,默认 SageMaker Runtime DNS 主机名 (https://runtime.sagemaker.Region.amazonaws.com) 也将解析为您的 VPC 端点。

SageMaker API 和 SageMaker Runtime 在所有同时提供 Amazon VPCSageMaker 的 Amazon Web Services 区域中都支持 VPC 端点。SageMaker 支持调用您的 VPC 中的所有 Operations。Amazon PrivateLink 不支持 CreatePresignedNotebookInstanceUrl 命令的结果 AuthorizedUrl。有关如何为用户用于连接到笔记本实例的授权 URL 启用 Amazon PrivateLink 的信息,请参阅通过 VPC 接口终端节点连接到笔记本实例

注意

为 SageMaker Runtime 服务 (https://runtime.sagemaker.Region.amazonaws.com) 设置 VPC 接口端点时,您必须确保 VPC 接口端点已在客户端的可用区中激活,这样私有 DNS 解析才能正常工作。否则,在尝试解析 URL 时可能会出现 DNS 故障。

要了解有关 Amazon PrivateLink 的更多信息,请参阅 Amazon PrivateLink 文档。请参阅 Amazon PrivateLink 定价,了解 VPC 端点的价格。要了解有关 VPC 和终端节点的更多信息,请参阅 Amazon VPC。有关如何使用基于身份的 Amazon Identity and Access Management 策略限制访问 SageMaker API 和 SageMaker Runtime 的信息,请参阅使用基于身份的策略控制对 SageMaker API 的访问

使用 SageMaker 训练和托管 VPC 内的资源

SageMaker 使用您的执行角色从 Amazon S3 存储桶和 Amazon Elastic Container Registry (Amazon ECR) 下载和上传信息,这与您的训练或推理容器隔离开来。如果您的资源位于 VPC 内,您仍可以向 SageMaker 授予对这些资源的访问权限。以下几节介绍如何在采用或不采用网络隔离的情况下将资源提供给 SageMaker。

未启用网络隔离

如果您尚未对训练作业或模型设置网络隔离,SageMaker 可以使用以下任一方法访问资源。

  • SageMaker 训练和部署的推理容器默认情况下可以访问互联网。SageMaker 容器能够访问外部服务和公共互联网上的资源,以作为训练和部署工作负载的一部分。如果没有 VPC 配置,SageMaker 容器就无法访问您的 VPC 内的资源,如下图所示。

    
                            如果没有 VPC 配置,SageMaker 就无法访问您的 VPC 内的资源。
  • 使用 VPC 配置,通过弹性网络接口 (ENI) 与 VPC 内的资源进行通信。容器和 VPC 内资源之间的通信在您的 VPC 网络中安全地进行,如下图所示。在这种情况下,您可以管理对 VPC 资源和互联网的网络访问。

    
                            使用 VPC 配置,SageMaker 可以访问您的 VPC 内的资源并与之通信。

采用网络隔离

如果您采用网络隔离,SageMaker 容器将无法与 VPC 内的资源通信,也无法进行任何网络调用,如下图所示。如果您提供 VPC 配置,则将通过您的 VPC 运行下载和上传操作。有关使用 VPC 时通过网络隔离进行托管和训练的更多信息,请参阅网络隔离


                    使用 VPC 配置,SageMaker 可以访问您的 VPC 内的资源并与之通信。

您可以为 SageMaker 的 Amazon VPC 端点创建一个策略,在该策略中指定以下内容:

  • 可执行操作的委托人。

  • 可执行的操作。

  • 可对其执行操作的资源。

有关更多信息,请参阅《Amazon VPC 用户指南》中的使用 VPC 终端节点控制对服务的访问

注意

对于 runtime_InvokeEndpoint,VPC 端点策略不支持联邦信息处理标准 (FIPS) SageMaker 运行时端点。

以下示例 VPC 端点策略指定有权访问 VPC 接口端点的所有用户都可以调用名为 myEndpoint 的 SageMaker 托管端点。

{ "Statement": [ { "Action": "sagemaker:InvokeEndpoint", "Effect": "Allow", "Resource": "arn:aws:sagemaker:us-west-2:123456789012:endpoint/myEndpoint", "Principal": "*" } ] }

在本示例中,会拒绝以下操作:

  • 其他 SageMaker API 操作,例如 sagemaker:CreateEndpointsagemaker:CreateTrainingJob

  • 调用 myEndpoint 之外的 SageMaker 托管端点。

注意

在本例中,用户仍然可以从 VPC 外部调用其他 SageMaker API 操作。有关如何将 API 调用限制为该 VPC 中执行的那些调用的信息,请参阅 使用基于身份的策略控制对 SageMaker API 的访问

要为 Amazon SageMaker Feature Store 创建 VPC 端点,请使用以下端点模板,替换您的 VPC_Endpoint_ID.apiRegion

VPC_Endpoint_ID.api.featurestore-runtime.sagemaker.Region.vpce.amazonaws.com

要通过您的 VPC 调用 SageMaker API 和 SageMaker Runtime,您必须从位于 VPC 中的实例进行连接,或者使用 Amazon Virtual Private Network (Amazon VPN) 或 Amazon Direct Connect 将您的私有网络连接到 VPC。有关 Amazon VPN 的信息,请参阅《Amazon Virtual Private Cloud 用户指南》中的 VPN 连接。有关 Amazon Direct Connect 的信息,请参阅《Amazon Direct Connect 用户指南》中的创建连接