透過VPC介面端點連線至筆記本執行個體 - Amazon SageMaker

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

透過VPC介面端點連線至筆記本執行個體

您可以透過虛擬私有雲端 (VPC) VPC 中的介面端點從 連線到筆記本執行個體,而不是透過公有網際網路連線。當您使用VPC介面端點時,您的 VPC和筆記本執行個體之間的通訊會在網路內 AWS 完全且安全地執行。

SageMaker 筆記本執行個體支援由 支援的 Amazon Virtual Private Cloud (Amazon VPC) 介面端點AWS PrivateLink。每個VPC端點都由一個或多個彈性網路介面表示,VPC子網路中具有私有 IP 地址。

注意

在建立介面VPC端點以連線至筆記本執行個體之前,請先建立介面VPC端點以連線至 SageMaker API。如此一來,當使用者呼叫 
CreatePresignedNotebookInstanceUrl URL讓 連線到筆記本執行個體,該呼叫也會經過介面VPC端點。如需相關資訊,請參閱 連線至 SageMaker 內部 VPC

您可以使用 AWS Management Console 或 AWS Command Line Interface (AWS CLI) 命令建立介面端點以連線至筆記本執行個體。如需指示,請參閱建立介面端點。請確定您要VPC從中連線到筆記本執行個體的所有子網路建立介面端點。

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

SageMaker 筆記本執行個體支援 Amazon VPCSageMaker 可用 AWS 區域 的所有VPC端點。

若要透過 連線至筆記本執行個體VPC,您必須從 內部的執行個體連線VPC,或使用 VPC AWS Virtual Private Network (AWS VPN) 或 將私有網路連線至您的 AWS Direct Connect。如需 的相關資訊 AWS VPN,請參閱 Amazon Virtual Private Cloud 使用者指南 中的VPN連線。如需 的相關資訊 AWS Direct Connect,請參閱 AWS Direct 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,請建立 AWS Identity and Access Management 政策,限制僅存取來自 內 的呼叫VPC。然後將該政策新增至用於存取筆記本執行個體的每個 AWS 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。另一個是 的介面端點 ID SageMaker API。

這裡的政策範例包括 
 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-urlAuthorizedUrl 可以從網際網路上的任何位置使用。

對於這兩個呼叫,如果您未啟用VPC端點的私有DNS主機名稱,或者您使用 2018 年 8 月 13 日之前發行的 AWS 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