设置以使用 EI。 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

设置以使用 EI。

如果您遇到以下情况之一,则使用本主题中的说明:

  • 您希望使用自定义角色或权限策略。

  • 您希望为托管模型或笔记本实例使用 VPC。

注意

如果您已有一个执行角色,该角色具有AmazonSageMakerFullAccess托管策略附加 (对于您在控制台中创建笔记本实例、训练作业或模型时创建的任何 IAM 角色),并且您未连接到 VPC 中的 EI 模型或笔记本实例,您无需进行任何更改即可在 Amazon SageMaker 中使用 EI。

设置所需权限

要在 SageMaker 中使用 EI,您用于打开笔记本实例或创建可部署模型的角色必须附加了具有所需权限的策略。您可以将 AmazonSageMakerFullAccess 托管策略(包含所需权限)附加到角色,或者添加具有所需权限的自定义策略。有关创建 IAM 角色的信息,请参阅为创建角色Amazon服务(控制台)中的Amazon Identity and Access Management用户指南。有关将策略附加到角色的信息,请参阅添加和删除 IAM 策略

在 IAM 策略中添加这些专门用于连接 EI 的权限。

{ "Effect": "Allow", "Action": [ "elastic-inference:Connect", "ec2:DescribeVpcEndpoints" ], "Resource": "*" }

以下 IAM 策略是在 SageMaker 中使用 EI 所需权限的完整列表。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elastic-inference:Connect", "ec2:DescribeVpcEndpoints" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "cloudwatch:PutMetricData", "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::*SageMaker*", "arn:aws:s3:::*Sagemaker*", "arn:aws:s3:::*sagemaker*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/SageMaker": "true" } } }, { "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint", "Condition": { "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

使用自定义 VPC 来连接 EI

要在 VPC 中将 EI 与 SageMaker 结合使用,您需要创建和配置两个安全组,并设置 PrivateLink VPC 接口终端节点。EI 使用 VPC 接口终端节点来与您 VPC 中的 SageMaker 终端节点通信。您创建的安全组用于连接到 VPC 接口终端节点。

设置安全组以连接到 EI

要在 VPC 中使用 EI,您需要创建两个安全组:

  • 一个安全组用于控制对您将为 EI 设置的 VPC 接口终端节点的访问。

  • 一个安全组允许 SageMaker 调用第一个安全组。

配置两个安全组

  1. 创建没有出站连接的安全组。您将此项附加到在下一部分中创建的 VPC 终端节点接口。

  2. 创建没有入站连接的第二个安全组,不过具有对第一个安全组的出站连接。

  3. 编辑第一个安全组以仅允许对第二个安全组的入站连接和所有出站连接。

有关 VPC 安全组的更多信息,请参阅您的 VPC 的安全组中的Amazon Virtual Private Cloud 用户指南

要在自定义 VPC 中将 EI 与 SageMaker 结合使用,您需要为 EI 服务设置 VPC 接口终端节点 (PrivateLink)。

  • 为 EI 设置 VPC 接口终端节点 (PrivateLink)。按照创建接口终端节点中的说明操作。在服务列表中,选择 com.amazonaws.<region>.elastic-inference.runtime。对于 Security group (安全组),确保您为终端节点选择在上一部分中创建的第一个安全组。

  • 设置接口终端节点时,选择 EI 可用的所有可用区。如果您未设置至少两个可用区,EI 将失败。有关 VPC 子网的信息,请参阅 VPC 和子网