通过 VPC 接口终端节点连接到笔记本实例 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

通过 VPC 接口终端节点连接到笔记本实例

您可以从 VPC 连接到笔记本实例,通过接口终端节点在您的 Virtual Private Cloud (VPC) 中,而不是通过公共互联网进行连接。当您使用 VPC 接口终端节点时,您的 VPC 与笔记本实例之间的通信完全在Amazon网络。

SageMaker 笔记本实例支持Amazon Virtual Private Cloud(Amazon VPC) 接口终端节点,而这些终端节点由提供支持AmazonPrivateLink. 每个 VPC 终端节点均由一个或多个弹性网络接口使用您的 VPC 子网中的私有 IP 地址。

注意

在创建连接到笔记本实例的接口 VPC 终端节点之前,请创建接口 VPC 终端节点以连接到 SageMaker API 的接口 VPC 终端节点。这样,在用户调用 CreatePresignedNotebookInstanceUrl 以获取 URL 来连接到笔记本实例时,该调用还会通过接口 VPC 终端节点。有关信息,请参阅 通过 VPC 接口终端节点 Connect 到 SageMaker

您可以通过创建接口终端节点来连接到笔记本实例。Amazon控制台或Amazon Command Line Interface(Amazon CLI) 命令。有关说明,请参阅创建接口终端节点。确保为 VPC 中要连接到笔记本实例的所有子网创建接口终端节点。

在您创建接口终端节点时,请指定 aws.sagemaker.region.notebook 作为服务名。在创建 VPC 终端节点后,为您的 VPC 终端节点启用私有 DNS。任何使用 SageMaker API、Amazon CLI,或者用于从 VPC 中连接到笔记本实例的控制台通过 VPC 终端节点而非公有 Internet 连接到笔记本实例。

SageMaker 笔记 VPC 实例在所有Amazon两个区域Amazon VPCSageMaker可用。

要通过 VPC 连接到笔记本实例,您必须从位于 VPC 中的实例进行连接,或者使用Amazon Virtual Private Network(Amazon VPN)或Amazon Direct Connect. 有关的信息Amazon VPN,请参阅VPN 连接中的Amazon Virtual Private Cloud 用户指南. 有关的信息Amazon Direct Connect,请参阅创建连接中的AmazonDirect Connect 用户指南.

您可以为 SageMaker 笔记本实例的 Amazon VPC 终端节点创建一个策略,在该策略中指定以下内容:

  • 可执行操作的委托人。

  • 可执行的操作。

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

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

以下 VPC 终端节点策略示例指定,所有有权访问该终端节点的用户都可以访问名为 myNotebookInstance 的笔记本实例。

{ "Statement": [ { "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Effect": "Allow", "Resource": "arn:aws:sagemaker:us-west-2:123456789012:notebook-instance/myNotebookInstance", "Principal": "*" } ] }

访问其他笔记本实例时会被拒绝。

即使您在 VPC 中设置了接口终端节点,在 VPC 之外的用户仍可以通过 Internet 访问笔记本实例。

重要

如果您应用类似于以下内容之一的 IAM 策略,则用户无法通过控制台访问指定的 SageMaker API 或笔记本实例。

要将访问限制为仅限从您 VPC 中进行的连接,请创建 Amazon Identity and Access Management 策略,将访问限制为仅允许来自您 VPC 中调用。然后,将该策略添加到用于访问笔记本实例的每个 Amazon Identity and Access Management 用户、组或角色。

注意

此策略只允许连接到创建接口终端节点的子网中的调用方。

{ "Id": "notebook-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable Notebook Access", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }

如果您想要将对笔记本实例的访问限制为仅允许使用接口终端节点进行的连接,请使用 aws:SourceVpce 条件键而不是 aws:SourceVpc

{ "Id": "notebook-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable Notebook Access", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:sourceVpce": [ "vpce-111bbccc", "vpce-111bbddd" ] } } } ] }

这些策略示例均假定您已为 SageMaker API 创建终端节点。有关更多信息,请参阅通过 VPC 接口终端节点 Connect 到 SageMaker。在第二个示例中,aws:SourceVpce 的值是笔记本实例的接口终端节点的 ID。另一个是 SageMaker API 的接口终端节点的 ID。

这里的策略示例包括DescribeNotebookInstance,因为通常你会调用DescribeNotebookInstance以确保NotebookInstanceStatusInService然后再尝试连接到它。例如:

aws sagemaker describe-notebook-instance \ --notebook-instance-name myNotebookInstance { "NotebookInstanceArn": "arn:aws:sagemaker:us-west-2:1234567890ab:notebook-instance/mynotebookinstance", "NotebookInstanceName": "myNotebookInstance", "NotebookInstanceStatus": "InService", "Url": "mynotebookinstance.notebook.us-west-2.sagemaker.aws", "InstanceType": "ml.m4.xlarge", "RoleArn": "arn:aws:iam::1234567890ab:role/service-role/AmazonSageMaker-ExecutionRole-12345678T123456", "LastModifiedTime": 1540334777.501, "CreationTime": 1523050674.078, "DirectInternetAccess": "Disabled" } aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name myNotebookInstance { "AuthorizedUrl": "https://mynotebookinstance.notebook.us-west-2.sagemaker.aws?authToken=AuthToken }

对于这些调用,如果您没有为 VPC 终端节点启用专用 DNS 主机名,或者您使用Amazon2018 年 8 月 13 日之前发布的 SDK,您必须在调用中指定终端节点 URL。例如,对create-presigned-notebook-instance-url是:

aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name myNotebookInstance --endpoint-url VPC_Endpoint_ID.api.sagemaker.Region.vpce.amazonaws.com