

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 透過 VPC 介面端點連線至筆記本執行個體
<a name="notebook-interface-endpoint"></a>

您可以透過虛擬私有雲端 (VPC) 的[介面端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)從您的 VPC 連線到您的筆記本執行個體，不是透過公共網際網路連線。使用 VPC 介面端點時，您的 VPC 和筆記本執行個體之間的通訊會在整個 AWS 網路中安全執行。

SageMaker 筆記本執行個體支援[ Amazon Virtual Private Cloud](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html) (Amazon VPC) 介面端點，其採用 [AWS PrivateLink](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html#what-is-privatelink)。每個 VPC 端點皆會由一個或多個在您的 VPC 子網路上具私有 IP 地址的[彈性網路介面](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)來表示。

**注意**  
請先建立介面 VPC 端點連線至 SageMaker API，再建立介面 VPC 端點連線到筆記本執行個體。如此一來，當使用者呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) 以獲得 URL 連線到筆記本執行個體時，該呼叫也會通過介面 VPC 端點。如需相關資訊，請參閱[在您的 VPC 中連線到 SageMaker AI](interface-vpc-endpoint.md)。

您可以建立介面端點，以使用 AWS 管理主控台 或 AWS Command Line Interface (AWS CLI) 命令連線到筆記本執行個體。如需指示，請參閱[建立介面端點](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-interface.html#create-interface-endpoint)。請務必為要從中連接到筆記本執行個體之您的 VPC 中的所有子網路，建立介面端點。

當您建立介面端點時，請指定 **aws.sagemaker.*Region*.notebook** 為服務名稱。在您建立 VPC 端點後，請對您的 VPC 端點啟用私有 DNS。使用 SageMaker API、 AWS CLI或 主控台從 VPC 內連線至筆記本執行個體的任何人，都會透過 VPC 端點而非公有網際網路連線至筆記本執行個體。

SageMaker 筆記本執行個體在同時提供 Amazon VPC 和 [SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/rande.html#sagemaker_region) 的所有 AWS 區域 中都支援 VPC 端點。 [https://docs.aws.amazon.com/general/latest/gr/rande.html#vpc_region](https://docs.aws.amazon.com/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 內的執行個體連線，或使用 AWS Virtual Private Network (Site-to-Site VPN) 或 將私有網路連線至 VPC Direct Connect。如需 的詳細資訊 Site-to-Site VPN，請參閱《*Amazon Virtual Private Cloud 使用者指南》中的* [VPN 連線](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)。如需 的詳細資訊 AWS Direct Connect，請參閱 *AWS Direct Connect 使用者指南*中的[建立連線](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html)。

## 為 SageMaker AI 筆記本執行個體建立 VPC 端點政策
<a name="nbi-private-link-policy"></a>

您可以為 SageMaker 筆記本執行個體的 Amazon VPC 端點建立政策，以指定下列各項：
+ 可執行動作的主體。
+ 可執行的動作。
+ 可供執行動作的資源。

如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的[使用 VPC 端點控制服務的存取](https://docs.aws.amazon.com/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 外的個人也可以透過網際網路連線到筆記本執行個體。

**重要**  
如果您套用類似下列其中之一的 IAM 政策，使用者即無法透過主控台存取指定的 SageMaker API 或筆記本執行個體。

若只要限制在您的 VPC 內建立的連線存取，請建立 AWS Identity and Access Management 政策，只限制來自您的 VPC 內呼叫的存取。然後將該政策新增至用於存取筆記本執行個體的每個 AWS 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.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeNotebookInstance.html](https://docs.aws.amazon.com/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 日之前發行的 AWS 開發套件版本，您必須在呼叫中指定端點 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
```