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

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

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

您可以VPC通过虚拟私有云 (VPC) 中的接口终端节点从您的笔记本实例进行连接,而不必通过公共互联网进行连接。当您使用VPC接口终端节点时,您VPC和笔记本实例之间的通信将在 Amazon 网络中完全安全地进行。

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

注意

在创建用于连接笔记本实例的接口VPC终端节点之前,请创建要连接的接口VPC终端节点 SageMaker API。这样,当用户打电话时 
CreatePresignedNotebookInstanceUrl为了让URL连接到笔记本实例,该调用还需要通过接口VPC端点。有关信息,请参阅Connect t SageMaker o Inside VPC

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

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

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

要通过您的笔记本实例连接VPC,您要么必须从内部的实例进行连接,要么使用 Amazon Virtual Private Network (Amazon VPN) 或VPC,将您的私有网络连接到您的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也可以通过互联网连接到笔记本实例。

重要

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

要将访问权限限制为仅限从您的内部建立的连接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。有关更多信息,请参阅 Connect t SageMaker o Inside VPC。在第二个示例中,aws:SourceVpce 的值是笔记本实例的接口终端节点的 ID。另一个是的接口端点的 ID SageMaker API。

此处的策略示例包括 
 DescribeNotebookInstance,因为通常你会在尝试连接InService之前致电DescribeNotebookInstance确保NotebookInstanceStatus是。例如:

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 日之前发布的版本,则必须在调用URL中指定终端节点。 Amazon SDK例如,对 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