通过接口 VPC 端点连接到 Amazon SageMaker Studio 和 Studio Classic
您可以通过 VPC 中的接口端点从 Amazon Virtual Private Cloud (Amazon VPC) 连接到 Amazon SageMaker Studio 和 Amazon SageMaker Studio Classic,而无需通过互联网连接。使用接口 VPC 端点(接口端点)时,VPC 与 Studio 或 Studio Classic 之间的通信完全在 Amazon 网络内安全进行。
Studio 和 Studio Classic 支持由 Amazon PrivateLink 支持的接口端点。每个接口端点都由您的 VPC 子网中一个或多个使用私有 IP 地址的弹性网络接口代表。
Studio 和 Studio Classic 支持所有提供 Amazon SageMaker AI
创建 VPC 终端节点
您可以创建一个接口端点,通过 Amazon 管理控制台或 Amazon Command Line Interface (Amazon CLI) 连接到 Studio 或 Studio Classic。有关说明,请参阅创建接口端点。确保为 VPC 中要连接到 Studio 和 Studio Classic 的所有子网创建接口端点。
创建接口端点时,确保端点上的安全组允许从与 Studio 和 Studio Classic 相关联的安全组对 HTTPS 流量进行入站访问。有关更多信息,请参阅使用 VPC 端点控制对服务的访问。
注意
除了创建连接 Studio 和 Studio Classic 的接口端点外,还要创建连接 Amazon SageMaker API 的接口端点。当用户调用 CreatePresignedDomainUrl 获得连接 Studio 和 Studio Classic 的 URL 时,该调用将通过用于连接 SageMaker API 的接口端点进行。
创建接口端点时,请指定 aws.sagemaker. 作为 Studio 或 Studio Classic 的服务名称。创建接口端点后,请为端点启用私有 DNS。在 VPC 中使用 SageMaker API、Amazon CLI 或管理控制台连接 Studio 或 Studio Classic 时,您将通过接口端点而不是公共互联网进行连接。您还需要为 Amazon VPC 端点设置带有私有托管区域的自定义 DNS,这样 Studio 或 Studio Classic 就可以使用 Region.studioapi.sagemaker.$region.amazonaws.com 端点而不是 VPC 端点 URL 访问 SageMaker API。有关设置私有托管区的说明,请参阅使用私有托管区。
为 Studio 或 Studio Classic 创建 VPC 端点策略
您可以将 Amazon VPC 端点策略附加到用于连接 Studio 或 Studio Classic 的接口 VPC 端点。端点策略控制对 Studio 或 Studio Classic 的访问。您可以指定:
-
可执行操作的主体。
-
可执行的操作。
-
可对其执行操作的资源。
要在 Studio 或 Studio Classic 中使用 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 AI 域中的用户配置文件。对其他域的访问将被拒绝。
{ "Statement": [ { "Action": "sagemaker:CreatePresignedDomainUrl", "Effect": "Allow", "Resource": "arn:aws:sagemaker:us-west-2:acct-id:user-profile/domain-id/*", "Principal": "*" } ] }
仅允许从您的 VPC 内部进行访问
即使在 VPC 中设置了接口端点,VPC 外部的用户也可以通过互联网连接到 Studio 或 Studio Classic。
要仅允许访问从您的 VPC 内部建立的连接,请为此创建一个 Amazon Identity and Access Management (IAM) 策略。将该策略添加到用于访问 Studio 或 Studio Classic 的每个用户、组或角色。只有在使用 IAM 模式进行身份验证时才支持该功能,在 IAM Identity Center 模式下不支持该功能。以下示例演示了如何创建此类策略。
重要
如果应用了与以下示例类似的 IAM 策略,用户就不能通过 SageMaker AI 控制台访问 Studio、Studio Classic 或指定的 SageMaker API。要访问 Studio 或 Studio Classic,用户必须使用预先指定的 URL 或直接调用 SageMaker API。
示例 1:只允许接口端点子网内的连接
以下策略只允许连接到创建接口端点的子网中的调用方。
示例 2:只允许通过使用 aws:sourceVpce 的接口端点进行连接
以下策略只允许通过 aws:sourceVpce 条件键指定的接口端点进行连接。例如,第一个接口端点可以允许通过 SageMaker AI 控制台进行访问。第二个接口端点可能允许通过 SageMaker API 进行访问。
此策略包括 DescribeUserProfile 操作。通常,在尝试连接到域之前,您会调用 DescribeUserProfile 以确保用户配置文件的状态为 InService。例如:
aws sagemaker describe-user-profile \ --domain-iddomain-id\ --user-profile-nameprofile-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-iddomain-id\ --user-profile-nameprofile-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-iddomain-id\ --user-profile-nameprofile-name\ --endpoint-urlvpc-endpoint-id.api.sagemaker.Region.vpce.amazonaws.com
示例 3:允许使用 aws:SourceIp 从 IP 地址进行连接
以下策略只允许使用 aws:SourceIp 条件键从指定范围的 IP 地址进行连接。
示例 4:允许使用 aws:VpcSourceIp 通过接口端点从 IP 地址进行连接
如果通过接口端点访问 Studio 或 Studio Classic,可以使用 aws:VpcSourceIp 条件键,只允许来自创建接口端点的子网内指定 IP 地址范围的连接,如下策略所示: