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 Studio または Amazon SageMaker Studio Classic が Amazon SageMaker リソースを作成できるようにするカスタムIAMポリシーでは、それらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要です。IAM ポリシーで Studio と Studio Classic がリソースの作成を許可されていてもタグ付けが許可されていない場合、リソースの作成時にAccessDenied「」エラーが発生する可能性があります。詳細については、「リソースにタグ付けするための SageMakerアクセス許可を提供する」を参照してください。

AWS Amazon の マネージドポリシー SageMaker SageMaker リソースを作成するアクセス許可を付与する には、それらのリソースの作成中にタグを追加するアクセス許可が既に含まれています。

クラスター管理者 SageMaker HyperPod ユーザーとデータサイエンティストユーザーの 2 つの主なレイヤーがあるとします。

  • クラスター管理者ユーザー – SageMaker HyperPod クラスターの作成と管理を担当します。これには、 HyperPod クラスターの設定とクラスターへのユーザーアクセスの管理が含まれます。

    • Slurm または Amazon を使用して SageMaker HyperPod クラスターを作成して設定しますEKS。

    • データサイエンティストユーザーと HyperPod クラスターリソースのIAMロールを作成して設定します。

    • Amazon との SageMaker HyperPod オーケストレーションではEKS、データサイエンスのユースケースを満たすために、EKSアクセスエントリ ロールベースのアクセスコントロール (RBAC)、ポッドアイデンティティ を作成して設定します。

  • データサイエンティストユーザー - ML モデルトレーニングに焦点を当てます。オープンソースのオーケストレーターまたは SageMaker HyperPod CLIを使用して、トレーニングジョブを送信および管理します。

    • クラスター管理者ユーザーが提供するIAMロールを引き受けて使用します。

    • (Slurm または Kubernetes) または でCLIs SageMaker HyperPodサポートされているオープンソースのオーケストレーターとやり取りして、クラスターの容量の確認、クラスターへの接続、ワークロードの送信を行います SageMaker HyperPod CLI。

クラスターを運用するための適切なアクセス許可またはポリシーをアタッチして、 SageMaker HyperPod クラスター管理者のIAMロールを設定します。クラスター管理者は、必要な を実行および通信するために引き受ける SageMaker HyperPod リソースに提供するIAMロールも作成する必要があります。 AWS Amazon S3、Amazon 、 CloudWatchなどの リソース AWS Systems Manager (SSM)。最後に、 AWS アカウント管理者またはクラスター管理者は、 SageMaker HyperPod クラスターにアクセスして ML ワークロードを実行するアクセス許可をサイエンティストに付与する必要があります。

選択したオーケストレーターによって、クラスター管理者とサイエンティストに必要なアクセス許可が異なる場合があります。サービスごとの条件キーを使用して、ロール内のさまざまなアクションのアクセス許可の範囲を制御することもできます。に関連するサービスの詳細なスコープを追加するには、次のサービス認証リファレンスを使用します SageMaker HyperPod。

IAM クラスター管理者の ユーザー

クラスター管理者 (管理者) は SageMaker HyperPod クラスターを操作および設定し、 でタスクを実行しますSlurm によってオーケストレーションされた 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 クラスター管理者によってプロビジョニングされたクラスターノードで ML ワークロードを実行します。のサイエンティスト向け AWS アカウント、 SSM start-session コマンドを実行する"ssm:StartSession"アクセス許可を付与する必要があります。IAM ユーザーのポリシーの例を次に示します。

Slurm

次のポリシーを追加して、すべてのリソースの SSM ターゲットに接続するためのSSMセッションアクセス許可を付与します。これにより、クラスターにアクセスできます HyperPod。

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

データサイエンティストが hyperpod connect-cluster コマンド間で hyperpod list-clustersおよび コマンドを実行するためのアクセス許可を次のIAMロールに付与します 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ユーザーまたはロールにクラスターAPIs内の Kubernetes へのアクセスを許可するには、「Amazon ユーザーガイド」のIAM「ユーザーとロールに Kubernetes へのアクセスを許可するAPIs」も参照してください。 EKS

IAM の ロール SageMaker HyperPod

SageMaker HyperPod クラスターを実行して必要な と通信するには AWS リソースでは、 HyperPod クラスターが引き受ける IAMロールを作成する必要があります。

まず、 マネージドロール をアタッチしますAWS マネージドポリシー: AmazonSageMakerHyperPodServiceRolePolicy。これを指定する AWS マネージドポリシー、 SageMaker HyperPod クラスターインスタンスグループは、Amazon 、Amazon S3 CloudWatch、および と通信するロールを引き受けます。 AWS Systems Manager エージェント (SSM エージェント)。この管理ポリシーは、 SageMaker HyperPod リソースが正しく実行されるための最小要件であるため、このポリシーを持つ IAMロールをすべてのインスタンスグループに提供する必要があります。

ヒント

複数のインスタンスグループのアクセス許可のレベルを設計することの設定に応じて、複数のIAMロールを設定し、異なるインスタンスグループにアタッチすることもできます。特定のクラスターノードへの SageMaker HyperPod クラスターユーザーアクセスを設定すると、ノードは手動でアタッチした選択的なアクセス許可を持つロールを引き受けます。

サイエンティストが を使用して特定のクラスターノードにアクセスできるようにする場合 AWS Systems Manager (「」も参照設定 AWS Systems Manager クラスターユーザーアクセスコントロールの および Run As)、クラスターノードは、手動でアタッチした選択的なアクセス許可を持つロールを引き受けます。

IAM ロールの作成が完了したら、その名前と をメモしますARNs。 SageMaker HyperPod クラスターの作成時にロールを使用し、各インスタンスグループが必要な と通信するために必要な適切なアクセス許可を付与します。 AWS リソースの使用料金を見積もることができます。

Slurm

Slurm で HyperPod オーケストレーションされている場合は、次の 管理ポリシーをロールに SageMaker HyperPod IAMアタッチする必要があります。

(オプション) Amazon Virtual Private Cloud SageMaker HyperPod で を使用するための追加のアクセス許可

デフォルトの SageMaker の代わりに独自の Amazon Virtual Private Cloud (VPC) を使用する場合はVPC、 の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。

  • で SageMaker HyperPod クラスターの設定を有効にするには、次のec2アクセス許可が必要です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"許可はオプションです。これは、ポッド ID EKS を使用する予定がある場合に必要です。

SageMaker HyperPod サービスにリンクされたロール

での Amazon EKS サポートの場合 SageMaker HyperPod、 は を使用してサービスにリンクされたロール HyperPod を作成しAWS マネージドポリシー: AmazonSageMakerHyperPodServiceRolePolicy、ノードの置き換えやジョブの再起動など、EKSクラスターの障害耐性をモニタリングしてサポートします。

IAM Amazon の ポリシー EKS