通过接口 VPC 终端节点 Connect 到 SageMaker Studio - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

通过接口 VPC 终端节点 Connect 到 SageMaker Studio

您可以从Amazon Virtual Private Cloud(亚马逊 VPC)通过接口终端节点而不是通过互联网连接。当您使用接口 VPC 终端节点(接口终端节点)时,您的 VPC 与 Studio 之间的通信完全在Amazon网络。

SageMaker Studio 支持接口终端节点,而这些终端节点由Amazon PrivateLink. 每个接口终端节点均由一个或多个表示弹性网络接口使用您的 VPC 子网中的私有 IP 地址。

您可以创建接口终端节点以连接到 StudioAmazon控制台或Amazon Command Line Interface(Amazon CLI)。有关说明,请参阅创建接口终端节点. 确保为 VPC 中要连接到 Studio 的所有子网创建接口终端节点。

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

注意

除了创建连接到 SageMaker Studio 的接口终端节点以外,还可以创建接口终端节点以连接到 Amazon SageMaker API。当用户调用CreatePresignedDomainUrl获取用于连接到 Studio 的 URL,则该调用会通过用于连接到 SageMaker API 的接口终端节点。

创建接口终端节点时,请指定aws.sagemaker.Region.studio作为服务名称。在创建接口终端节点后,为终端节点启用私有 DNS。任何使用 SageMaker API、Amazon CLI,或者控制台从 VPC 中连接到 SageMaker Studio 的 SageMaker Studio 通过接口终端节点而非公有 Internet 连接到 Studio。您还需要为亚马逊 VPC 终端节点设置带有私有托管区域的自定义 DNS,以便 SageMaker Studio 可以使用api.sagemaker.$region.amazonaws.com终端节点,而不是使用 VPC 终端节点 URL。有关设置私有托管区域的说明,请参阅使用私有托管区域.

Studio 支持所有Amazon两个区域Amazon SageMakerAmazon VPC可用。

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

  • 可执行操作的委托人。

  • 可执行的操作。

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

要将 VPC 终端节点与 SageMaker Studio 结合使用,您的终端节点策略必须允许CreateApp操作的内核网关应用程序类型。这允许通过 VPC 终端节点路由到的流量调用CreateAppAPI。以下示例 VPC 终端节点策略介绍了如何在CreateAppoperation.

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

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

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

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

即使您在 VPC 中设置了接口终端节点,您的 VPC 之外的用户仍可以通过 Internet 访问 SageMaker Studio。

要仅允许从您 VPC 中进行的连接,请创建Amazon Identity and Access Management(IAM) 策略来实现这一目的。将该策略添加到用于访问 Studio 的每个 IAM 用户、组或角色。此功能仅在 IAM 模式下受支持,在 SSO 模式下不支持。以下示例说明如何创建此类策略。

重要

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

示例 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 Studio 控制面板进行访问。第二个接口端点可以允许通过 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" ] } } } ] }

此策略包含DescribeUserProfileaction. 通常,您可以调用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" }

对于这两个调用,如果您使用的是Amazon2018 年 8 月 13 日之前发布的 SDK,您必须在调用中指定终端节点 URL。例如,以下示例显示了对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:允许使用 IP 地址进行连接aws:SourceIp

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

{ "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:允许从 IP 地址通过接口端点进行连接,使用aws:VpcSourceIp

如果您通过接口端点访问 SageMaker Studio,则可以使用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" } } } ] }