

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

# 通过 VPC 接口终端节点连接到笔记本实例
<a name="notebook-interface-endpoint"></a>

您可通过 Virtual Private Cloud (VPC) 中的[接口端点](https://docs.amazonaws.cn/vpc/latest/privatelink/create-interface-endpoint.html)，从 VPC 连接到笔记本实例，而不是通过公共互联网进行连接。当您使用 VPC 接口端点时，您的 VPC 与笔记本实例之间的通信完全在 Amazon 网络内安全进行。

SageMaker 笔记本实例支持由提供支持的[亚马逊虚拟私有云](https://docs.amazonaws.cn/AmazonVPC/latest/UserGuide/VPC_Introduction.html) (Amazon VPC) 接口终端节点[Amazon PrivateLink](https://docs.amazonaws.cn/AmazonVPC/latest/UserGuide/VPC_Introduction.html#what-is-privatelink)。每个 VPC 端点都由您的 VPC 子网中一个或多个使用私有 IP 地址的[弹性网络接口](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-eni.html)代表。

**注意**  
在创建用于连接笔记本实例的接口 VPC 终端节点之前，请创建用于连接该 SageMaker API 的接口 VPC 终端节点。这样，当用户调用 [https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) 以获取 URL 来连接到笔记本实例时，该调用还会通过接口 VPC 端点。有关信息，请参阅[在您的 VPC 中连接到 SageMaker AI](interface-vpc-endpoint.md)。

您可以使用 Amazon Web Services 管理控制台 或 Amazon Command Line Interface (Amazon CLI) 命令创建接口终端节点以连接到您的笔记本实例。有关说明，请参阅[创建接口端点](https://docs.amazonaws.cn/AmazonVPC/latest/UserGuide/vpce-interface.html#create-interface-endpoint)。确保为 VPC 中要连接到笔记本实例的所有子网创建接口终端节点。

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

SageMaker 在所有 [Amazon VPC 和 A [SageMaker I](https://docs.amazonaws.cn/general/latest/gr/rande.html#sagemaker_region) 都可用 Amazon Web Services 区域 的地方，笔记本实例都支持 VPC](https://docs.amazonaws.cn/general/latest/gr/rande.html#vpc_region) 终端节点。

**Topics**
+ [

## 将您的专用网络连接到 VPC
](#notebook-private-link-vpn-nbi)
+ [

## 为 SageMaker AI 笔记本实例创建 VPC 终端节点策略
](#nbi-private-link-policy)
+ [

## 将访问限制为来自您 VPC 中的连接
](#notebook-private-link-restrict)

## 将您的专用网络连接到 VPC
<a name="notebook-private-link-vpn-nbi"></a>

要通过 VPC 连接到您的笔记本实例，您要么必须从 VPC 内的实例进行连接，要么使用 Amazon Virtual Private Network (Amazon VPN) 或将您的私有网络连接到 VPC Amazon Direct Connect。有关信息 Amazon VPN，请参阅《*Amazon Virtual Private Cloud 用户指南》*[中的 VPN 连接](https://docs.amazonaws.cn/vpc/latest/userguide/vpn-connections.html)。有关信息 Amazon Direct Connect，请参阅 D [i Amazon rect Connect 用户指南中的创建](https://docs.amazonaws.cn/directconnect/latest/UserGuide/create-connection.html)*连接*。

## 为 SageMaker AI 笔记本实例创建 VPC 终端节点策略
<a name="nbi-private-link-policy"></a>

您可以为 SageMaker 笔记本实例的 Amazon VPC 终端节点创建策略，以指定以下内容：
+ 可执行操作的主体。
+ 可执行的操作。
+ 可对其执行操作的资源。

有关更多信息，请参阅**《Amazon VPC 用户指南》中的[使用 VPC 端点控制对服务的访问权限](https://docs.amazonaws.cn/vpc/latest/userguide/vpc-endpoints-access.html)。

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

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

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

## 将访问限制为来自您 VPC 中的连接
<a name="notebook-private-link-restrict"></a>

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

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

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

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

------
#### [ JSON ]

****  

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

------

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

------
#### [ JSON ]

****  

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

------

这两个策略示例都假设您还为 SageMaker API 创建了接口终端节点。有关更多信息，请参阅 [在您的 VPC 中连接到 SageMaker AI](interface-vpc-endpoint.md)。在第二个示例中，`aws:SourceVpce` 的值是笔记本实例的接口终端节点的 ID。另一个是 SageMaker API 的接口端点的 ID。

此处的策略示例包括 [https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_DescribeNotebookInstance.html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_DescribeNotebookInstance.html)，因为通常您将调用 `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
```