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

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

您可以通过 Amazon Virtual Private Cloud (Amazon VPC) 中的接口端点,从 VPC 连接到 Amazon SageMaker Studio,而不是通过互联网进行连接。当您使用接口 VPC 端点(接口端点)时,VPC 与 Studio 之间的通信完全在 Amazon 网络内安全进行。

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

Studio 支持 Amazon SageMakerAmazon VPC 均可用的所有 Amazon 区域中的接口端点。

创建 VPC 终端节点

您可以通过 Amazon 控制台或 Amazon Command Line Interface (Amazon CLI) 创建接口端点来连接到 Studio。有关说明,请参阅创建接口端点。确保为 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 时,您将通过接口端点而不是公共互联网进行连接。您还需要为 Amazon VPC 端点设置带有私有托管区的自定义 DNS,这样 SageMaker Studio 就可以使用 api.sagemaker.$region.amazonaws.com 端点而不是使用 VPC 端点 URL 来访问 SageMaker API。有关设置私有托管区的说明,请参阅使用私有托管区

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

  • 可执行操作的委托人。

  • 可执行的操作。

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

要在 SageMaker Studio 中使用 VPC 端点,您的端点策略必须允许对 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 Studio 域中的用户配置文件。对其他域的访问将被拒绝。

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

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

要仅允许访问从您的 VPC 内部建立的连接,请为此创建一个 Amazon Identity and Access Management (IAM) 策略。将该策略添加到用于访问 Studio 的每个用户、组或角色。此特征仅在 IAM 模式下受支持,在 IAM Identity Center 模式下不受支持。以下示例演示了如何创建此类策略。

重要

如果您应用类似于以下示例之一的 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" ] } } } ] }

此策略包括 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 日之前发布的 Amazon 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:允许使用 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 地址进行连接

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