翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker ロール
Amazon SageMaker は、 AWS 他のサービスを使用してお客様に代わって操作を実行します。これらのサービスとサービスの対象となるリソースを使用するには、 SageMaker アクセス権限を付与する必要があります。 SageMakerこれらのアクセス権限は AWS Identity and Access Management (IAM) 実行ロールを使用して付与します。IAM ロールの詳細については、「IAM ロール」を参照してください。
実行ロールを作成して使用するには、以下の手順を実行します。
実行ロールを作成する
以下の手順を実行して、IAM 管理ポリシー AmazonSageMakerFullAccess
をアタッチした実行ロールを作成します。詳細なアクセス許可が必要なユースケースの場合は、このページの他のセクションを使用して、ビジネスニーズを満たす実行ロールを作成します。実行ロールは、 SageMakerコンソールまたはを使用して作成できます。 AWS CLI
重要
以下の手順で使用されている IAM 管理ポリシー AmazonSageMakerFullAccess
では、名前に SageMaker
、Sagemaker
、sagemaker
、aws-glue
を持つ特定の Amazon S3 アクションをバケットまたはオブジェクトで実行するアクセス許可のみが実行ロールに付与されます。実行ロールにポリシーを追加して、他の Amazon S3 バケットやオブジェクトへのアクセス権を付与する方法については、「 SageMaker 実行ロールに追加の Amazon S3 アクセス権限を追加する」を参照してください。
注記
SageMaker ドメインまたはノートブックインスタンスを作成するときに、実行ロールを直接作成できます。
-
SageMaker ドメインの作成方法については、を参照してくださいIAM アイデンティティセンターを使用した Amazon SageMaker ドメインへのカスタムオンボーディング。
-
ノートブックインスタンスを作成する方法については、「ステップ 1: Amazon SageMaker ノートブックインスタンスを作成する」を参照してください。
SageMakerコンソールから新しい実行ロールを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
[Roles] (ロール)、[Create role] (ロールの作成) の順に選択します。
-
AWS service を Trusted エンティティタイプのままにし、SageMaker AWS 下矢印を使用して他のサービスのユースケースを検索します。
-
[SageMaker — 実行] を選択し、[次へ] を選択します。
-
IAM マネージドポリシー
AmazonSageMakerFullAccess
は、ロールに自動的にアタッチされます。このポリシーに含まれるアクセス許可を表示するには、ポリシー名の横にあるプラス (+) 記号を選択します。[次へ] を選択します。 -
[ロール名] と [説明] を入力します。
-
(オプション) ロールにアクセス許可とタグを追加します。
-
[ロールの作成] を選択します。
-
IAM コンソールの [ロール] セクションで、先ほど作成したロールを検索します。必要に応じて、テキストボックスを使用してロール名でロールを検索します。
-
ロールの概要ページにある ARN を書き留めておきます。
から新しい実行ロールを作成するには AWS CLI
を使用して実行ロールを作成する前に AWS CLI、に記載されている手順に従って実行ロールを更新および設定してからAWS CLI 前提条件、の手順に進んでくださいからオンボーディングします。 AWS CLI。
実行ロールを作成したら、 SageMaker それをドメイン、ユーザープロファイル、または Jupyter Notebook インスタンスに関連付けることができます。
-
SageMaker実行ロールを既存のドメインに関連付ける方法については、を参照してください。ドメイン設定を編集します。
-
実行ロールを既存のユーザープロファイルに関連付ける方法については、「ユーザープロファイルの追加と削除」を参照してください。
-
実行ロールを既存のノートブックインスタンスに関連付ける方法については、「ノートブックインスタンスを更新する」を参照してください。
実行ロールの ARN を API コールに渡すこともできます。たとえば、Amazon SageMaker Python SDK
import sagemaker, boto3 from sagemaker import image_uris sess = sagemaker.Session() region = sess.boto_region_name bucket = sess.default_bucket() prefix = "sagemaker/DEMO-xgboost-churn" container = sagemaker.image_uris.retrieve("xgboost", region, "1.7-1") xgb = sagemaker.estimator.Estimator( container,
execution-role-ARN
, instance_count=1, instance_type="ml.m4.xlarge", output_path="s3://{}/{}/output".format(bucket, prefix), sagemaker_session=sess, ) ...
SageMaker 実行ロールに追加の Amazon S3 アクセス権限を追加する
Amazon S3 内のリソース (入力データなど) SageMaker で機能を使用する場合、リクエストで指定した実行ロール (たとえばCreateTrainingJob
) を使用してこれらのリソースにアクセスします。
IAM 管理ポリシー AmazonSageMakerFullAccess
を実行ロールにアタッチすると、そのロールには、名前に SageMaker
、Sagemaker
、sagemaker
、aws-glue
を持つ特定の Amazon S3 アクションをバケットやオブジェクトで実行するためのアクセス許可が付与されます。また、Amazon S3 リソースで以下のアクションを実行するアクセス許可が付与されます。
"s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors"
Amazon S3 の 1 つ以上の特定のバケットにアクセスするためのアクセス許可を実行ロールに付与するには、以下のようなポリシーをロールにアタッチします。このポリシーは、AmazonSageMakerFullAccess
が許可するすべてのアクションを実行するアクセス許可を IAM ロールに付与しますが、アクセスはバケット DOC-EXAMPLE-BUCKET1
と DOC-EXAMPLE-BUCKET2
に制限されます。 SageMaker その機能に必要な Amazon S3 権限の詳細については、使用している特定の機能のセキュリティドキュメントを参照してください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::
", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::
DOC-EXAMPLE-BUCKET2
/*", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] } ] }
DOC-EXAMPLE-BUCKET2
実行ロールを取得する
SageMaker コンソールまたはを使用して、 SageMaker ドメイン、ユーザープロファイル、またはノートブックインスタンスにアタッチされた実行ロールの ARN を取得できます。 AWS CLI
-
SageMaker ドメインにアタッチされている IAM 実行ロールの ARN を確認するには、を参照してください。ドメインを表示および編集します。
-
ユーザープロファイルにアタッチされている IAM 実行ロールの ARN を確認するには、「ユーザープロファイルとユーザープロファイルの詳細の表示」を参照してください。
-
ノートブックインスタンスにアタッチされている IAM 実行ロールの ARN を確認するには、以下を実行します。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
左側のナビゲーションペインで、[ノートブック]、[ノートブックインスタンス] の順に選択します。
-
ノートブックのリストから、表示するノートブックを選択します。
-
ARN は [アクセス許可と暗号化] セクションにあります。
または、Amazon SageMaker Python SDK
import sagemaker sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role()
注記
実行ロールは、 SageMaker内でノートブックを実行している場合にのみ使用できます。get_execution_role
起動していないノートブックで実行すると SageMaker、「リージョン」エラーが発生することが予想されます。
ロールを渡す
サービス間でロールを渡すなどのアクションは、 SageMaker内部の一般的な機能です。のアクション、リソース、条件キーの詳細については SageMaker、 IAM ユーザーガイドを参照してください。
API 呼び出しを行う際にはCreateAutoMLJob
、、、、、、、、CreateCompilationJob
CreateDomain
、CreateFeatureGroup
、CreateFlowDefiniton
、CreateHyperParameterTuningJob
、CreateImage
、CreateLabelingJob
、CreateModel
、CreateMonitoringSchedule
CreateNotebookInstance
CreateProcessingJob
CreateTrainingJob
CreateUserProfile
RenderUiTemplate
UpdateImage
、というロール (iam:PassRole
) を渡します。UpdateNotebookInstance
IAM ロールに次の信頼ポリシーをアタッチします。これにより、 SageMaker そのロールを引き受けるためのプリンシパルアクセス権限が付与されます。この信頼ポリシーはすべての実行ロールで同じです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
ロールに付与する必要があるアクセス許可は、呼び出す API によって異なります。以下のセクションでは、これらのアクセス許可について説明します。
注記
アクセス権限ポリシーを作成してアクセス権限を管理する代わりに、 AWS-managed AmazonSageMakerFullAccess
アクセス権限ポリシーを使用できます。このポリシーの権限はかなり幅広く、実行したいアクションをすべて許可しています。 SageMaker多くのアクセス許可を付与する理由に関する情報を含むポリシーのリストについては、「AWS 管理ポリシー: AmazonSageMakerFullAccess」を参照してください。カスタムポリシーを作成してアクセス許可を管理し、実行ロールで実行する必要があるアクションにのみアクセス許可を適用する場合は、以下のトピックを参照してください。
重要
問題が発生した場合は、「Amazon SageMaker ID とアクセスのトラブルシューティング」を参照してください。
IAM ロールの詳細については、IAM ユーザーガイドのIAM ロールを参照してください。
トピック
CreateAutoMLJob API: 実行ロールのアクセス許可
CreateAutoMLJob
API リクエストで渡すことのできる実行ロールについては、次の最小アクセス許可ポリシーをロールにアタッチできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:InvokeEndpoint", "sagemaker:ListTags", "sagemaker:DescribeEndpoint", "sagemaker:CreateModel", "sagemaker:CreateEndpointConfig", "sagemaker:CreateEndpoint", "sagemaker:DeleteModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteEndpoint", "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
AutoML ジョブにプライベート VPC を指定する場合、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
KMS AWS 管理キー (SSE-KMS) によるサーバー側の暗号化 (SSE-KMS) を使用して入力を暗号化する場合は、次の権限を追加します。
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }
AutoML ジョブの出力設定に KMS キーを指定する場合、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }
AutoML ジョブのリソース設定にボリューム KMS キーを指定する場合、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }
CreateDomain API: 実行ロール権限
API AWS KMS リクエストでカスタマー管理キーを渡す場合、IAM Identity Center を使用するドメインの実行ロールと IAM ドメインのユーザー/実行ロールには次の権限が必要です。KmsKeyId
CreateDomain
アクセス許可は、CreateApp
API コールの際に適用されます。
CreateDomain
API リクエストで渡すことのできる実行ロールについては、次のアクセス許可ポリシーをロールにアタッチできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
region
:account-id
:key/kms-key-id
" } ] }
また、アクセス許可が KMS ポリシーで指定されている場合は、以下のポリシーをロールにアタッチできます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
account-id
:role/ExecutionRole
" ] }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }
CreateImage および UpdateImage API: 実行ロール権限
CreateImage
または UpdateImage
API リクエストで渡すことのできる実行ロールについては、以下のアクセス許可ポリシーをロールにアタッチできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }
CreateNotebookInstance API: 実行ロール権限
CreateNotebookInstance
API を呼び出すために実行ロールに付与されるアクセス許可は、ノートブックインスタンスで行う予定の作業によって異なります。API の呼び出しに使用し、 SageMaker および API を呼び出すときに同じロールを渡す場合は、以下のアクセス権限ポリシーをロールにアタッチしてください。CreateTrainingJob
CreateModel
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage", "ecr:CreateRepository", "cloudwatch:PutMetricData", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "s3:CreateBucket", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication", "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob", "ec2:CreateVpcEndpoint", "ec2:DescribeRouteTables", "elasticfilesystem:DescribeMountTargets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }
アクセス許可を絞り込むには、次のように "Resource": "*"
を制限することで、アクセス許可を特定の Amazon S3 リソースや Amazon ECR リソースに限定します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "cloudwatch:PutMetricData", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::
inputbucket
/object1
", "arn:aws:s3:::outputbucket
/path
", "arn:aws:s3:::inputbucket
/object2
", "arn:aws:s3:::inputbucket
/object3
" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:region
::repository/my-repo1
", "arn:aws:ecr:region
::repository/my-repo2
", "arn:aws:ecr:region
::repository/my-repo3
" ] } ] }
Amazon DynamoDB や Amazon Relational Database Service などの他のリソースにアクセスする場合は、関連するアクセス許可をこのポリシーに追加します。
上記のポリシーでは、ポリシーの適用範囲を次のように指定します。
-
s3:ListBucket
アクセス許可の適用範囲を、InputDataConfig.DataSource.S3DataSource.S3Uri
リクエストでCreateTrainingJob
として指定した特定のバケットに設定します。 -
s3:GetObject
、s3:PutObject
、およびs3:DeleteObject
アクセス許可の範囲を次のように設定します。-
CreateTrainingJob
リクエストで指定する以下の値に範囲を設定します。InputDataConfig.DataSource.S3DataSource.S3Uri
OutputDataConfig.S3OutputPath
-
CreateModel
リクエストで指定する以下の値に範囲を設定します。PrimaryContainer.ModelDataUrl
SuplementalContainers.ModelDataUrl
-
-
ecr
アクセス許可の範囲を次のように設定します。-
AlgorithmSpecification.TrainingImage
リクエストで指定するCreateTrainingJob
値に範囲を設定します。 -
PrimaryContainer.Image
リクエストで指定するCreateModel
値に範囲を設定します。
-
cloudwatch
および logs
アクションは "*" リソースに適用できます。詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch リソースとオペレーション」を参照してください。
CreateHyperParameterTuningJob API: 実行ロール権限
CreateHyperParameterTuningJob
API リクエストで渡すことのできる実行ロールについては、次のアクセス許可ポリシーをロールにアタッチできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
指定する代わりに"Resource": "*"
、これらのアクセス権限を特定のAmazon S3、Amazon ECR、および Amazon CloudWatch Logs リソースにスコープすることもできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
inputbucket
" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket
/object
", "arn:aws:s3:::outputbucket
/path
" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region
::repository/my-repo
" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs*" } ] }
ハイパーパラメータチューニングジョブに関連付けられているトレーニングコンテナが、DynamoDB リソースや Amazon RDS リソースなどの他のデータソースにアクセスする必要がある場合、このポリシーに適切なアクセス許可を追加します。
上記のポリシーでは、ポリシーの適用範囲を次のように指定します。
-
s3:ListBucket
アクセス許可の範囲を、InputDataConfig.DataSource.S3DataSource.S3Uri
リクエストでCreateTrainingJob
として指定した特定のバケットに設定します。 -
s3:GetObject
およびs3:PutObject
アクセス許可の範囲を、CreateHyperParameterTuningJob
リクエストの入力および出力データ設定で指定する次のオブジェクトに設定します。InputDataConfig.DataSource.S3DataSource.S3Uri
OutputDataConfig.S3OutputPath
-
Amazon ECR アクセス許可の範囲を、
CreateHyperParameterTuningJob
リクエストで指定するレジストリパス (AlgorithmSpecification.TrainingImage
) に設定します。 -
Amazon CloudWatch Logs のアクセス権限の範囲を、 SageMaker トレーニングジョブのグループをログに記録します。
cloudwatch
アクションは "*" リソースに適用できます。詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch リソースとオペレーション」を参照してください。
ハイパーパラメータ調整ジョブにプライベート VPC を指定する場合は、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
KMS AWS が管理するキー (SSE-KMS) によるサーバー側の暗号化 (SSE-KMS) を使用して入力が暗号化されている場合は、次の権限を追加します。
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }
ハイパーパラメータの調整ジョブの出力設定に KMS キーを指定する場合は、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }
ハイパーパラメータの調整ジョブのリソース設定にボリューム KMS キーを指定する場合は、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }
CreateProcessingJob API: 実行ロール権限
CreateProcessingJob
API リクエストで渡すことのできる実行ロールについては、次のアクセス許可ポリシーをロールにアタッチできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
"Resource": "*"
を指定する代わりに、これらのアクセス許可の範囲を特定の Amazon S3 リソースおよび Amazon ECR リソースに設定できます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
inputbucket
" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket
/object
", "arn:aws:s3:::outputbucket
/path
" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region
::repository/my-repo
" } ] }
CreateProcessingJob.AppSpecification.ImageUri
が DynamoDB リソースや Amazon RDS リソースなどの他のデータソースにアクセスする必要がある場合は、関連するアクセス許可をこのポリシーに追加します。
上記のポリシーでは、ポリシーの適用範囲を次のように指定します。
-
s3:ListBucket
アクセス許可の範囲を、ProcessingInputs
リクエストでCreateProcessingJob
として指定した特定のバケットに設定します。 -
s3:GetObject
およびs3:PutObject
アクセス許可の範囲を、CreateProcessingJob
リクエストのProcessingInputs
およびProcessingOutputConfig
でダウンロードもしくはアップロードされるオブジェクトに設定します。 -
Amazon ECR アクセス許可の範囲を、
CreateProcessingJob
リクエストで指定するレジストリパス (AppSpecification.ImageUri
) に設定します。
cloudwatch
および logs
アクションは "*" リソースに適用できます。詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch リソースとオペレーション」を参照してください。
処理ジョブにプライベート VPC を指定する場合は、次のアクセス許可を追加します。ポリシーの範囲に条件やリソースフィルターを含めないでください。そうしないと、処理ジョブの作成中に行われる検証チェックが失敗します。
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
KMS AWS が管理するキー (SSE-KMS) によるサーバー側の暗号化 (SSE-KMS) を使用して入力が暗号化されている場合は、次の権限を追加します。
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }
処理ジョブの出力設定に KMS キーを指定する場合は、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }
処理ジョブのリソース設定でボリューム KMS キーを指定する場合は、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }
CreateTrainingJob API: 実行ロール権限
CreateTrainingJob
API リクエストで渡すことのできる実行ロールについては、次のアクセス許可ポリシーをロールにアタッチできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
"Resource": "*"
を指定する代わりに、これらのアクセス許可の範囲を特定の Amazon S3 リソースおよび Amazon ECR リソースに設定できます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
inputbucket
" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket
/object
", "arn:aws:s3:::outputbucket
/path
" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region
::repository/my-repo
" } ] }
CreateTrainingJob.AlgorithSpecifications.TrainingImage
が DynamoDB リソースや Amazon RDS リソースなどの他のデータソースにアクセスする必要がある場合は、関連するアクセス許可をこのポリシーに追加します。
上記のポリシーでは、ポリシーの適用範囲を次のように指定します。
-
s3:ListBucket
アクセス許可の範囲を、InputDataConfig.DataSource.S3DataSource.S3Uri
リクエストでCreateTrainingJob
として指定した特定のバケットに設定します。 -
s3:GetObject
およびs3:PutObject
アクセス許可の範囲を、CreateTrainingJob
リクエストの入力および出力データ設定で指定する次のオブジェクトに設定します。InputDataConfig.DataSource.S3DataSource.S3Uri
OutputDataConfig.S3OutputPath
-
Amazon ECR アクセス許可の範囲を、
CreateTrainingJob
リクエストで指定するレジストリパス (AlgorithmSpecification.TrainingImage
) に設定します。
cloudwatch
および logs
アクションは "*" リソースに適用できます。詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch リソースとオペレーション」を参照してください。
トレーニングジョブにプライベート VPC を指定する場合は、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
KMS AWS が管理するキー (SSE-KMS) によるサーバー側の暗号化 (SSE-KMS) を使用して入力が暗号化されている場合は、次の権限を追加します。
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }
トレーニングジョブの出力設定に KMS キーを指定する場合は、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }
トレーニングジョブのリソース設定にボリューム KMS キーを指定する場合は、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }
CreateModel API: 実行ロール権限
CreateModel
API リクエストで渡すことのできる実行ロールについては、次のアクセス許可ポリシーをロールにアタッチできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
"Resource": "*"
を指定する代わりに、これらのアクセス許可の範囲を特定の Amazon S3 リソースおよび Amazon ECR リソースに設定できます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
inputbucket
/object
" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:region
::repository/my-repo
", "arn:aws:ecr:region
::repository/my-repo
" ] } ] }
CreateModel.PrimaryContainer.Image
が Amazon DynamoDB リソースや Amazon RDS リソースなどの他のデータソースにアクセスする必要がある場合は、関連するアクセス許可をこのポリシーに追加します。
上記のポリシーでは、ポリシーの適用範囲を次のように指定します。
-
S3 アクセス許可の範囲を、
PrimaryContainer.ModelDataUrl
リクエストのCreateModel
で指定するオブジェクトに設定します。 -
Amazon ECR アクセス許可の範囲を、
CreateModel
リクエストでPrimaryContainer.Image
およびSecondaryContainer.Image
として指定する特定のレジストリパスに設定します。
cloudwatch
および logs
アクションは "*" リソースに適用できます。詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch リソースとオペレーション」を参照してください。
注記
SageMaker 本番環境でモデルのデプロイにデプロイガードレール機能を使用する予定の場合は、cloudwatch:DescribeAlarms
実行ロールに自動ロールバックアラームのアクションを実行する権限があることを確認してください。
モデルにプライベート VPC を指定する場合は、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }