本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以通过 VPC 中的接口终端节点从您的亚马逊 SageMaker 虚拟私有云(亚马逊 VPC)连接到您的亚马逊 SageMaker Studio 和 Amazon Studio Classic,而不必通过互联网进行连接。当您使用接口 VPC 终端节点(接口终端节点)时,您的 VPC 与 Studio 或 Studio Classic 之间的通信将在 AWS 网络内完全安全地进行。
Studio 和 Studio Classic 支持由 AWS PrivateLink 支持的接口端点。每个接口端点都由您的 VPC 子网中一个或多个使用私有 IP 地址的弹性网络接口代表。
Studio 和 Studio Classic 支持同时提供 Amazon A SageMaker I 和 Amazon
创建 VPC 终端节点
您可以创建接口终端节点,使用 AWS 控制台或 AWS Command Line Interface (AWS CLI) 连接到 Studio 或 Studio Classic。有关说明,请参阅创建接口端点。确保为 VPC 中要连接到 Studio 和 Studio Classic 的所有子网创建接口端点。
创建接口端点时,确保端点上的安全组允许从与 Studio 和 Studio Classic 相关联的安全组对 HTTPS 流量进行入站访问。有关更多信息,请参阅使用 VPC 端点控制对服务的访问。
注意
除了创建连接到 Studio 和 Studio Classic 的接口终端节点外,还要创建用于连接亚马逊 SageMaker API 的接口终端节点。当用户调用CreatePresignedDomainUrl
获取连接 Studio 和 Studio Classic 的网址时,该调用将通过用于连接到 SageMaker API 的接口端点。
创建接口端点时,请指定 aws.sagemaker.
作为 Studio 或 Studio Classic 的服务名称。创建接口端点后,请为端点启用私有 DNS。当您使用 SageMaker API、或控制台从 VPC 内连接到 Studio 或 Studio Classic 时,您将通过接口终端节点而不是公共互联网进行连接。 AWS CLI您还需要为亚马逊 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 的访问。您可以指定:
-
可执行操作的主体。
-
可执行的操作。
-
可对其执行操作的资源。
要将 VPC 终端节点与 Studio 或 Studio Classic 配合使用,您的终端节点策略必须允许对 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 内部建立的连接,请为此创建一个 AWS Identity and Access Management (IAM) 策略。将该策略添加到用于访问 Studio 或 Studio Classic 的每个用户、组或角色。只有在使用 IAM 模式进行身份验证时才支持该功能,在 IAM Identity Center 模式下不支持该功能。以下示例演示了如何创建此类策略。
重要
如果您应用类似于以下示例之一的 IAM 策略,则用户将无法访问 Studio 或 Studio Classic 或 SageMaker APIs 通过 SageMaker AI 控制台指定的策略。要访问 Studio 或 Studio Classic,用户必须使用预签名 URL 或 SageMaker APIs 直接致电。
示例 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 AI 控制台进行访问。第二个接口端点可能允许通过 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-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-id
domain-id
\ --user-profile-nameprofile-name
响应:
{
"AuthorizedUrl": "https://domain-id.studio.us-west-2.sagemaker.aws/auth?token=AuthToken"
}
对于这两个调用,如果您使用的是在 2018 年 8 月 13 日之前发布的 AWS SDK 版本,则必须在调用中指定终端节点 URL。例如,以下示例显示了对 create-presigned-domain-url
的调用:
aws sagemaker create-presigned-domain-url --domain-id
domain-id
\ --user-profile-nameprofile-name
\ --endpoint-urlvpc-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 地址进行连接
如果通过接口端点访问 Studio 或 Studio Classic,可以使用 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"
}
}
}
]
}