View a markdown version of this page

AWS Identity and Access Management per SageMaker HyperPod - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS Identity and Access Management per SageMaker HyperPod

AWS Identity and Access Management (IAM) è un AWS servizio che aiuta un amministratore a controllare in modo sicuro l'accesso alle AWS risorse. Gli amministratori IAM controllano chi è autenticato (accesso effettuato) e autorizzato (dispone di autorizzazioni) a utilizzare risorse Amazon EKS. IAM è un AWS servizio che puoi utilizzare senza costi aggiuntivi.

Importante

Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon devono inoltre concedere le autorizzazioni per aggiungere tag a tali risorse. L’autorizzazione per aggiungere tag alle risorse è necessaria perché Studio e Studio Classic applicano automaticamente tag a tutte le risorse che creano. Se una policy IAM consente a Studio e Studio Classic di creare risorse ma non consente il tagging, possono verificarsi errori durante il tentativo di creare risorse. AccessDenied Per ulteriori informazioni, consulta Fornisci le autorizzazioni per etichettare SageMaker le risorse AI.

AWS politiche gestite per Amazon AI SageMakerche forniscono le autorizzazioni per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Supponiamo che ci siano due livelli principali di SageMaker HyperPod utenti: gli utenti amministratori del cluster e gli utenti dei data scientist.

  • Utenti amministratori del cluster: sono responsabili della creazione e della gestione dei SageMaker HyperPod cluster. Ciò include la configurazione dei HyperPod cluster e la gestione dell'accesso degli utenti ad essi.

    • Crea e configura SageMaker HyperPod i cluster con Slurm o Amazon EKS.

    • Crea e configura i ruoli IAM per gli utenti dei data scientist e HyperPod le risorse del cluster.

    • Per l' SageMaker HyperPod orchestrazione con Amazon EKS, crea e configura le voci di accesso EKS, il controllo degli accessi basato sui ruoli (RBAC) e Pod Identity per soddisfare i casi d'uso della scienza dei dati.

  • Utenti Data Scientist: si occupano dell’addestramento dei modelli di ML. Usano l'orchestrator open source o la CLI per inviare e gestire i lavori di formazione. SageMaker HyperPod

    • Assumi e utilizza il ruolo IAM fornito dagli utenti amministratori del cluster.

    • Interagisci con le CLI dell'orchestrator open source supportate da SageMaker HyperPod (Slurm o Kubernetes) o la CLI per verificare la capacità dei cluster, connettersi al cluster e inviare carichi di lavoro. SageMaker HyperPod

Configura i ruoli IAM per gli amministratori dei cluster allegando le autorizzazioni o le policy corrette per gestire i cluster. SageMaker HyperPod Gli amministratori dei cluster devono inoltre creare ruoli IAM da fornire alle SageMaker HyperPod risorse da utilizzare per funzionare e comunicare con le AWS risorse necessarie, come Amazon S3, Amazon e (SSM). CloudWatch AWS Systems Manager Infine, l'amministratore dell' AWS account o gli amministratori del cluster devono concedere agli scienziati le autorizzazioni per accedere ai cluster ed eseguire carichi di lavoro ML. SageMaker HyperPod

A seconda dell’orchestratore scelto, le autorizzazioni necessarie per l’amministratore del cluster e i Data Scientist possono variare. Puoi anche controllare l’ambito delle autorizzazioni per varie azioni nei ruoli utilizzando le chiavi di condizione per ogni servizio. Utilizza i seguenti riferimenti all'autorizzazione dei servizi per aggiungere un ambito dettagliato per i servizi correlati a. SageMaker HyperPod

Autorizzazioni IAM per la creazione di cluster

La creazione di HyperPod cluster richiede le autorizzazioni IAM descritte nel seguente esempio di policy. Se Account AWS disponi AdministratorAccess delle autorizzazioni, queste autorizzazioni vengono concesse per impostazione predefinita.

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": "*" } ] }

Utenti IAM per l’amministratore del cluster

Gli amministratori dei cluster (amministratori) gestiscono e configurano i SageMaker HyperPod cluster, eseguendo le attività in. SageMaker HyperPod Operazioni del cluster Slurm Il seguente esempio di policy include il set minimo di autorizzazioni per gli amministratori dei cluster per eseguire le API SageMaker HyperPod principali e gestire i cluster all'interno dell'account. SageMaker HyperPod AWS

Nota

Gli utenti IAM con ruoli di amministratore del cluster possono utilizzare le chiavi di condizione per fornire un controllo granulare degli accessi quando gestiscono le risorse del SageMaker HyperPod cluster specificamente per le azioni e. CreateCluster UpdateCluster Per trovare le chiavi di condizione supportate per queste azioni, cerca CreateCluster o UpdateCluster nelle Azioni definite dall' SageMaker IA.

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": "*" } ] }

Per concedere le autorizzazioni per accedere alla console SageMaker AI, utilizza la policy di esempio fornita in Autorizzazioni richieste per utilizzare la console Amazon SageMaker AI.

Per concedere le autorizzazioni per accedere alla console Amazon EC2 Systems Manager, utilizza la policy di esempio fornita in Utilizzo della AWS Systems Manager console nella Guida per l'utente. AWS Systems Manager

Potresti anche considerare di allegare la AmazonSageMakerFullAccess policy al ruolo; tuttavia, tieni presente che la AmazonSageMakerFullAccess policy concede le autorizzazioni per tutte le chiamate, le funzionalità e le SageMaker risorse API.

Per indicazioni generali sugli utenti IAM, consulta IAM users in AWS Identity and Access Management User Guide.

Utenti IAM per Data Scientist

Gli scienziati accedono ed eseguono carichi di lavoro ML sui nodi del cluster forniti dagli SageMaker HyperPod amministratori del cluster. Agli scienziati registrati nel tuo AWS account, dovresti concedere l'autorizzazione "ssm:StartSession" per eseguire il comando SSM. start-session Di seguito è riportata una policy di esempio per gli utenti IAM.

Slurm

Aggiungi la policy seguente per concedere a un utente IAM le autorizzazioni di sessione SSM per connettersi a una destinazione SSM. Ciò consente di accedere ai HyperPod cluster.

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

Concedi ai data scientist le seguenti autorizzazioni per l'esecuzione dei ruoli IAM hyperpod list-clusters e hyperpod connect-cluster i comandi tra i comandi HyperPod CLI. Per saperne di più sulla HyperPod CLI, consulta. Esecuzione di processi su SageMaker HyperPod cluster orchestrati da Amazon EKS Include anche le autorizzazioni di sessione SSM per la connessione a una destinazione SSM per tutte le risorse. Ciò consente di accedere ai HyperPod cluster.

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": "*" } ] }

Per concedere ai Data Scientist l’accesso con ruoli o utenti IAM alle API Kubernetes nel cluster, consulta anche Grant IAM users and roles access to Kubernetes APIs in Amazon EKS User Guide.

Ruolo IAM per SageMaker HyperPod

SageMaker HyperPod Affinché i cluster possano funzionare e comunicare con AWS le risorse necessarie, è necessario creare un ruolo IAM che il HyperPod cluster possa assumere.

Inizia collegando la AWS politica gestita: AmazonSageMakerHyperPodServiceRolePolicy del ruolo gestito. In base AWS a questa politica gestita, i gruppi di istanze del SageMaker HyperPod cluster assumono il ruolo di comunicare con Amazon CloudWatch, Amazon S3 e AWS Systems Manager Agent (SSM Agent). Questa policy gestita è il requisito minimo per il corretto funzionamento SageMaker HyperPod delle risorse, pertanto è necessario fornire un ruolo IAM con questa policy a tutti i gruppi di istanze.

Suggerimento

A seconda delle preferenze in merito alla progettazione del livello di autorizzazioni per più gruppi di istanze, puoi anche configurare più ruoli IAM e collegarli a diversi gruppi di istanze. Quando si configura l'accesso utente del cluster a nodi specifici del SageMaker HyperPod cluster, i nodi assumono il ruolo con le autorizzazioni selettive allegate manualmente.

Quando configuri l’accesso per i Data Scientist a nodi specifici del cluster con AWS Systems Manager (vedi anche Configurazione AWS Systems Manager e Run As per il controllo degli accessi degli utenti del cluster), i nodi del cluster assumono il ruolo con le autorizzazioni selettive assegnate manualmente.

Dopo aver creato i ruoli IAM, prendi nota dei loro nomi e ARN. I ruoli vengono utilizzati durante la creazione di un SageMaker HyperPod cluster, concedendo le autorizzazioni corrette richieste a ciascun gruppo di istanze per comunicare con le risorse necessarie. AWS

Slurm

Per l' HyperPod orchestrazione con Slurm, è necessario allegare la seguente policy gestita al ruolo IAM. SageMaker HyperPod

(Facoltativo) Autorizzazioni aggiuntive per l'utilizzo con SageMaker HyperPod Amazon Virtual Private Cloud

Se desideri utilizzare il tuo Amazon Virtual Private Cloud (VPC) anziché il VPC SageMaker AI predefinito, devi aggiungere le seguenti autorizzazioni aggiuntive al ruolo IAM per. 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/*" ] }

L'elenco seguente descrive le autorizzazioni necessarie per abilitare le funzionalità del SageMaker HyperPod cluster quando configuri il cluster con il tuo Amazon VPC.

  • Le seguenti ec2 autorizzazioni sono necessarie per abilitare la configurazione di un cluster con il tuo VPC. SageMaker HyperPod

    { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }
  • È necessaria la seguente ec2 autorizzazione per abilitare la funzionalità di ripristino automatico. SageMaker HyperPod

    { "Effect": "Allow", "Action": [ "ec2:DetachNetworkInterface" ], "Resource": "*" }
  • La seguente ec2 autorizzazione consente di SageMaker HyperPod creare tag sulle interfacce di rete all'interno del tuo account.

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

Per essere HyperPod orchestrato con Amazon EKS, è necessario allegare le seguenti politiche gestite al SageMaker HyperPod ruolo IAM.

Oltre alle policy gestite, collega la policy di autorizzazione seguente al ruolo.

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/*" ] } ] }
Nota

L’autorizzazione "eks-auth:AssumeRoleForPodIdentity" è facoltativa. È necessaria se prevedi di utilizzare EKS Pod Identity.

SageMaker HyperPod ruolo collegato al servizio

Per il supporto di Amazon EKS in SageMaker HyperPod, HyperPod crea un ruolo collegato ai servizi AWS politica gestita: AmazonSageMakerHyperPodServiceRolePolicy per monitorare e supportare la resilienza sul cluster EKS, ad esempio sostituendo i nodi e riavviando i processi.

Policy IAM aggiuntive per i cluster Amazon EKS con Gruppo di istanze limitato (RIG)

I carichi di lavoro eseguiti in gruppi di istanze limitati si basano sul ruolo di esecuzione per caricare i dati da Amazon S3. Devi aggiungere le altre autorizzazioni Amazon S3 al ruolo di esecuzione in modo che i processi di personalizzazione in esecuzione nei gruppi di istanze limitati possano recuperare correttamente i dati di input.

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/*" ] } ] }