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

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

SageMaker 在您的 VPC 内连接

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

SageMaker 通过 VPC 接口终端节点连接到

SageMaker API 和 SageMaker 运行时支持由提供支持的亚马逊虚拟私有云(亚马逊 VPC)接口终端节点Amazon PrivateLink。每个 VPC 端点都由您的 VPC 子网中一个或多个使用私有 IP 地址的弹性网络接口代表。例如,您的 VPC 内部的应用程序用于 Amazon PrivateLink 与 SageMaker Runtime 通信。 SageMaker反过来,运行时会与 SageMaker 端点通信。使用 Amazon PrivateLink 允许您从 VPC 内调用 SageMaker 终端节点,如下图所示。

VPC 用于 Amazon PrivateLink 与 SageMaker 终端节点通信。

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

您可以使用或 Amazon Command Line Interface (Amazon CLI) 创建 Amazon PrivateLink 接口端点来连接 SageMaker 或连接到 SageMaker Runtime。 Amazon Web Services Management Console 有关说明,请参阅使用接口 VPC 终端节点访问 Amazon 服务

如果您尚未为 VPC 终端节点启用私有域名系统 (DNS) 主机名,请在创建 VPC 终端节点后,指定 SageMaker API 或 SageMaker 运行时的互联网终端节点 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 https://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 运行时 DNS 主机名 (https://runtime.sagemaker。 区域 .amazonaws.com) 也会解析到您的 VPC 终端节点。

SageMaker API 和 SageMaker 运行时在 Amazon VPC 和可用SageMaker区域的所有 Amazon Web Services 区域 地方都支持 VPC 终端节点。 SageMaker 支持呼叫您的 VPC Operations内的所有设备。如果你使用来AuthorizedUrlCreatePresignedNotebookInstanceUrl命令,你的流量将通过公共互联网。您不仅可以使用 VPC 终端节点访问预签名 URL,而且请求必须通过互联网网关。

默认情况下,您的用户可以将预签名 URL 共享给公司网络以外的用户。为了提高安全性,您必须添加 IAM 权限以限制 URL 只能在您的网络中使用。有关 IAM 权限的信息,请参阅如何 Amazon PrivateLink 使用 IAM

注意

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

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

在您的 VPC 内使用 SageMaker 培训和托管资源

SageMaker 使用您的执行角色从 Amazon S3 存储桶和亚马逊弹性容器注册表 (Amazon ECR) Container Registry 下载和上传信息,与您的训练或推理容器隔离开来。如果您的资源位于您的 VPC 内,您仍然可以授予对这些资源的 SageMaker 访问权限。以下各节说明了无论是否 SageMaker 采用网络隔离,如何使您的资源可供使用。

未启用网络隔离

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

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

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

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

采用网络隔离

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

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

您可以为的 Amazon VPC 终端节点创建策略 SageMaker 以指定以下内容:

  • 可执行操作的主体。

  • 可执行的操作。

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

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

注意

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

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

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

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

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

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

注意

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

要为亚马逊 SageMaker 功能商店创建 VPC 终端节点,请使用以下终端节点模板,替换您的 vpc_endpoint_ id.API 和区域:

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

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