SageMaker ロール - アマゾン SageMaker

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

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では、「地域」エラーが予想されます。

からの SageMaker コンソール

[Notebook] (ノートブック) > [Notebook instances] (ノートブックインスタンス) で、ノートブックを選択します。ARN は [Permissions and encryption] (アクセス許可と暗号化) セクションにあります。

実行ロールを作成する

以下の手順を実行して、IAM 管理ポリシー AmazonSageMakerFullAccess をアタッチした実行ロールを作成します。詳細なアクセス許可が必要なユースケースの場合は、このページの他のセクションを使用して、ビジネスニーズを満たす実行ロールを作成します。

重要

以下の手順で使用されている IAM 管理ポリシー AmazonSageMakerFullAccess では、名前に SageMakerSagemakersagemakeraws-glue を持つ特定の Amazon S3 アクションをバケットまたはオブジェクトで実行するアクセス許可のみが実行ロールに付与されます。実行ロールにポリシーを追加して、他の Amazon S3 バケットやオブジェクトへのアクセス権を付与する方法については、「にその他の Amazon S3 アクセス許可を追加する SageMaker 実行ロール」を参照してください。

新規ロールを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Roles] (ロール) 、[Create role] (ロールの作成) の順に選択します。

  3. SelectSageMaker

  4. Select次へ: アクセス許可.

  5. IAM 管理ポリシー AmazonSageMakerFullAccess は、このロールに自動的にアタッチされます。このポリシーに含まれるアクセス許可を表示するには、ポリシー名の横にある横向きの矢印を選択します。Select次へ: タグ

  6. (オプション) タグを追加して次へ: 確認.

  7. [Role name] (ロール名) のテキストフィールドでロールに名前を付け、[Create role] (ロールの作成) を選択します。

  8. IAM コンソールの [Roles] (ロール) セクションで、先ほど作成したロールを選択します。必要に応じて、テキストボックスを使用し、手順 7 で入力したロール名を使ってロールを検索します。

  9. ロールの概要ページにある 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']

にその他の Amazon S3 アクセス許可を追加する SageMaker 実行ロール

使用するバージョン SageMaker Amazon S3 のリソース (入力データなど) を使用する機能、リクエストで指定した実行ロール (例:CreateTrainingJob) は、これらのリソースにアクセスするために使用されます。

IAM 管理ポリシー AmazonSageMakerFullAccess を実行ロールにアタッチすると、そのロールには、名前に SageMakerSagemakersagemakeraws-glue を持つ特定の Amazon S3 アクションをバケットやオブジェクトで実行するためのアクセス許可が付与されます。また、Amazon S3 リソースで以下のアクションを実行するアクセス許可が付与されます。

"s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors"

Amazon S3 の 1 つ以上の特定のバケットにアクセスするためのアクセス許可を実行ロールに付与するには、以下のようなポリシーをロールにアタッチします。このポリシーは、AmazonSageMakerFullAccess が許可するすべてのアクションを実行するアクセス許可を IAM ロールに付与しますが、アクセスはバケット DOC-EXAMPLE-BUCKET1DOC-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:::DOC-EXAMPLE-BUCKET1/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" ] }, { "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-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2" ] } ] }

ロールを渡す

サービス間でのロールの受け渡しなどのアクションは、 SageMaker。詳細については、「」を参照してください。のアクション、リソース、条件キー SageMakerIAM ユーザーガイド

ロール (iam:PassRole) は、以下の API コールを行う際に渡します。CreateAutoMLJobCreateCompilationJobCreateDomainCreateFlowDefinitonCreateHyperParameterTuningJobCreateImageCreateLabelingJobCreateModelCreateMonitoringScheduleCreateNotebookInstanceCreateProcessingJobCreateTrainingJobCreateUserProfileRenderUiTemplateUpdateImage

次の信頼ポリシーを付与する 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: 実行ロールのアクセス権限

AWS KMS カスタマーマネージドキーを CreateDomain API リクエストの KmsKeyId として渡す際には、IAM Identity Center ドメインの実行ロールと IAM ドメインのユーザー/実行ロールに、以下のアクセス許可が必要です。アクセス許可は、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 そして UpdateImageAPI: 実行ロールのアクセス権限

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 を呼び出すために実行ロールに付与されるアクセス許可は、ノートブックインスタンスで行う予定の作業によって異なります。を呼び出すために使用する予定の場合 SageMaker API を呼び出して、同じ役割を渡すCreateTrainingJobそしてCreateModelAPI では、ロールに次のアクセス許可ポリシーをアタッチします。

{ "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 アクションは "*" リソースに適用できます。詳細については、次を参照してください。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 アクションは "*" リソースに適用できます。詳細については、次を参照してください。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 アクションは "*" リソースに適用できます。詳細については、次を参照してください。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 アクションは "*" リソースに適用できます。詳細については、次を参照してください。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 アクションは "*" リソースに適用できます。詳細については、次を参照してください。CloudWatch リソースおよびオペレーションアマゾンで CloudWatch ユーザーガイド。

モデルにプライベート VPC を指定する場合は、次のアクセス許可を追加します。

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }