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

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

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

您可以通过 VPC 中的Amazon SageMaker接口终端节点Amazon Virtual Private CloudAmazon VPC () 连接到 Studio,而不是通过 Internet 连接。当您使用接口 VPC 终端节点(接口终端节点)时,您的 VPC 和 Studio 之间的通信完全在 AWS 网络内安全进行。

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

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

注意

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

在创建接口终端节点时,请指定 aws.sagemaker.Region.studio 作为服务名称。创建接口终端节点后,为终端节点启用私有 DNS。使用 SageMaker AWS CLIAPI、 或 控制台从 VPC 内连接到 SageMaker Studio 的任何人都将通过接口终端节点而不是公有 Internet 连接到 Studio。

Studio 在提供 Amazon SageMakerAmazon VPC 的所有 AWS 区域中支持接口终端节点。

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

  • 可执行操作的委托人

  • 可执行的操作

  • 可对其执行操作的资源

有关更多信息,请参阅使用 VPC 终端节点https://docs.amazonaws.cn/vpc/latest/userguide/vpc-endpoints-access.html控制对 服务的访问。

以下 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 外部的用户可以通过 Internet 连接到 SageMaker Studio,即使您在 VPC 中设置了接口终端节点也是如此。

要仅允许访问从 VPC 中建立的连接,请创建具有该效果的 AWS Identity and Access Management (IAM) 策略。将该策略添加到用于访问 Studio 的每个IAM用户、组或角色。以下示例演示如何创建此类策略。

重要

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

示例 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 条件键指定的接口终端节点建立的连接。例如,第一个接口终端节点可能允许通过 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" ] } } } ] }

此策略包括 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 日之前发布的 AWS 开发工具包版本,则必须在调用中指定终端节点 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

以下策略仅允许来自使用 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

如果您要通过接口终端节点访问 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" ] } } } ] }