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

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

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

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

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

您可以创建接口终端节点以连接到 Studio,使用Amazon控制台或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,或者要连接到的控制台 SageMaker VPC 内的 Studio 通过接口终端节点而不是公共互联网连接到 Studio。您还需要为 Amazon VPC 终端节点设置带有私有托管区域的自定义 DNS,因此 SageMaker 工作室可以访问 SageMaker 使用 APIapi.sagemaker.$region.amazonaws.com终端节点而不是使用 VPC 终端节点 URL。有关设置私有托管区域的说明,请参阅。使用私有托管区域.

Studio 总的来说支持接口端点Amazon两者的区域Amazon SageMakerAmazon VPC都可用。

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

  • 可执行操作的委托人。

  • 可执行的操作。

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

将 VPC 终端节点与 SageMaker Studio,您的终端节点策略必须允许CreateApp在上操作 KernelGateway 应用程序类型。这允许通过 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 终端节点策略示例指定有权访问该终端节点的所有用户都可以访问 SageMaker 具有指定域 ID 的 Studio 域名。访问其他域名时会被拒绝。

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

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

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

重要

如果您应用类似于以下示例之一的 IAM 策略,则用户无法访问 SageMaker 工作室或指定 SageMaker 通过 API 通过 SageMaker 控制台。要访问 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" }

对于这两个呼叫,如果你使用的是Amazon在 2018 年 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" } } } ] }