翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ローカル Jupyter 環境にポリシーとアクセス許可をインストールする
ローカル Jupyter 環境でノートブックジョブをスケジュールするには、必要なアクセス許可とポリシーを設定する必要があります。IAM ユーザーには、SageMaker AI にジョブを送信するアクセス許可が必要です。また、ノートブックジョブ自体が引き受ける IAM ロールには、ジョブタスクに応じて、 リソースにアクセスするためのアクセス許可が必要です。以下では、必要なアクセス許可とポリシーを設定する方法について説明します。
2 セットのアクセス許可をインストールする必要があります。次の図は、ローカル Jupyter 環境でノートブックジョブをスケジュールするためのアクセス許可構造を説明しています。SageMaker AI にジョブを送信するには、IAM ユーザーが IAM アクセス許可を設定する必要があります。ユーザーがノートブックジョブを送信すると、ノートブックジョブ自体が IAM ロールを引き受けます。このロールには、ジョブタスクに応じてリソースにアクセスするためのアクセス許可があります。
![ユーザーが必要とする IAM アクセス許可とノートブック実行のジョブが引き受ける IAM ロール](images/notebook-jobs-permissions.png)
以下のセクションでは、IAM ユーザーとジョブ実行ロールの両方に必要なポリシーとアクセス許可をインストールするのに役立ちます。
IAM ユーザー許可
SageMaker AI にジョブを送信するアクセス許可
ジョブを送信する許可を追加するには、次の手順を実行します。
-
[IAM コンソール]
を開きます。 -
左のパネルの [ユーザー] を選択します。
-
ノートブックジョブの IAM ユーザーを検索し、ユーザー名を選択します。
-
[アクセス許可の追加] と [インラインポリシーを作成] の順に選択します。
-
[JSON] タブを選択します。
-
以下のポリシーをコピーして、貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EventBridgeSchedule", "Effect": "Allow", "Action": [ "events:TagResource", "events:DeleteRule", "events:PutTargets", "events:DescribeRule", "events:EnableRule", "events:PutRule", "events:RemoveTargets", "events:DisableRule" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true" } } }, { "Sid": "IAMPassrole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringLike": { "iam:PassedToService": [ "sagemaker.amazonaws.com", "events.amazonaws.com" ] } } }, { "Sid": "IAMListRoles", "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "*" }, { "Sid": "S3ArtifactsAccess", "Effect": "Allow", "Action": [ "s3:PutEncryptionConfiguration", "s3:CreateBucket", "s3:PutBucketVersioning", "s3:ListBucket", "s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:DeleteObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::sagemaker-automated-execution-*" ] }, { "Sid": "S3DriverAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::sagemakerheadlessexecution-*" ] }, { "Sid": "SagemakerJobs", "Effect": "Allow", "Action": [ "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob", "sagemaker:DescribePipeline", "sagemaker:CreateTrainingJob", "sagemaker:DeletePipeline", "sagemaker:CreatePipeline" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true" } } }, { "Sid": "AllowSearch", "Effect": "Allow", "Action": "sagemaker:Search", "Resource": "*" }, { "Sid": "SagemakerTags", "Effect": "Allow", "Action": [ "sagemaker:ListTags", "sagemaker:AddTags" ], "Resource": [ "arn:aws:sagemaker:*:*:pipeline/*", "arn:aws:sagemaker:*:*:space/*", "arn:aws:sagemaker:*:*:training-job/*", "arn:aws:sagemaker:*:*:user-profile/*" ] }, { "Sid": "ECRImage", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchGetImage" ], "Resource": "*" } ] }
AWS KMS アクセス許可ポリシー (オプション)
デフォルトでは、入出力の Amazon S3 バケットはサーバー側の暗号化を使用して暗号化されますが、カスタム KMS キーを指定して、出力 Amazon S3 バケットとノートブックジョブにアタッチされたストレージボリュームのデータを暗号化できます。
カスタム KMS キーを使用する場合は、前の手順を繰り返し、次のポリシーをアタッチして独自の KMS キー ARN を指定します。
{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Action":[ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant" ], "Resource":"your_KMS_key_ARN" } ] }
ジョブ実行ロールのアクセス許可
信頼関係
ジョブ実行ロールの信頼関係を変更するには、次の手順を実行します。
-
[IAM コンソール]
を開きます。 -
左側のパネルの [ロール] を選択します。
-
ノートブックジョブのジョブ実行ロールを検索し、ロール名を選択します。
-
[信頼関係] タブを選択します。
-
[信頼ポリシーを編集] を選択します。
-
以下のポリシーをコピーして、貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
追加のアクセス許可
送信されたノートブックジョブには、リソースにアクセスするためのアクセス許可が必要です。次の手順は、最小限のアクセス許可セットを追加する方法を示します。必要に応じて、ノートブックジョブのニーズに基づいてさらにアクセス許可を追加します。ジョブ実行ロールにアクセス許可を追加するには、次の手順を実行します。
-
[IAM コンソール]
を開きます。 -
左側のパネルの [ロール] を選択します。
-
ノートブックジョブのジョブ実行ロールを検索し、ロール名を選択します。
-
[アクセス許可の追加] と [インラインポリシーを作成] の順に選択します。
-
[JSON] タブを選択します。
-
以下のポリシーをコピーして、貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassroleForJobCreation", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringLike": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Sid": "S3ForStoringArtifacts", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::sagemaker-automated-execution-*" }, { "Sid": "S3DriverAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::sagemakerheadlessexecution-*" ] }, { "Sid": "SagemakerJobs", "Effect": "Allow", "Action": [ "sagemaker:StartPipelineExecution", "sagemaker:CreateTrainingJob" ], "Resource": "*" }, { "Sid": "ECRImage", "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability" ], "Resource": "*" } ] }
-
ノートブックジョブがアクセスする他のリソースにアクセス許可を追加します。
-
[ポリシーの確認] を選択します。
-
ポリシーの名前を入力します。
-
[Create policy] を選択します。