翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 AI リソースにタグ付けするためのアクセス許可を提供する」を参照してください。
SageMaker リソースを作成するためのアクセス許可を付与する AWS Amazon SageMaker AI の マネージドポリシー には、それらのリソースの作成中にタグを追加するためのアクセス許可もあらかじめ含まれています。
SageMaker HyperPod ユーザーには、クラスター管理者ユーザーとデータサイエンティストユーザーの の 2 つの主なレイヤーがあるとします。
-
クラスター管理者ユーザー – SageMaker HyperPod クラスターの作成と管理を担当します。これには、HyperPod クラスターの設定と、クラスターへのユーザーアクセスの管理が含まれます。
-
Slurm または Amazon EKS を使用して SageMaker HyperPod クラスターを作成して設定します。
-
データサイエンティストユーザーと HyperPod クラスターリソースの IAM ロールを作成して設定します。
-
Amazon EKS による SageMaker HyperPod オーケストレーションの場合、データサイエンスのユースケースを満たすために、EKS アクセスエントリ、ロールベースのアクセスコントロール(RBAC)、および Pod Identity を作成して設定します。
-
データサイエンティストユーザー — ML モデルトレーニングに焦点を当てます。オープンソースのオーケストレーターまたは SageMaker HyperPod CLI を使用して、トレーニングジョブを送信および管理します。
SageMaker HyperPod クラスターを操作するための適切なアクセス許可またはポリシーをアタッチして、クラスター管理者の IAM ロールを設定します。クラスター管理者は、Amazon S3、Amazon CloudWatch、(SSM) などの必要なリソースを実行および通信するために引き受ける SageMaker HyperPod リソースに提供する IAM ロールも作成する必要があります。 AWS Amazon S3 Amazon CloudWatch AWS Systems Manager 最後に、 AWS アカウント管理者またはクラスター管理者は、SageMaker HyperPod クラスターにアクセスして ML ワークロードを実行するアクセス許可をサイエンティストに付与する必要があります。
選択したオーケストレーターによっては、クラスター管理者とサイエンティストに必要なアクセス許可が異なる場合があります。サービスごとの条件キーを使用して、ロール内のさまざまなアクションのアクセス許可の範囲を制御することもできます。SageMaker HyperPod に関連するサービスの詳細な範囲を追加するには、次のサービス認証リファレンスを使用します。
クラスター管理者の IAM ユーザー
クラスター管理者 (管理者) は SageMaker HyperPod クラスターを操作および設定し、SageMaker HyperPod Slurm クラスターオペレーション でタスクを実行します。次のポリシー例には、クラスター管理者が SageMaker HyperPod コア API、 AWS
アカウント内で SageMaker HyperPod クラスターを管理するための最小限のアクセス許可のセットが含まれています。
クラスター管理者ロールを持つ IAM ユーザーは、 および CreateCluster
UpdateCluster
アクション専用の SageMaker HyperPod クラスターリソースを管理する際に、条件キーを使用してきめ細かなアクセスコントロールを提供できます。これらのアクションでサポートされている条件キーを見つけるには、SageMaker AI で定義されたアクションUpdateCluster
で CreateCluster
または を検索します。 SageMaker
- Slurm
-
JSON
- JSON
-
{
"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:aws-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:BatchDeleteClusterNodes",
"sagemaker:ListComputeQuotas",
"sagemaker:ListClusterSchedulerConfig",
"sagemaker:DeleteClusterSchedulerConfig",
"sagemaker:DeleteComputeQuota",
"eks:DescribeCluster",
"eks:CreateAccessEntry",
"eks:DescribeAccessEntry",
"eks:DeleteAccessEntry",
"eks:AssociateAccessPolicy",
"iam:CreateServiceLinkedRole"
],
"Resource": "*"
}
]
}
SageMaker AI コンソールへのアクセス許可を付与するには、Amazon SageMakerコンソールを使用するために必要なアクセス許可」に記載されているサンプルポリシーを使用します。
Amazon EC2 Systems Manager コンソールへのアクセス許可を付与するには、「 AWS Systems Manager ユーザーガイド」の「 AWS Systems Manager コンソールの使用」で提供されているサンプルポリシーを使用します。
また、AmazonSageMakerFullAccess ポリシーをロールにアタッチすることも検討できます。ただし、AmazonSageMakerFullAccess
ポリシーは SageMaker API コール、機能、リソース全体にアクセス許可を付与する点に注意してください。
IAM ユーザー全般のガイダンスについては、「AWS Identity and Access Management ユーザーガイド」の「IAM ユーザー」を参照してください。
サイエンティストの IAM ユーザー
サイエンティストがログインし、クラスター管理者によってプロビジョニングされた SageMaker HyperPod クラスターノードで ML ワークロードを実行します。 AWS アカウントの科学者には、SSM start-session
コマンドを実行する"ssm:StartSession"
アクセス許可を付与する必要があります。IAM ユーザーのポリシーの例を次に示します。
- Slurm
-
次のポリシーを追加して、すべてのリソースの SSM ターゲットに接続するための SSM セッションアクセス許可を付与します。これにより、HyperPod クラスターにアクセス可能になります。
JSON
- JSON
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:StartSession",
"ssm:TerminateSession"
],
"Resource": "*"
}
]
}
- Amazon EKS
-
データサイエンティストが HyperPod CLI コマンド間で hyperpod list-clusters
および hyperpod
connect-cluster
コマンドを実行するため、以下の IAM ロールのアクセス許可を付与します。HyperPod CLI の詳細については、「Amazon EKS によってオーケストレーションされた SageMaker HyperPod クラスターでジョブを実行する」を参照してください。また、すべてのリソースの 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 ユーザーまたはロールにクラスター内の Kubernetes API へのアクセスを付与するには、「Amazon EKS ユーザーガイド」の「IAM ユーザーおよびロールに Kubernetes API へのアクセスを付与する」も参照してください。
SageMaker HyperPod の IAM ロール
SageMaker HyperPod クラスターを実行して必要な AWS リソースと通信するには、HyperPod クラスターが引き受ける IAM ロールを作成する必要があります。
まず、マネージドロール AWS
マネージドポリシー: AmazonSageMakerHyperPodServiceRolePolicy をアタッチします。この AWS 管理ポリシーを考慮すると、SageMaker HyperPod クラスターインスタンスグループは、Amazon CloudWatch、Amazon S3、 AWS Systems Manager エージェント (SSM エージェント) と通信するロールを引き受けます。このマネージドポリシーは、SageMaker HyperPod リソースが正しく実行されるための最小要件であるため、このポリシーを持つ IAM ロールをすべてのインスタンスグループに提供する必要があります。
IAM ロールの作成が完了したら、そのロールの名前と ARN を書き留めます。SageMaker HyperPod クラスターを作成するときにロールを使用し、各インスタンスグループが必要な AWS リソースと通信するために必要な適切なアクセス許可を付与します。
- Slurm
-
Slurm とオーケストレーションされた HyperPod の場合、次の管理ポリシーを SageMaker HyperPod IAM ロールにアタッチする必要があります。
(オプション) Amazon Virtual Private Cloud で SageMaker HyperPod を使用するための追加のアクセス許可
デフォルトの SageMaker AI VPC の代わりに独自の Amazon Virtual Private Cloud (VPC) を使用する場合は、SageMaker HyperPod の IAM ロールに次のアクセス許可を追加する必要があります。
{
"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 VPC でクラスターを設定するときに SageMaker HyperPod クラスター機能を有効にするために必要なアクセス許可をまとめたものです。
-
VPC で SageMaker HyperPod クラスターの設定を有効にするには、次の ec2
アクセス許可が必要です。
{
"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 EKS とオーケストレーションされた HyperPod の場合、SageMaker HyperPod IAM ロールに次の管理ポリシーをアタッチする必要があります。
管理ポリシーに加えて、次のアクセス許可ポリシーをロールにアタッチします。
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/*"
]
}
]
}
"eks-auth:AssumeRoleForPodIdentity"
アクセス許可はオプションです。EKS Pod Identity を使用する予定の場合は必須です。
SageMaker HyperPod サービスにリンクされたロール
SageMaker HyperPod での Amazon EKS サポートの場合、HyperPod は AWS
マネージドポリシー: AmazonSageMakerHyperPodServiceRolePolicy を使用してサービスにリンクされたロールを作成し、ノードの交換やジョブの再起動など、EKS クラスターの回復性をモニタリングしてサポートします。
制限されたインスタンスグループ (RIG) を持つ Amazon EKS クラスターの追加 IAM ポリシー
制限されたインスタンスグループで実行されているワークロードは、Amazon S3 からデータをロードするために実行ロールに依存します。制限されたインスタンスグループで実行されているカスタマイズジョブが入力データを適切に取得できるように、実行ロールに Amazon S3 アクセス許可を追加する必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name
" ]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
],
"Resource": [
"arn:aws:s3:::your-bucket-name
/*"
]
}
]
}