本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Identity and Access Management 對於 SageMaker HyperPod
AWS Identity and Access Management (IAM) 是 AWS 協助系統管理員安全地控制存取權的服務 AWS 的費用。IAM管理員控制誰可以驗證 (登入) 和授權 (具有權限) 使用 Amazon EKS 資源。IAM是一個 AWS 您可以免費使用的服務。
允許 Amazon SageMaker 工作室或 Amazon 工作 SageMaker 室經典版建立 Amazon SageMaker 資源的自訂IAM政策還必須授予許可,才能將標籤新增到這些資源。需要向資源添加標籤的權限,因為 Studio 和 Studio 經典版會自動標記它們創建的任何資源。如果IAM原則允許 Studio 和 Studio 典型版建立資源,但不允許標記,則在嘗試建立資源時可能會發生 AccessDenied "" 錯誤。如需詳細資訊,請參閱提供標記 SageMaker資源的許可。
AWS Amazon 的受管政策 SageMaker授予建立 SageMaker 資源的權限,已包含在建立這些資源時新增標籤的權限。
假設 SageMaker HyperPod 使用者主要有兩層:叢集管理員使用者和資料科學家使用者。
透過附加操IAM SageMaker HyperPod 作叢集的正確權限或原則,為叢集管理員設定角色。叢集管理員也應該建立IAM角色,以提供給 SageMaker HyperPod 資源以假設執行和與必要的通訊 AWS 資源,例如 Amazon S3 CloudWatch,Amazon 和 AWS Systems Manager (SSM)。最後, AWS 帳戶管理員或叢集管理員應授予科學家存取 SageMaker HyperPod 叢集和執行機器學習工作負載的權限。
視您選擇的協調器而定,叢集管理員和科學家所需的權限可能會有所不同。您也可以使用每個服務的條件索引鍵,控制角色中各種動作的權限範圍。請使用下列服務授權參考來新增相關服務的詳細範圍 SageMaker HyperPod。
IAM叢集管理員的使用者
叢集管理員 (管理員) 操作和配置 SageMaker HyperPod 叢集,並執行中的工作SageMaker HyperPod 操作。下列原則範例包含叢集管理員執行 SageMaker HyperPod 核心APIs和管理叢集內部 SageMaker HyperPod 叢集的最低權限集 AWS
帳戶。
- 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"
],
"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:DeleteClusterNodes",
"eks:DescribeCluster",
"eks:CreateAccessEntry",
"eks:DescribeAccessEntry",
"eks:DeleteAccessEntry",
"eks:AssociateAccessPolicy",
"iam:CreateServiceLinkedRole"
],
"Resource": "*"
}
]
}
若要授與存取 SageMaker 主控台的權限,請使用使用 Amazon 主控 SageMaker 台所需權限中提供的範例政策。
若要授與存取 Amazon EC2 Systems 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
connect-cluster
命令之間執行hyperpod list-clusters
和 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": "*"
}
]
}
若要授與叢集APIs中 Kubernetes 的資料科學家IAM使用者或角色存取權,另請參閱 Amazon 使用者指南中的授予IAM使用者和角色存取 Kubernetes APIs 的權限。EKS
IAM角色 SageMaker HyperPod
讓 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
(選擇性) 搭配 Amazon 虛擬私 SageMaker HyperPod 有雲使用的其他許可
如果您想要使用自己的 Amazon Virtual Private Cloud (VPC) 而非預設 SageMakerVPC,則應將下列額外許可新增至的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 設定 SageMaker HyperPod 叢集時啟用叢集功能所需的許可VPC。
-
您需要下列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,請 HyperPod 建立服務連結角色,AWS 受管政策: AmazonSageMakerHyperPodServiceRolePolicy以監控和支援EKS叢集上的彈性,例如更換節點和重新啟動任務。
IAMAmazon 政策 EKS