AWS Identity and Access Management 對於 SageMaker HyperPod - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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 使用者主要有兩層:叢集管理員使用者資料科學家使用者

  • 叢集管理員使用者 — 負責建立和管理 SageMaker HyperPod 叢集。這包括設定 HyperPod 叢集和管理叢集的使用者存取權限。

    • 使用 Slurm 或 Amazon 創建和配置 SageMaker HyperPod 集群。EKS

    • 為資料科學家使用者和 HyperPod 叢集資源建立和設定IAM角色。

    • 對於使用 Amazon 進行 SageMaker HyperPod 協調EKS,請建立和設定EKS存取項目角色型存取控制 (RBAC) 和 Pod 身分,以滿足資料科學使用案例。

  • 資料科學家使用者 — 專注於 ML 模型訓練。他們使用開放原始碼協調器或 SageMaker HyperPod CLI提交和管理訓練工作。

    • 假設並使用叢集管理員使用者提供的IAM角色。

    • 與 SageMaker HyperPod (Slurm 或 Kubernetes) CLIs 支援的開放原始碼協調器互動,或是檢查叢集容量、連線 SageMaker HyperPod CLI至叢集以及提交工作負載。

透過附加操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角色,並將它們附加到不同的執行個體群組。當您設定叢集使用者對特定 SageMaker HyperPod 叢集節點的存取權時,節點會以您手動連結的選擇性權限來擔任該角色。

當您通過以下方式為科學家設置對特定集群節點的訪問權限時 AWS Systems Manager(另請參閱針對叢集使用者存取控制設定 AWS Systems Manager 和執行為),叢集節點會假設角色具有您手動連接的選擇性權限。

建立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