Ground Truth ラベル付けジョブ SageMaker の実行ロールを作成する - Amazon SageMaker

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

Ground Truth ラベル付けジョブ SageMaker の実行ロールを作成する

ラベル付けジョブを設定するときは、実行ロール を指定する必要があります。これは、ラベル付けジョブを開始して実行するためのアクセス許可 SageMaker を持つロールです。

このロールは、以下へのアクセス許可を Ground Truth に付与する必要があります。

  • Amazon S3 を使用して入力データを取得し、Amazon S3 バケットに出力データを書き込みます。バケットの ARN を指定してバケット全体へのアクセス許可を IAM ロールに付与するか、バケット内の特定のリソースへのアクセス許可をロールに付与できます。例えば、バケットの ARN は arn:aws:s3:::awsexamplebucket1 のようになり、Amazon S3 バケット内のリソースの ARN は arn:aws:s3:::awsexamplebucket1/prefix/file-name.png のようになります。アクションを Amazon S3 バケット内のすべてのリソースに適用するには、ワイルドカード * を使用できます。例えば arn:aws:s3:::awsexamplebucket1/prefix/* です。詳細については、Amazon Simple Storage Service ユーザーガイドの「Amazon S3 リソース」を参照してください。

  • CloudWatch ワーカーメトリクスとラベル付けジョブのステータスをログに記録する 。

  • AWS KMS データ暗号化用の 。(オプション)

  • AWS Lambda カスタムワークフローの作成時に入出力データを処理するための 。

さらに、ストリーミングラベル付けジョブには、このロールへのアクセス許可が必要です。

  • ラベル付けリクエストの管理に使用する SQS キューとのやりとりを作成する Amazon SQS。

  • Amazon SNS では、Amazon SNS 入力トピックをサブスクライブしてメッセージを取得したり、Amazon SNS 出力トピックにメッセージを送信したりできます。

以下を除いて、これらのアクセス許可はすべて AmazonSageMakerGroundTruthExecution 管理ポリシーで付与されます。

  • Amazon S3 バケットのデータとストレージボリュームの暗号化。これらのアクセス許可を構成する方法については、「AWS KMSで出力データとストレージボリュームを暗号化する」を参照してください。

  • 関数名に GtRecipeSageMakerSagemakersagemaker、または LabelingFunction を含まない Lambda 関数を選択および呼び出すための許可。

  • プレフィックスまたはバケット名に GroundTruthGroundtruthgroundtruthSageMakerSagemakersagemaker を含まない、あるいは名前に SageMaker を含む オブジェクトタグ を含まない Amazon S3 バケット (大文字と小文字は区別されません)。

AmazonSageMakerGroundTruthExecution で提供されているものよりも詳細なアクセス許可が必要な場合は、次のポリシーの例を使用して、特定のユースケースに適合する実行ロールを作成します。

組み込みタスクタイプ (非ストリーミング) の実行ロール要件

次のポリシーは、組み込みタスクタイプのラベル付けジョブを作成するアクセス許可を付与します。この実行ポリシーには、 AWS KMS データの暗号化または復号化のアクセス許可は含まれません。赤の斜体の ARN をそれぞれ独自の Amazon S3 ARN に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ViewBuckets", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>", "arn:aws:s3:::<output-bucket-name>" ] }, { "Sid": "S3GetPutObjects", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>/*", "arn:aws:s3:::<output-bucket-name>/*" ] }, { "Sid": "CloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:CreateLogGroup", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "*" } ] }

組み込みタスクタイプ (ストリーミング) の実行ロール要件

ストリーミングラベル付けジョブを作成する場合は、次のようなポリシーを、ラベル付けジョブの作成に使用する実行ロールに追加する必要があります。ポリシーの範囲を絞り込むには、 *の を、IAM ロールにアクセスおよび使用するアクセス許可を付与するResource特定の AWS リソースに置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>/*", "arn:aws:s3:::<output-bucket-name>/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>", "arn:aws:s3:::<output-bucket-name>" ] }, { "Sid": "CloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:CreateLogGroup", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "StreamingQueue", "Effect": "Allow", "Action": [ "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SendMessageBatch", "sqs:SetQueueAttributes" ], "Resource": "arn:aws:sqs:*:*:*GroundTruth*" }, { "Sid": "StreamingTopicSubscribe", "Effect": "Allow", "Action": "sns:Subscribe", "Resource": [ "arn:aws:sns:<aws-region>:<aws-account-number>:<input-topic-name>", "arn:aws:sns:<aws-region>:<aws-account-number>:<output-topic-name>" ], "Condition": { "StringEquals": { "sns:Protocol": "sqs" }, "StringLike": { "sns:Endpoint": "arn:aws:sns:<aws-region>:<aws-account-number>:*GroundTruth*" } } }, { "Sid": "StreamingTopic", "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:<aws-region>:<aws-account-number>:<input-topic-name>", "arn:aws:sns:<aws-region>:<aws-account-number>:<output-topic-name>" ] }, { "Sid": "StreamingTopicUnsubscribe", "Effect": "Allow", "Action": [ "sns:Unsubscribe" ], "Resource": [ "arn:aws:sns:<aws-region>:<aws-account-number>:<input-topic-name>", "arn:aws:sns:<aws-region>:<aws-account-number>:<output-topic-name>" ] } ] }

カスタムタスクタイプの実行ロール要件

カスタムラベル付けワークフローを作成する場合は、組み込みタスクタイプ (非ストリーミング) の実行ロール要件 または 組み込みタスクタイプ (ストリーミング) の実行ロール要件 にあるような実行ロールポリシーに次のステートメントを追加します。

このポリシーは、実行ロールに注釈前と注釈後の Lambda 関数 を Invoke する許可を与えます。

{ "Sid": "LambdaFunctions", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:<region>:<account-id>:function:<pre-annotation-lambda-name>", "arn:aws:lambda:<region>:<account-id>:function:<post-annotation-lambda-name>" ] }

自動データラベリングアクセス許可の要件

自動データラベリング機能を有効にしてラベル付けジョブを作成する場合は、1) 実行ロールにアタッチされた IAM ポリシーに 1 つのポリシーを追加し、2) 実行ロールの信頼ポリシーを更新する必要があります。

次のステートメントでは、IAM 実行ロールを に渡 SageMakerして、アクティブラーニングと自動データラベリングに使用されるトレーニングジョブと推論ジョブをそれぞれ実行できるようにします。このステートメントを 組み込みタスクタイプ (非ストリーミング) の実行ロール要件 または 組み込みタスクタイプ (ストリーミング) の実行ロール要件 にあるような実行ロールポリシーに追加します。arn:aws:iam::<account-number>:role/<role-name> を実行ロール ARN に置き換えます。IAM ロール ARN は、IAM コンソールの [Roles] (ロール) にあります。

{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::<account-number>:role/<execution-role-name>", "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com" ] } } }

次のステートメントでは SageMaker 、 が実行ロールを引き受けて、 SageMaker トレーニングジョブと推論ジョブを作成および管理できます。このポリシーは、実行ロールの信頼関係に追加する必要があります。IAM ロールの信頼ポリシーを追加または変更する方法については、IAM ユーザーガイドの「Modifying a role」 (ロールの変更) を参照してください。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } }