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

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

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

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

SageMaker 筆記型電腦執行個體支援提供支援的 Amazon 虛擬私有雲端 (Amazon VPC) 界面端點。AWS PrivateLink每個 VPC 端點皆會由一個或多個在您的 VPC 子網路上具私有 IP 地址的彈性網路介面來表示。

注意

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

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

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

SageMaker 筆記型電腦執行個體在所有 Amazon VPC 和SageMaker均 AWS 區域 可使用的情況下都支援 VPC 端點。

若要透過 VPC 連線至筆記型電腦執行個體,您必須從 VPC 內的執行個體進行連線,或使用 AWS Virtual Private Network ()AWS VPN或將私人網路連線至 VPC。 AWS Direct Connect如需相關資訊 AWS VPN,請參閱 Amazon Virtual Private Cloud 使用者指南中的 VPN 連線。若要取得有關資訊 AWS Direct Connect,請參閱〈AWS 直 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 API 或筆記本執行個體。

若只要限制在您的 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 的介面端點。如需詳細資訊,請參閱 Connect 到您的 VPC SageMaker 內。在第二個範例中,aws:SourceVpce 的其中一個值,是筆記本執行個體的介面端點 ID。另一個是 SageMaker API 的介面端點的識別碼。

此處的政策範例包括 DescribeNotebookInstance,因為您一般會呼叫 DescribeNotebookInstance 先確保 NotebookInstanceStatusInService,再嘗試連線。例如:

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