本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Identity and Access Management 对于 SageMaker HyperPod
AWS Identity and Access Management (IAM) 是一项可帮助管理员安全地控制对 AWS 资源的访问的 AWS 服务。 IAM管理员控制谁可以通过身份验证(登录)和授权(拥有权限)使用 Amazon EKS 资源。 IAM是一项无需额外付费即可使用的 AWS 服务。
允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义IAM策略还必须授予向这些资源添加标签的权限。之所以需要为资源添加标签的权限,是因为 Studio 和 Studio Classic 会自动为创建的任何资源添加标签。如果IAM策略允许 Studio 和 Studio Classic 创建资源但不允许标记,则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息,请参阅 提供标记 A SageMaker I 资源的权限。
AWS 亚马逊 A SageMaker I 的托管策略授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。
假设 SageMaker HyperPod 用户主要分为两层:集群管理员用户和数据科学家用户。
通过附加正确的权限或策略来操作 SageMaker HyperPod 集群,为集群管理员设置IAM角色。集群管理员还应创建IAM角色以提供给 SageMaker HyperPod 资源以代入运行和与必要 AWS 资源(例如 Amazon S3、Amazon 和 AWS Systems Manager (SSM))进行通信。 CloudWatch最后, AWS 账户管理员或集群管理员应向科学家授予访问集 SageMaker HyperPod 群和运行机器学习工作负载的权限。
根据您选择的编排工具,集群管理员和科学家所需的权限可能会有所不同。您还可以使用每个服务的条件键来控制角色中各种操作的权限范围。使用以下服务授权参考为与之相关的服务添加详细范围 SageMaker HyperPod。
IAM用户代表集群管理员
集群管理员(管理员)操作和配置 SageMaker HyperPod 集群,执行中的任务。SageMaker HyperPod 操作以下策略示例包括集群管理员在您的 AWS
账户中运行 SageMaker HyperPod 核心APIs和管理 SageMaker HyperPod 集群的最低权限集。
- Slurm
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sagemaker:CreateCluster",
"sagemaker:ListClusters"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"sagemaker:DeleteCluster",
"sagemaker:DescribeCluster",
"sagemaker:DescribeClusterNode",
"sagemaker:ListClusterNodes",
"sagemaker:UpdateCluster",
"sagemaker:UpdateClusterSoftware",
"sagemaker:BatchDeleteClusterNodes"
],
"Resource": "arn:aws:sagemaker:region
:account-id
:cluster/*"
}
]
}
- Amazon EKS
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": <execution-role-arn>
},
{
"Effect": "Allow",
"Action": [
"sagemaker:CreateCluster",
"sagemaker:DeleteCluster",
"sagemaker:DescribeCluster",
"sagemaker:DescribeCluterNode",
"sagemaker:ListClusterNodes",
"sagemaker:ListClusters",
"sagemaker:UpdateCluster",
"sagemaker:UpdateClusterSoftware",
"sagemaker:BatchDeleteClusterNodes",
"eks:DescribeCluster",
"eks:CreateAccessEntry",
"eks:DescribeAccessEntry",
"eks:DeleteAccessEntry",
"eks:AssociateAccessPolicy",
"iam:CreateServiceLinkedRole"
],
"Resource": "*"
}
]
}
要授予访问 SageMaker AI 控制台的权限,请使用使用 A mazon A SageMaker I 控制台所需的权限中提供的示例策略。
要授予访问 Amazon S EC2 ystems Manager 控制台的权限,请使用 AWS Systems Manager 用户指南中使用 AWS Systems Manager 控制台中提供的示例策略。
您也可以考虑将AmazonSageMakerFullAccess策略附加到该角色;但是,请注意,该AmazonSageMakerFullAccess
策略授予对整个 SageMaker API调用、功能和资源的权限。
有关一般IAM用户的指导,请参阅《IAM用户指南》中的AWS Identity and Access Management 用户。
IAM科学家的用户
科学家在集群管理员配置的 SageMaker HyperPod 集群节点上登录并运行机器学习工作负载。对于您 AWS 账户中的科学家,您应授"ssm:StartSession"
予运行该SSMstart-session
命令的权限。以下是针对IAM用户的策略示例。
- Slurm
-
添加以下策略以授予所有资源连接到SSM目标的SSM会话权限。这允许您访问 HyperPod集群。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:StartSession",
"ssm:TerminateSession"
],
"Resource": "*"
}
]
}
- Amazon EKS
-
向数据科学家授予以下IAM角色权限以供其运行hyperpod list-clusters
和hyperpod
connect-cluster
命令间的 HyperPod CLI命令。要了解更多信息 HyperPod CLI,请参阅在 Amazon 编排的 SageMaker HyperPod 集群上运行作业 EKS。它还包括连接所有资源的SSM目标的SSM会话权限。这允许您访问 HyperPod 集群。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DescribeHyerpodClusterPermissions",
"Effect": "Allow",
"Action": [
"sagemaker:DescribeCluster"
],
"Resource": "<hyperpod-cluster-arn>"
},
{
"Sid": "UseEksClusterPermissions",
"Effect": "Allow",
"Action": [
"eks:DescribeCluster",
],
"Resource": "<eks-cluster-arn>"
},
{
"Sid": "ListClustersPermission",
"Effect": "Allow",
"Action": [
"sagemaker:ListClusters"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ssm:StartSession",
"ssm:TerminateSession"
],
"Resource": "*"
}
]
}
要授予数据科学家IAM用户或角色访问集群中 Kubernetes 的权限,另请参阅《亚马逊用户指南》APIs中的授予IAM用户和角色访问 Kubernetes APIs 的权限。EKS
SageMaker HyperPod的 IAM 角色
为了使 SageMaker HyperPod 集群能够运行并与必要的 AWS 资源通信,您需要为 HyperPod 集群创建一个IAM角色来代替。
首先附加托管角色 AWS
托管策略: AmazonSageMakerHyperPodServiceRolePolicy。根据此 AWS 托管策略, SageMaker HyperPod 集群实例组将扮演与 Amazon CloudWatch、Amazon S3 和 AWS Systems Manager 代理(代SSM理)通信的角色。此托管策略是 SageMaker HyperPod 资源正常运行的最低要求,因此您必须为所有实例组提供具有此策略的IAM角色。
创建完IAM角色后,记下他们的名字和ARNs。您在创建 SageMaker HyperPod 集群时使用这些角色,授予每个实例组与必要 AWS 资源通信所需的正确权限。
- Slurm
-
要使用 Slurm 进行 HyperPod 编排,您必须将以下托管策略附加到该角色。 SageMaker HyperPod IAM
(可选)用于亚马逊 Virtual Priv SageMaker HyperPod ate Cloud 的额外权限
如果您想使用自己的 Amazon Virtual Private Cloud (VPC) 而不是默认 SageMaker AIVPC,则应为IAM角色添加以下额外权限 SageMaker HyperPod。
{
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface",
"ec2:CreateNetworkInterfacePermission",
"ec2:DeleteNetworkInterface",
"ec2:DeleteNetworkInterfacePermission",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeVpcs",
"ec2:DescribeDhcpOptions",
"ec2:DescribeSubnets",
"ec2:DescribeSecurityGroups",
"ec2:DetachNetworkInterface"
],
"Resource": "*"
}
{
"Effect": "Allow",
"Action": "ec2:CreateTags",
"Resource": [
"arn:aws:ec2:*:*:network-interface/*"
]
}
以下列表详细说明了使用自己的 Amazon VPC 配置 SageMaker HyperPod 集群时需要哪些权限才能启用集群功能。
-
需要以下ec2
权限才能使用您的配置 SageMaker HyperPod 集群VPC。
{
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface",
"ec2:CreateNetworkInterfacePermission",
"ec2:DeleteNetworkInterface",
"ec2:DeleteNetworkInterfacePermission",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeVpcs",
"ec2:DescribeDhcpOptions",
"ec2:DescribeSubnets",
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
}
-
启用SageMaker HyperPod 自动恢复功能需要以下ec2
权限。
{
"Effect": "Allow",
"Action": [
"ec2:DetachNetworkInterface"
],
"Resource": "*"
}
-
以下ec2
权限 SageMaker HyperPod 允许在您账户内的网络接口上创建标签。
{
"Effect": "Allow",
"Action": "ec2:CreateTags",
"Resource": [
"arn:aws:ec2:*:*:network-interface/*"
]
}
- Amazon EKS
-
要通过 Amazon 进行 HyperPod 编排EKS,您必须将以下托管策略附加到该角色。 SageMaker HyperPod IAM
除托管式策略外,还可为角色附加以下权限策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:AssignPrivateIpAddresses",
"ec2:CreateNetworkInterface",
"ec2:CreateNetworkInterfacePermission",
"ec2:DeleteNetworkInterface",
"ec2:DeleteNetworkInterfacePermission",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeVpcs",
"ec2:DescribeDhcpOptions",
"ec2:DescribeSubnets",
"ec2:DescribeSecurityGroups",
"ec2:DetachNetworkInterface",
"ec2:ModifyNetworkInterfaceAttribute",
"ec2:UnassignPrivateIpAddresses",
"ecr:BatchGetImage",
"ecr:GetAuthorizationToken",
"ecr:GetDownloadUrlForLayer",
"eks-auth:AssumeRoleForPodIdentity"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": [
"arn:aws:ec2:*:*:network-interface/*"
]
}
]
}
"eks-auth:AssumeRoleForPodIdentity"
权限是可选的。如果您打算使用 EKS Pod 身份,则需要这样做。
SageMaker HyperPod 服务相关角色
要获得中的 Amazon EKS 支持 SageMaker HyperPod,AWS
托管策略: AmazonSageMakerHyperPodServiceRolePolicy请使用 HyperPod 创建一个服务相关角色来监控和支持EKS集群的弹性,例如更换节点和重启作业。
IAM针对亚马逊的政策 EKS