通过接口VPC终端节点连接至亚马逊 SageMaker Studio 和 Studio Classic - Amazon SageMaker

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

通过接口VPC终端节点连接至亚马逊 SageMaker Studio 和 Studio Classic

您可以通过自己的接口终端节点从您的亚马逊 SageMaker 虚拟私有云(亚马逊VPC)连接到您的亚马逊 SageMaker Studio 和 Amazon Studio Classic,VPC而不必通过互联网进行连接。当您使用接口VPC终端节点(接口终端节点)时,您VPC与 Studio 或 Studio Classic 之间的通信将在 AWS 网络内完全安全地进行。

Studio 和 Studio Classic 支持由提供支持的接口端点AWS PrivateLink。每个接口端点都由一个或多个弹性网络接口表示,您的VPC子网中有私有 IP 地址。

Studio 和 Studio Classic 支持同时提供亚马逊 SageMaker和亚马逊VPC的所有 AWS 地区的接口终端节点。

创建 VPC 终端节点

您可以创建接口终端节点,使用 AWS 控制台或 AWS Command Line Interface (AWS CLI) 连接到 Studio 或 Studio Classic。有关说明,请参阅创建接口端点。请务必为要连接到 Studio 和 Studio Classic 的所有子网创建接口终端节点。VPC

创建接口终端节点时,请确保终端节点上的安全组允许来自与 Studio 和 Studio Classic 关联的安全组的HTTPS流量进行入站访问。有关更多信息,请参阅使用VPC终端节点控制对服务的访问权限

注意

除了创建连接到 Studio 和 Studio Classic 的接口终端节点外,还要创建用于连接亚马逊的接口终端节点 SageMaker API。当用户致电CreatePresignedDomainUrl以连接URL到 Studio 和 Studio Classic 时,该呼叫将通过用于连接的接口端点 SageMaker API。

创建接口终端节点时,请指定aws.sagemaker.Region.studio为 Studio 或 Studio Classic 的服务名称。创建接口终端节点后,DNS为您的终端节点启用私有功能。当您VPC使用 SageMaker API、或控制台从内部连接 Studio 或 Studio Classic 时,您将通过接口端点而不是公共互联网进行连接。 AWS CLI您还需要为亚马逊VPC终端节点设置一个DNS带有私有托管区域的自定义,这样 Studio 或 Studio Classic 就可以使用api.sagemaker.$region.amazonaws.com终端节点而不是 SageMaker API使用终端节点访问该VPC终端节点URL。有关设置私有托管区的说明,请参阅使用私有托管区

您可以将亚马逊VPC终端节点策略附加到用于连接 Studio 或 Studio Classic 的接口VPC终端节点。端点策略控制对 Studio 或 Studio 经典版的访问权限。您可以指定:

  • 可执行操作的主体。

  • 可执行的操作。

  • 可对其执行操作的资源。

要在 VPC Studio 或 Studio Classic 中使用终端节点,您的终端节点策略必须允许对 KernelGateway 应用程序类型进行CreateApp操作。这允许通过VPC终端节点路由到的流量调用。CreateApp API以下VPC端点策略示例显示了如何允许该CreateApp操作。

{ "Statement": [ { "Action": "sagemaker:CreateApp", "Effect": "Allow", "Resource": "arn:aws:sagemaker:us-west-2:acct-id:app/domain-id/*", "Principal": "*" } ] }

有关更多信息,请参阅使用VPC终端节点控制对服务的访问

以下VPC端点策略示例指定所有有权访问该终端节点的用户都可以使用指定的域 ID 访问 SageMaker 域中的用户配置文件。对其他域的访问将被拒绝。

{ "Statement": [ { "Action": "sagemaker:CreatePresignedDomainUrl", "Effect": "Allow", "Resource": "arn:aws:sagemaker:us-west-2:acct-id:user-profile/domain-id/*", "Principal": "*" } ] }

即使您在中设置了接口端点,您以外的用户VPC也可以通过互联网连接到 Studio 或 Studio Classic VPC。

要仅允许访问从您的内部建立的连接VPC,请为此创建一个 AWS Identity and Access Management (IAM) 策略。将该策略添加到用于访问 Studio 或 Studio Classic 的每个用户、群组或角色。只有在使用IAM模式进行身份验证时才支持此功能,而在 Ident IAM ity Center 模式下不支持此功能。以下示例演示了如何创建此类策略。

重要

如果您应用类似于以下示例之一的IAM策略,则用户将无法访问 Studio 或 Studio Classic 或 SageMaker APIs通过 SageMaker控制台指定的内容。要访问 Studio 或 Studio Classic,用户必须使用预签名URL或 SageMaker APIs直接致电。

示例 1:只允许接口端点子网内的连接

以下策略只允许连接到创建接口端点的子网中的调用方。

{ "Id": "sagemaker-studio-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable SageMaker Studio Access", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeUserProfile" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }

示例 2:只允许通过使用 aws:sourceVpce 的接口端点进行连接

以下策略只允许通过 aws:sourceVpce 条件键指定的接口端点进行连接。例如,第一个接口端点可能允许通过 SageMaker 控制台进行访问。第二个接口端点可能允许通过进行访问 SageMaker API。

{ "Id": "sagemaker-studio-example-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable SageMaker Studio Access", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeUserProfile" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:sourceVpce": [ "vpce-111bbccc", "vpce-111bbddd" ] } } } ] }

此策略包括 DescribeUserProfile 操作。通常,在尝试连接到域之前,您会调用 DescribeUserProfile 以确保用户配置文件的状态为 InService。例如:

aws sagemaker describe-user-profile \ --domain-id domain-id \ --user-profile-name profile-name

响应:

{ "DomainId": "domain-id", "UserProfileArn": "arn:aws:sagemaker:us-west-2:acct-id:user-profile/domain-id/profile-name", "UserProfileName": "profile-name", "HomeEfsFileSystemUid": "200001", "Status": "InService", "LastModifiedTime": 1605418785.555, "CreationTime": 1605418477.297 }
aws sagemaker create-presigned-domain-url --domain-id domain-id \ --user-profile-name profile-name

响应:

{ "AuthorizedUrl": "https://domain-id.studio.us-west-2.sagemaker.aws/auth?token=AuthToken" }

对于这两个调用,如果您使用的是在 2018 年 8 月 13 日之前发布的版本,则必须在调用URL中指定终端节点。 AWS SDK例如,以下示例显示了对 create-presigned-domain-url 的调用:

aws sagemaker create-presigned-domain-url --domain-id domain-id \ --user-profile-name profile-name \ --endpoint-url vpc-endpoint-id.api.sagemaker.Region.vpce.amazonaws.com

示例 3:允许使用 aws:SourceIp 从 IP 地址进行连接

以下策略只允许使用 aws:SourceIp 条件键从指定范围的 IP 地址进行连接。

{ "Id": "sagemaker-studio-example-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable SageMaker Studio Access", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeUserProfile" ], "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

示例 4:允许使用 aws:VpcSourceIp 通过接口端点从 IP 地址进行连接

如果您通过接口终端节点访问 Studio 或 Studio Classic,则可以使用aws:VpcSourceIp条件键仅允许来自创建接口终端节点的子网中指定 IP 地址范围的连接,如以下策略所示:

{ "Id": "sagemaker-studio-example-4", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable SageMaker Studio Access", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeUserProfile" ], "Resource": "*", "Condition": { "IpAddress": { "aws:VpcSourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] }, "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }