View a markdown version of this page

AWS Identity and Access Management für SageMaker HyperPod - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS Identity and Access Management für SageMaker HyperPod

AWS Identity and Access Management (IAM) ist ein AWS Dienst, der einem Administrator hilft, den Zugriff auf Ressourcen sicher zu AWS kontrollieren. IAM-Administratoren kontrollieren, wer authentifiziert (angemeldet) und autorisiert (mit Berechtigungen ausgestattet) werden kann, um Amazon-EKS-Ressourcen zu nutzen. IAM ist ein AWS Dienst, den Sie ohne zusätzliche Kosten nutzen können.

Wichtig

Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen ebenfalls Berechtigungen zum Hinzufügen von Stichwörtern zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic zwar das Erstellen von Ressourcen erlaubt, das Taggen jedoch nicht zulässt, können AccessDenied "“ -Fehler auftreten, wenn versucht wird, Ressourcen zu erstellen. Weitere Informationen finden Sie unter Stellen Sie Berechtigungen für das Taggen von SageMaker KI-Ressourcen bereit.

AWS verwaltete Richtlinien für Amazon AI SageMakerdie Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, enthalten bereits Berechtigungen zum Hinzufügen von Tags bei der Erstellung dieser Ressourcen.

Nehmen wir an, es gibt zwei Hauptebenen von SageMaker HyperPod Benutzern: Cluster-Admin-Benutzer und Data-Scientist-Benutzer.

  • Cluster-Administratoren — Sind für die Erstellung und Verwaltung von SageMaker HyperPod Clustern verantwortlich. Dazu gehören die Konfiguration der HyperPod Cluster und die Verwaltung des Benutzerzugriffs auf sie.

    • Erstellen und konfigurieren Sie SageMaker HyperPod Cluster mit Slurm oder Amazon EKS.

    • Erstellen und konfigurieren Sie IAM-Rollen für Datenwissenschaftler und HyperPod Cluster-Ressourcen.

    • Für die SageMaker HyperPod Orchestrierung mit Amazon EKS erstellen und konfigurieren Sie EKS-Zugriffseinträge, rollenbasierte Zugriffskontrolle (RBAC) und Pod Identity, um datenwissenschaftliche Anwendungsfälle abzudecken.

  • Datenwissenschaftsbenutzer – Konzentration auf das Training von ML-Modellen. Sie verwenden den Open-Source-Orchestrator oder die SageMaker HyperPod CLI, um Schulungsaufträge einzureichen und zu verwalten.

    • Nehmen Sie die von Cluster-Admin-Benutzern bereitgestellte IAM-Rolle an und verwenden Sie sie.

    • Interagieren Sie mit den Open-Source-Orchestrator-CLIs, die von SageMaker HyperPod (Slurm oder Kubernetes) oder der SageMaker HyperPod CLI unterstützt werden, um die Clusterkapazität zu überprüfen, eine Verbindung zum Cluster herzustellen und Workloads einzureichen.

Richten Sie IAM-Rollen für Cluster-Administratoren ein, indem Sie die richtigen Berechtigungen oder Richtlinien für den Betrieb von Clustern hinzufügen. SageMaker HyperPod Cluster-Administratoren sollten außerdem IAM-Rollen erstellen, um SageMaker HyperPod Ressourcen bereitzustellen, von denen sie ausgehen, dass sie die erforderlichen AWS Ressourcen ausführen und mit ihnen kommunizieren, wie Amazon S3 CloudWatch, Amazon und (SSM). AWS Systems Manager Schließlich sollten der AWS Kontoadministrator oder die Cluster-Administratoren Wissenschaftlern die Erlaubnis erteilen, auf die SageMaker HyperPod Cluster zuzugreifen und ML-Workloads auszuführen.

Je nachdem, welchen Orchestrator Sie auswählen, können die für den Cluster-Administrator und die Wissenschaftler erforderlichen Berechtigungen variieren. Sie können auch den Umfang der Berechtigungen für verschiedene Aktionen in den Rollen mithilfe der Bedingungsschlüssel pro Service steuern. Verwenden Sie die folgenden Referenzen zur Serviceautorisierung, um einen detaillierten Umfang für die Dienste hinzuzufügen, die sich auf Folgendes beziehen. SageMaker HyperPod

IAM-Berechtigungen für die Clustererstellung

Für das Erstellen von HyperPod Clustern sind die im folgenden Richtlinienbeispiel beschriebenen IAM-Berechtigungen erforderlich. Wenn Sie AWS-Konto über AdministratorAccess Berechtigungen verfügen, werden diese Berechtigungen standardmäßig gewährt.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:UpdateCluster" ], "Resource": "arn:aws:sagemaker:*:*:cluster/*" }, { "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "arn:aws:sagemaker:*:*:cluster/*" }, { "Effect": "Allow", "Action": [ "sagemaker:ListTags", "sagemaker:ListClusters", "sagemaker:ListClusterNodes", "sagemaker:ListComputeQuotas", "sagemaker:ListTrainingPlans", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:UpdateStack", "cloudformation:DeleteStack", "cloudformation:ContinueUpdateRollback", "cloudformation:SetStackPolicy", "cloudformation:ValidateTemplate", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:Get*", "cloudformation:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/sagemaker-*", "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com", "eks.amazonaws.com", "lambda.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "iam:PassRole", "iam:GetRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com", "eks.amazonaws.com", "lambda.amazonaws.com", "cloudformation.amazonaws.com" ] } } }, { "Sid": "AmazonVPCFullAccess", "Effect": "Allow", "Action": [ "ec2:AcceptVpcPeeringConnection", "ec2:AcceptVpcEndpointConnections", "ec2:AllocateAddress", "ec2:AssignIpv6Addresses", "ec2:AssignPrivateIpAddresses", "ec2:AssociateAddress", "ec2:AssociateDhcpOptions", "ec2:AssociateRouteTable", "ec2:AssociateSecurityGroupVpc", "ec2:AssociateSubnetCidrBlock", "ec2:AssociateVpcCidrBlock", "ec2:AttachClassicLinkVpc", "ec2:AttachInternetGateway", "ec2:AttachNetworkInterface", "ec2:AttachVpnGateway", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateCarrierGateway", "ec2:CreateCustomerGateway", "ec2:CreateDefaultSubnet", "ec2:CreateDefaultVpc", "ec2:CreateDhcpOptions", "ec2:CreateEgressOnlyInternetGateway", "ec2:CreateFlowLogs", "ec2:CreateInternetGateway", "ec2:CreateLocalGatewayRouteTableVpcAssociation", "ec2:CreateNatGateway", "ec2:CreateNetworkAcl", "ec2:CreateNetworkAclEntry", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:CreateVpc", "ec2:CreateVpcEndpoint", "ec2:CreateVpcEndpointConnectionNotification", "ec2:CreateVpcEndpointServiceConfiguration", "ec2:CreateVpcPeeringConnection", "ec2:CreateVpnConnection", "ec2:CreateVpnConnectionRoute", "ec2:CreateVpnGateway", "ec2:DeleteCarrierGateway", "ec2:DeleteCustomerGateway", "ec2:DeleteDhcpOptions", "ec2:DeleteEgressOnlyInternetGateway", "ec2:DeleteFlowLogs", "ec2:DeleteInternetGateway", "ec2:DeleteLocalGatewayRouteTableVpcAssociation", "ec2:DeleteNatGateway", "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkAclEntry", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup", "ec2:DeleteSubnet", "ec2:DeleteTags", "ec2:DeleteVpc", "ec2:DeleteVpcEndpoints", "ec2:DeleteVpcEndpointConnectionNotifications", "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DeleteVpcPeeringConnection", "ec2:DeleteVpnConnection", "ec2:DeleteVpnConnectionRoute", "ec2:DeleteVpnGateway", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeCarrierGateways", "ec2:DescribeClassicLinkInstances", "ec2:DescribeCustomerGateways", "ec2:DescribeDhcpOptions", "ec2:DescribeEgressOnlyInternetGateways", "ec2:DescribeFlowLogs", "ec2:DescribeInstances", "ec2:DescribeInternetGateways", "ec2:DescribeIpv6Pools", "ec2:DescribeLocalGatewayRouteTables", "ec2:DescribeLocalGatewayRouteTableVpcAssociations", "ec2:DescribeKeyPairs", "ec2:DescribeMovingAddresses", "ec2:DescribeNatGateways", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DescribeNetworkInterfacePermissions", "ec2:DescribeNetworkInterfaces", "ec2:DescribePrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroupReferences", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeSecurityGroupVpcAssociations", "ec2:DescribeStaleSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeTags", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcClassicLink", "ec2:DescribeVpcClassicLinkDnsSupport", "ec2:DescribeVpcEndpointConnectionNotifications", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpointServicePermissions", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs", "ec2:DescribeVpnConnections", "ec2:DescribeVpnGateways", "ec2:DetachClassicLinkVpc", "ec2:DetachInternetGateway", "ec2:DetachNetworkInterface", "ec2:DetachVpnGateway", "ec2:DisableVgwRoutePropagation", "ec2:DisableVpcClassicLink", "ec2:DisableVpcClassicLinkDnsSupport", "ec2:DisassociateAddress", "ec2:DisassociateRouteTable", "ec2:DisassociateSecurityGroupVpc", "ec2:DisassociateSubnetCidrBlock", "ec2:DisassociateVpcCidrBlock", "ec2:EnableVgwRoutePropagation", "ec2:EnableVpcClassicLink", "ec2:EnableVpcClassicLinkDnsSupport", "ec2:GetSecurityGroupsForVpc", "ec2:ModifyNetworkInterfaceAttribute", "ec2:ModifySecurityGroupRules", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:ModifyVpcEndpoint", "ec2:ModifyVpcEndpointConnectionNotification", "ec2:ModifyVpcEndpointServiceConfiguration", "ec2:ModifyVpcEndpointServicePermissions", "ec2:ModifyVpcPeeringConnectionOptions", "ec2:ModifyVpcTenancy", "ec2:MoveAddressToVpc", "ec2:RejectVpcEndpointConnections", "ec2:RejectVpcPeeringConnection", "ec2:ReleaseAddress", "ec2:ReplaceNetworkAclAssociation", "ec2:ReplaceNetworkAclEntry", "ec2:ReplaceRoute", "ec2:ReplaceRouteTableAssociation", "ec2:ResetNetworkInterfaceAttribute", "ec2:RestoreAddressToClassic", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:UnassignIpv6Addresses", "ec2:UnassignPrivateIpAddresses", "ec2:UpdateSecurityGroupRuleDescriptionsEgress", "ec2:UpdateSecurityGroupRuleDescriptionsIngress" ], "Resource": "*" }, { "Sid": "CloudWatchPermissions", "Effect": "Allow", "Action": [ "cloudwatch:*", "logs:*", "sns:CreateTopic", "sns:ListSubscriptions", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "sns:Subscribe", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "oam:ListSinks", "rum:*", "synthetics:*", "xray:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketPolicy", "s3:PutBucketTagging", "s3:PutBucketPublicAccessBlock", "s3:PutBucketLogging", "s3:DeleteBucketPolicy", "s3:PutObject", "s3:DeleteObject", "s3:PutEncryptionConfiguration", "s3:AbortMultipartUpload", "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::*", "arn:aws:s3:::*/*" ] }, { "Effect": "Allow", "Action": [ "eks:CreateCluster", "eks:DeleteCluster", "eks:CreateNodegroup", "eks:DeleteNodegroup", "eks:UpdateNodegroupConfig", "eks:UpdateNodegroupVersion", "eks:UpdateClusterConfig", "eks:UpdateClusterVersion", "eks:CreateFargateProfile", "eks:DeleteFargateProfile", "eks:CreateAddon", "eks:DeleteAddon", "eks:UpdateAddon", "eks:CreateAccessEntry", "eks:DeleteAccessEntry", "eks:UpdateAccessEntry", "eks:AssociateAccessPolicy", "eks:AssociateIdentityProviderConfig", "eks:DisassociateIdentityProviderConfig", "eks:TagResource", "eks:UntagResource", "eks:AccessKubernetesApi", "eks:Describe*", "eks:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameter", "ssm:PutParameter", "ssm:DeleteParameter", "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "sagemaker.*.amazonaws.com", "ec2.*.amazonaws.com", "s3.*.amazonaws.com", "eks.*.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:UpdateFunctionCode", "lambda:UpdateFunctionConfiguration", "lambda:AddPermission", "lambda:RemovePermission", "lambda:PublishLayerVersion", "lambda:DeleteLayerVersion", "lambda:InvokeFunction", "lambda:Get*", "lambda:List*", "lambda:TagResource" ], "Resource": [ "arn:aws:lambda:*:*:function:*", "arn:aws:lambda:*:*:layer:*" ] }, { "Effect": "Allow", "Action": [ "iam:DeleteRole", "iam:DeleteRolePolicy" ], "Resource": [ "arn:aws:iam::*:role/*sagemaker*", "arn:aws:iam::*:role/*eks*", "arn:aws:iam::*:role/*hyperpod*", "arn:aws:iam::*:policy/*sagemaker*", "arn:aws:iam::*:policy/*hyperpod*", "arn:aws:iam::*:role/*LifeCycleScriptStack*", "arn:aws:iam::*:role/*LifeCycleScript*" ] }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:TagRole", "iam:PutRolePolicy", "iam:Get*", "iam:List*", "iam:AttachRolePolicy", "iam:DetachRolePolicy" ], "Resource": [ "arn:aws:iam::*:role/*", "arn:aws:iam::*:policy/*" ] }, { "Sid": "FullAccessToFSx", "Effect": "Allow", "Action": [ "fsx:AssociateFileGateway", "fsx:AssociateFileSystemAliases", "fsx:CancelDataRepositoryTask", "fsx:CopyBackup", "fsx:CopySnapshotAndUpdateVolume", "fsx:CreateAndAttachS3AccessPoint", "fsx:CreateBackup", "fsx:CreateDataRepositoryAssociation", "fsx:CreateDataRepositoryTask", "fsx:CreateFileCache", "fsx:CreateFileSystem", "fsx:CreateFileSystemFromBackup", "fsx:CreateSnapshot", "fsx:CreateStorageVirtualMachine", "fsx:CreateVolume", "fsx:CreateVolumeFromBackup", "fsx:DetachAndDeleteS3AccessPoint", "fsx:DeleteBackup", "fsx:DeleteDataRepositoryAssociation", "fsx:DeleteFileCache", "fsx:DeleteFileSystem", "fsx:DeleteSnapshot", "fsx:DeleteStorageVirtualMachine", "fsx:DeleteVolume", "fsx:DescribeAssociatedFileGateways", "fsx:DescribeBackups", "fsx:DescribeDataRepositoryAssociations", "fsx:DescribeDataRepositoryTasks", "fsx:DescribeFileCaches", "fsx:DescribeFileSystemAliases", "fsx:DescribeFileSystems", "fsx:DescribeS3AccessPointAttachments", "fsx:DescribeSharedVpcConfiguration", "fsx:DescribeSnapshots", "fsx:DescribeStorageVirtualMachines", "fsx:DescribeVolumes", "fsx:DisassociateFileGateway", "fsx:DisassociateFileSystemAliases", "fsx:ListTagsForResource", "fsx:ManageBackupPrincipalAssociations", "fsx:ReleaseFileSystemNfsV3Locks", "fsx:RestoreVolumeFromSnapshot", "fsx:TagResource", "fsx:UntagResource", "fsx:UpdateDataRepositoryAssociation", "fsx:UpdateFileCache", "fsx:UpdateFileSystem", "fsx:UpdateSharedVpcConfiguration", "fsx:UpdateSnapshot", "fsx:UpdateStorageVirtualMachine", "fsx:UpdateVolume" ], "Resource": "*" } ] }

IAM-Benutzer für den Clusteradministrator

Clusteradministratoren (Admins) bedienen und konfigurieren SageMaker HyperPod Cluster und führen die Aufgaben in SageMaker HyperPod Betrieb des Slurm-Clusters aus. Das folgende Richtlinienbeispiel enthält die Mindestberechtigungen für Clusteradministratoren, um die SageMaker HyperPod Kern-APIs auszuführen und SageMaker HyperPod Cluster in Ihrem AWS Konto zu verwalten.

Anmerkung

IAM-Benutzer mit Clusteradministratorrollen können Bedingungsschlüssel verwenden, um eine granulare Zugriffskontrolle zu ermöglichen, wenn sie SageMaker HyperPod Cluster-Ressourcen speziell für die Aktionen CreateCluster und UpdateCluster verwalten. Um die für diese Aktionen unterstützten Bedingungsschlüssel zu finden, suchen Sie nach CreateCluster oder UpdateCluster in den von SageMaker AI definierten Aktionen.

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:us-east-1:111122223333:cluster/*" } ] }
Amazon EKS
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/execution-role-name" }, { "Effect": "Allow", "Action": [ "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode", "sagemaker:ListClusterNodes", "sagemaker:ListClusters", "sagemaker:UpdateCluster", "sagemaker:UpdateClusterSoftware", "sagemaker:BatchAddClusterNodes", "sagemaker:BatchDeleteClusterNodes", "sagemaker:ListComputeQuotas", "sagemaker:ListClusterSchedulerConfigs", "sagemaker:DeleteClusterSchedulerConfig", "sagemaker:DeleteComputeQuota", "eks:DescribeCluster", "eks:CreateAccessEntry", "eks:DescribeAccessEntry", "eks:DeleteAccessEntry", "eks:AssociateAccessPolicy", "iam:CreateServiceLinkedRole" ], "Resource": "*" } ] }

Um Zugriffsberechtigungen für die SageMaker AI-Konsole zu gewähren, verwenden Sie die Beispielrichtlinie, die unter Berechtigungen für die Nutzung der Amazon SageMaker AI-Konsole erforderlich ist.

Um Zugriffsberechtigungen für die Amazon EC2 Systems Manager-Konsole zu gewähren, verwenden Sie die Beispielrichtlinie, die im AWS Systems Manager Benutzerhandbuch unter Verwenden der AWS Systems Manager Konsole beschrieben ist.

Sie könnten auch erwägen, die AmazonSageMakerFullAccess Richtlinie an die Rolle anzuhängen. Beachten Sie jedoch, dass die AmazonSageMakerFullAccess Richtlinie Berechtigungen für die gesamten SageMaker API-Aufrufe, Funktionen und Ressourcen gewährt.

Allgemeine Hinweise zu IAM-Benutzern finden Sie unter IAM-Benutzer im AWS Identity and Access Management -Benutzerhandbuch.

IAM-Benutzer für Wissenschaftler

Wissenschaftler melden sich an und führen ML-Workloads auf SageMaker HyperPod Clusterknoten aus, die von Cluster-Administratoren bereitgestellt werden. Wissenschaftlern in Ihrem AWS Konto sollten Sie die Erlaubnis erteilen, den "ssm:StartSession" SSM-Befehl auszuführen. start-session Im Folgenden finden Sie ein Beispiel für eine Richtlinie für IAM-Benutzer.

Slurm

Fügen Sie die folgende Richtlinie hinzu, um SSM-Sitzungsberechtigungen für die Verbindung mit einem SSM-Ziel für alle Ressourcen zu gewähren. Dadurch können Sie auf HyperPod Cluster zugreifen.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }
Amazon EKS

Gewähren Sie Datenwissenschaftlern die folgenden IAM-Rollenberechtigungen, um hyperpod connect-cluster Befehle aus den HyperPod CLI-Befehlen auszuführenhyperpod list-clusters. Weitere Informationen zur HyperPod CLI finden Sie unterAusführung von Jobs auf SageMaker HyperPod Clustern, die von Amazon EKS orchestriert werden. Es umfasst auch SSM-Sitzungsberechtigungen für alle Ressourcen, um eine Verbindung zu einem SSM-Ziel herzustellen. Dadurch können Sie auf HyperPod Cluster zugreifen.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DescribeHyerpodClusterPermissions", "Effect": "Allow", "Action": [ "sagemaker:DescribeCluster" ], "Resource": "arn:aws:sagemaker:us-east-2:111122223333:cluster/hyperpod-cluster-name" }, { "Sid": "UseEksClusterPermissions", "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:sagemaker:us-east-2:111122223333:cluster/eks-cluster-name" }, { "Sid": "ListClustersPermission", "Effect": "Allow", "Action": [ "sagemaker:ListClusters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }

Um Datenwissenschaftlern, die IAM-Benutzer oder -Rollen sind, Zugriff auf Kubernetes-APIs im Cluster zu gewähren, lesen Sie auch Gewähren von Zugriff auf Kubernetes-APIs für IAM-Benutzer und Rollen im Benutzerhandbuch für Amazon EKS.

IAM-Rolle für SageMaker HyperPod

Damit SageMaker HyperPod Cluster ausgeführt werden und mit den erforderlichen AWS Ressourcen kommunizieren können, müssen Sie eine IAM-Rolle erstellen, die der HyperPod Cluster übernehmen kann.

Beginnen Sie mit dem Anfügen der verwalteten Rolle AWS verwaltete Richtlinie: AmazonSageMakerHyperPodServiceRolePolicy. Aufgrund dieser AWS verwalteten Richtlinie übernehmen SageMaker HyperPod Cluster-Instance-Gruppen die Rolle für die Kommunikation mit Amazon CloudWatch, Amazon S3 und AWS Systems Manager Agent (SSM Agent). Diese verwaltete Richtlinie ist die Mindestanforderung für den ordnungsgemäßen Betrieb von SageMaker HyperPod Ressourcen. Daher müssen Sie allen Instanzgruppen zusammen mit dieser Richtlinie eine IAM-Rolle zuweisen.

Tipp

Je nachdem, wie Sie die Berechtigungen für mehrere Instance-Gruppen gestalten möchten, können Sie auch mehrere IAM-Rollen einrichten und diese verschiedenen Instance-Gruppen zuweisen. Wenn Sie Ihren Cluster-Benutzerzugriff auf bestimmte SageMaker HyperPod Clusterknoten einrichten, übernehmen die Knoten die Rolle mit den selektiven Berechtigungen, die Sie manuell zugewiesen haben.

Wenn Sie den Zugriff für Wissenschaftler auf bestimmte Clusterknoten über AWS Systems Manager (siehe auch Einrichtung AWS Systems Manager und Run As für die Cluster-Benutzerzugriffskontrolle) einrichten, übernehmen die Clusterknoten die Rolle mit den selektiven Berechtigungen, die Sie manuell zuweisen.

Wenn Sie mit der Erstellung der IAM-Rollen fertig sind, notieren Sie sich deren Namen und ARNs. Sie verwenden die Rollen beim Erstellen eines SageMaker HyperPod Clusters und gewähren dabei die richtigen Berechtigungen, die für jede Instanzgruppe erforderlich sind, um mit den erforderlichen AWS Ressourcen zu kommunizieren.

Slurm

Für HyperPod Orchestrierung mit Slurm müssen Sie die folgende verwaltete Richtlinie an die SageMaker HyperPod IAM-Rolle anhängen.

(Optional) Zusätzliche Berechtigungen für die Verwendung SageMaker HyperPod mit Amazon Virtual Private Cloud

Wenn Sie Ihre eigene Amazon Virtual Private Cloud (VPC) anstelle der SageMaker Standard-AI-VPC verwenden möchten, sollten Sie der IAM-Rolle für die folgenden zusätzlichen Berechtigungen hinzufügen. 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/*" ] }

In der folgenden Liste ist aufgeführt, welche Berechtigungen erforderlich sind, um SageMaker HyperPod Cluster-Funktionen zu aktivieren, wenn Sie den Cluster mit Ihrer eigenen Amazon VPC konfigurieren.

  • Die folgenden ec2 Berechtigungen sind erforderlich, um die Konfiguration eines SageMaker HyperPod Clusters mit Ihrer VPC zu ermöglichen.

    { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }
  • Die folgende ec2 Berechtigung ist erforderlich, um die Funktion zur SageMaker HyperPod automatischen Wiederaufnahme zu aktivieren.

    { "Effect": "Allow", "Action": [ "ec2:DetachNetworkInterface" ], "Resource": "*" }
  • Die folgende ec2 Berechtigung ermöglicht SageMaker HyperPod das Erstellen von Tags auf den Netzwerkschnittstellen in Ihrem Konto.

    { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] }
Amazon EKS

Für HyperPod Orchestrierungen mit Amazon EKS müssen Sie die folgenden verwalteten Richtlinien an die SageMaker HyperPod IAM-Rolle anhängen.

Fügen Sie der Rolle zusätzlich zu den verwalteten Richtlinien die folgende Berechtigungsrichtlinie hinzu.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignPrivateIpAddresses", "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeInstances", "ec2:DescribeInstanceTypes", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DetachNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute", "ec2:UnassignPrivateIpAddresses", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "eks-auth:AssumeRoleForPodIdentity" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] } ] }
Anmerkung

Die "eks-auth:AssumeRoleForPodIdentity"-Erlaubnis ist optional. Sie ist erforderlich, wenn Sie EKS Pod Identity verwenden möchten.

SageMaker HyperPod serviceverknüpfte Rolle

HyperPod Erstellt für Amazon EKS-Support in eine serviceverknüpfte Rolle SageMaker HyperPod, mit AWS verwaltete Richtlinie: AmazonSageMakerHyperPodServiceRolePolicy der die Ausfallsicherheit auf Ihrem EKS-Cluster überwacht und unterstützt wird, z. B. durch das Ersetzen von Knoten und das Neustarten von Aufträgen.

Zusätzliche IAM-Richtlinien für Amazon-EKS-Cluster mit eingeschränkter Instance-Gruppe (RIG)

Workloads, die in eingeschränkten Instance-Gruppen ausgeführt werden, benötigen die Ausführungsrolle, um Daten aus Amazon S3 zu laden. Sie müssen der Ausführungsrolle die zusätzlichen Amazon-S3-Berechtigungen hinzufügen, damit Anpassungsaufträge, die in eingeschränkten Instance-Gruppen ausgeführt werden, Eingabedaten ordnungsgemäß abrufen können.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }