Studio のポリシーとアクセス許可を設定する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Studio のポリシーとアクセス許可を設定する

最初のノートブック実行をスケジュールする前に、適切なポリシーとアクセス許可をインストールする必要があります。以下は、次のアクセス許可を設定する手順です。

  • ジョブ実行ロールの信頼関係

  • ジョブ実行ロールにアタッチされた追加のIAMアクセス許可

  • (オプション) カスタムKMSキーを使用するための AWS KMS アクセス許可ポリシー

重要

AWS アカウントがサービスコントロールポリシー (SCP) が整備されている組織に属している場合、有効なアクセス許可は、 によって許可されるものと、IAMロールおよびユーザーポリシーによって許可されるSCPsものとの間の論理的な交差点です。例えば、組織が us-east-1および のリソースにのみアクセスできることをSCP指定しus-west-1、ポリシーで us-west-1および のリソースにのみアクセスできる場合はus-west-2、最終的には のリソースにのみアクセスできますus-west-1。ロールおよびユーザーポリシーで許可されているすべてのアクセス許可を行使する場合は、組織の が独自のIAMユーザーおよびロールポリシーと同じアクセス許可のセットを付与SCPsする必要があります。許可されるリクエストを確認する方法の詳細については、「Determining whether a request is allowed or denied within an account」を参照してください。

信頼関係

信頼関係を変更するには、次の手順を実行します。

  1. IAM コンソール を開きます。

  2. 左側のパネルの [ロール] を選択します。

  3. ノートブックジョブのジョブ実行ロールを検索し、ロール名を選択します。

  4. [信頼関係] タブを選択します。

  5. [信頼ポリシーを編集] を選択します。

  6. 以下のポリシーをコピーして、貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  7. [[ポリシーの更新] を選択します。

追加のIAMアクセス許可

以下の状況では、追加のIAMアクセス許可を含める必要がある場合があります。

  • Studio の実行ロールとノートブックジョブのロールは異なる

  • Amazon S3S3 リソースにアクセスする必要があります VPC

  • カスタムKMSキーを使用してAmazon S3バケットの入力と出力を暗号化したい

以下の説明では、それぞれのケースに必要なポリシーについて取り上げます。

Studio の実行ロールとノートブックジョブのロールが異なる場合に必要なアクセス許可

次のJSONスニペットは、Studio 実行ロールをノートブックジョブロールとして使用しない場合に Studio 実行ロールとノートブックジョブロールに追加する必要があるポリシーの例です。権限をさらに制限する必要がある場合は、このポリシーを確認して変更してください。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::*:role/*", "Condition":{ "StringLike":{ "iam:PassedToService":[ "sagemaker.amazonaws.com", "events.amazonaws.com" ] } } }, { "Effect":"Allow", "Action":[ "events:TagResource", "events:DeleteRule", "events:PutTargets", "events:DescribeRule", "events:PutRule", "events:RemoveTargets", "events:DisableRule", "events:EnableRule" ], "Resource":"*", "Condition":{ "StringEquals":{ "aws:ResourceTag/sagemaker:is-scheduling-notebook-job":"true" } } }, { "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:PutBucketVersioning", "s3:PutEncryptionConfiguration" ], "Resource":"arn:aws:s3:::sagemaker-automated-execution-*" }, { "Sid": "S3DriverAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::sagemakerheadlessexecution-*" ] }, { "Effect":"Allow", "Action":[ "sagemaker:ListTags" ], "Resource":[ "arn:aws:sagemaker:*:*:user-profile/*", "arn:aws:sagemaker:*:*:space/*", "arn:aws:sagemaker:*:*:training-job/*", "arn:aws:sagemaker:*:*:pipeline/*" ] }, { "Effect":"Allow", "Action":[ "sagemaker:AddTags" ], "Resource":[ "arn:aws:sagemaker:*:*:training-job/*", "arn:aws:sagemaker:*:*:pipeline/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetEncryptionConfiguration", "s3:PutObject", "s3:DeleteObject", "s3:GetObject", "sagemaker:DescribeApp", "sagemaker:DescribeDomain", "sagemaker:DescribeUserProfile", "sagemaker:DescribeSpace", "sagemaker:DescribeStudioLifecycleConfig", "sagemaker:DescribeImageVersion", "sagemaker:DescribeAppImageConfig", "sagemaker:CreateTrainingJob", "sagemaker:DescribeTrainingJob", "sagemaker:StopTrainingJob", "sagemaker:Search", "sagemaker:CreatePipeline", "sagemaker:DescribePipeline", "sagemaker:DeletePipeline", "sagemaker:StartPipelineExecution" ], "Resource":"*" } ] }

SAmazon S3S3 リソースにアクセスするために必要なアクセス許可 VPC

Studio SageMaker をプライベートVPCモードで実行し、S3 VPCエンドポイントを介して S3 にアクセスする場合は、VPCエンドポイントポリシーにアクセス許可を追加して、VPCエンドポイントを介してアクセスできる S3 リソースを制御できます。VPC エンドポイントポリシーに次のアクセス許可を追加します。アクセス許可をさらに制限する必要がある場合 (例えば、Principal フィールドの仕様を絞り込むなど)、ポリシーを変更できます。

{ "Sid": "S3DriverAccess", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::sagemakerheadlessexecution-*" }

S3 VPCエンドポイントポリシーを設定する方法の詳細については、VPC「エンドポイントポリシーの編集」を参照してください。

カスタムKMSキーを使用するために必要なアクセス許可 (オプション)

デフォルトでは、入力と出力の Amazon S3 バケットはサーバー側の暗号化を使用して暗号化されますが、出力の Amazon S3 バケット内のデータを暗号化するカスタムKMSキーとノートブックジョブにアタッチされたストレージボリュームを指定できます。

カスタム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" } ] }