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

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

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

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

SageMaker 笔记本实例支持由提供支持的亚马逊虚拟私有云 (Amazon VPC) 接口终端节点Amazon PrivateLink。每个 VPC 端点都由您的 VPC 子网中一个或多个使用私有 IP 地址的弹性网络接口代表。

注意

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

您可以使用 Amazon Web Services Management Console 或 Amazon Command Line Interface (Amazon CLI) 命令创建接口终端节点以连接到您的笔记本实例。有关说明,请参阅创建接口端点。确保为 VPC 中要连接到笔记本实例的所有子网创建接口终端节点。

创建接口端点时,请指定 aws.sagemaker.Region.notebook 作为服务名称。在创建 VPC 终端节点后,为您的 VPC 终端节点启用私有 DNS。任何使用 SageMaker API Amazon CLI、或控制台从 VPC 内连接到笔记本实例的人都通过 VPC 终端节点而不是公共互联网连接到笔记本实例。

SageMaker 在 Amazon VPC 和 Amazon VPC 可用的所有 Amazon Web Services 区域 地方,笔记本实例都支持 VPC 终端节点。SageMaker

要通过 VPC 连接到您的笔记本实例,您要么必须从 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 用户指南中的创建连接

您可以为 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 创建了接口终端节点。有关更多信息,请参阅 SageMaker 在您的 VPC 内连接。在第二个示例中,aws:SourceVpce 的值是笔记本实例的接口终端节点的 ID。另一个是 SageMaker API 的接口端点的 ID。

此处的策略示例包括 DescribeNotebookInstance,因为通常您将调用 DescribeNotebookInstance 以确保 NotebookInstanceStatus 在您尝试连接到其上之前处于 InService 状态。例如:

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 }
注意

生成的 presigned-notebook-instance-url (AuthorizedUrl) 可在互联网上的任何地方使用。

对于这两个调用,如果您没有为 VPC 终端节点启用私有 DNS 主机名,或者您使用的是 2018 年 8 月 13 日之前发布的 Amazon 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