翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker 役割
マネージド型サービスである Amazon SageMaker は、によって管理されるAWSハードウェアでユーザーに代わってユーザーに代わってオペレーションを実行します SageMaker。 SageMaker は、ユーザーが許可するオペレーションのみを実行できます。
SageMaker ユーザーは、これらのアクセス許可を IAM ロールで付与できます (これを実行ロールと呼びます)。
ローカルで使用可能な実行ロールを作成して使用するには、以下の手順を使用します。
実行ロールを取得する
IAM 実行ロールは、以下の方法で探すことができます。
ノートブックから
ノートブックを SageMaker ( SageMaker コンソールまたは SageMaker Studio から) 実行するときは、次のコードを使用して実行ロールにアクセスできます。
sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role()
注記
実行ロールは、ノートブックを実行している場合にのみ使用できます SageMaker。get_execution_role
オンになっていないノートブックで実行すると SageMaker、「region」エラーが表示されます。
SageMaker コンソールから
[Notebook] (ノートブック) > [Notebook instances] (ノートブックインスタンス) で、ノートブックを選択します。ARN は [Permissions and encryption] (アクセス許可と暗号化) セクションにあります。
実行ロールを作成する
以下の手順を実行して、IAM 管理ポリシー AmazonSageMakerFullAccess
をアタッチした実行ロールを作成します。詳細なアクセス許可が必要なユースケースの場合は、このページの他のセクションを使用して、ビジネスニーズを満たす実行ロールを作成します。
重要
以下の手順で使用されている IAM 管理ポリシー AmazonSageMakerFullAccess
では、名前に SageMaker
、Sagemaker
、sagemaker
、aws-glue
を持つ特定の Amazon S3 アクションをバケットまたはオブジェクトで実行するアクセス許可のみが実行ロールに付与されます。実行ロールにポリシーを追加して、他の Amazon S3 バケットやオブジェクトへのアクセス権を付与する方法については、「 SageMaker 実行ロールにその他の Amazon S3 アクセス許可を追加する」を参照してください。
新規ロールを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
[Roles] (ロール) 、[Create role] (ロールの作成) の順に選択します。
-
選択SageMaker。
-
[Next: Permissions] (次へ: アクセス許可) を選択します。
-
IAM 管理ポリシー
AmazonSageMakerFullAccess
は、このロールに自動的にアタッチされます。このポリシーに含まれるアクセス許可を表示するには、ポリシー名の横にある横向きの矢印を選択します。[Next: Tags] (次へ: タグ) を選択します。 -
(オプション) タグを追加し、[Next: Review] (次へ: 確認) を選択します。
-
[Role name] (ロール名) のテキストフィールドでロールに名前を付け、[Create role] (ロールの作成) を選択します。
-
IAM コンソールの [Roles] (ロール) セクションで、先ほど作成したロールを選択します。必要に応じて、テキストボックスを使用し、手順 7 で入力したロール名を使ってロールを検索します。
-
ロールの概要ページにある ARN を書き留めておきます。
ロールの既知の ARN を使用すると、ノートブックをローカルまたはオンで実行するときに、プログラムを使用してロールをチェックできます SageMaker。RoleName
は、既知の ARN に置き換えます。
try: role = sagemaker.get_execution_role() except ValueError: iam = boto3.client('iam') role = iam.get_role(RoleName='AmazonSageMaker-ExecutionRole-20201200T100000')['Role']['Arn']
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、 IAM ユーザーガイドをご覧ください。
次の API 呼び出しを行う際には、、、、、CreateAutoMLJob
、、、、、、、、、CreateCompilationJob
、CreateDomain
、CreateFeatureGroup
、、CreateFlowDefiniton
、CreateHyperParameterTuningJob
、、CreateImage
、CreateLabelingJob
、、CreateModel
、CreateMonitoringSchedule
、、CreateNotebookInstance
、CreateProcessingJob
、CreateTrainingJob
、CreateUserProfile
UpdateImage
およびというようにロールを渡します。iam:PassRole
RenderUiTemplate
ロールを引き受ける IAM ロールに次の信頼ポリシーをアタッチします。これはすべての実行ロールに対して同じです。 SageMaker
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
ロールに付与する必要があるアクセス許可は、呼び出す API によって異なります。以下のセクションでは、これらのアクセス許可について説明します。
注記
アクセス許可ポリシーを作成してアクセス許可を管理する代わりに、AWS 管理 AmazonSageMakerFullAccess
アクセス許可ポリシーを使用できます。 SageMaker で実行する可能性のあるすべてのアクションに対応できるように、このポリシーのアクセス許可範囲は広くなっています。多くのアクセス許可を付与する理由に関する情報を含むポリシーのリストについては、「AWS管理ポリシー: AmazonSageMakerFullAccess」を参照してください。カスタムポリシーを作成してアクセス許可を管理し、実行ロールで実行する必要があるアクションにのみアクセス許可を適用する場合は、以下のトピックを参照してください。
重要
問題が発生した場合は、「」を参照してくださいAmazon SageMaker アイデンティティとアクセスのトラブルシューティング。
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" ] }
入力が AWS KMS で管理されたキー (SSE-KMS) を使用したサーバー側の暗号化で暗号化されている場合、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }
AutoML ジョブの出力設定に KMS キーを指定する場合、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }
AutoML ジョブのリソース設定にボリューム KMS キーを指定する場合、次のアクセス許可を追加します。
{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }
CreateDomain API
CreateDomain
APIAWS KMS リクエストでカスタマーマネージキーを渡す際には、IAM Identity Center を持つドメインの実行ロールと IAMKmsKeyId
ドメインのユーザー/実行ロールに、以下のアクセス許可が必要です。アクセス許可は、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 リソースに設定できます。
{ "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
" } ] }
ハイパーパラメータチューニングジョブに関連付けられているトレーニングコンテナが、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
) に設定します。
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" ] }
入力が AWS 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" ] }
入力が AWS 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" ] }
入力が AWS 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" ] }