Ground Truth で AWS Lambda を使用するために必要なアクセス許可 - Amazon SageMaker

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

Ground Truth で AWS Lambda を使用するために必要なアクセス許可

Ground Truth で AWS Lambda を作成および使用するには、次の一部またはすべてを設定する必要があります。

  • を使用して注釈前と注釈後の Lambda 関数を作成し、ラベル付けジョブの作成時にそれらを選択するには AWS Lambda、IAM ロールまたはユーザー (総称して IAM エンティティ) に許可を付与する必要があります。

  • ラベル付けジョブが設定されたときに指定された IAM 実行ロールには、注釈前と注釈後の Lambda 関数を呼び出すためのアクセス許可が必要です。

  • 注釈後の Lambda 関数では、Amazon S3 にアクセスするためのアクセス許可が必要な場合があります。

以下のセクションでは、IAM エンティティを作成し、前述したアクセス許可を付与する方法について学習します。

AWS Lambda 関数を作成および選択するアクセス許可を付与する

注釈前と注釈後の Lambda 関数を開発するために詳細なアクセス許可を必要としない場合は、 AWS 管理ポリシーをユーザーまたはロールAWSLambda_FullAccessにアタッチできます。このポリシーは、すべての Lambda 機能を使用するための広範なアクセス許可と、Lambda がやり取りする他の AWS サービスでアクションを実行するためのアクセス許可を付与します。

セキュリティを重視するユースケースの詳細なポリシーを作成するには、「 AWS Lambda デベロッパーガイド」の「Lambda のアイデンティティベースの IAM ポリシー」のドキュメントを参照して、ユースケースに合った IAM ポリシーを作成する方法を確認してください。

Lambda コンソールを使用するポリシー

Lambda コンソールを使用するアクセス許可を IAM エンティティに付与する場合は、「 AWS Lambda デベロッパーガイド」の「Lambda コンソールの使用」を参照してください。

さらに、ユーザーが Lambda コンソール AWS Serverless Application Repository の を使用して Ground Truth スターターの注釈前および注釈後の関数にアクセスしてデプロイできるようにする場合は、関数をデプロイ<aws-region>する を指定し (ラベル付けジョブの作成に使用した AWS リージョンと同じである必要があります)、次のポリシーを IAM ロールに追加する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "serverlessrepo:ListApplicationVersions", "serverlessrepo:GetApplication", "serverlessrepo:CreateCloudFormationTemplate" ], "Resource": "arn:aws:serverlessrepo:<aws-region>:838997950401:applications/aws-sagemaker-ground-truth-recipe" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "serverlessrepo:SearchApplications", "Resource": "*" } ] }

Ground Truth コンソールで Lambda 関数を表示するためのポリシー

ユーザーがカスタムラベル付けジョブを作成しているときに、IAM エンティティに Ground Truth コンソールで Lambda 関数を表示するためのアクセス許可を付与するには、エンティティには、「Amazon SageMaker Ground Truth コンソールを使用するための IAM アクセス許可を付与する」で説明されているアクセス許可が必要です。これには、「カスタムラベル付けワークフローのアクセス許可」セクションで説明されているアクセス許可を含みます。

IAM 実行ロールに AWS Lambda 関数を呼び出すアクセス許可を付与する

ラベル付けジョブの作成に使用される IAM 実行ロールAmazonSageMakerGroundTruthExecutionに IAM 管理ポリシーを追加する場合、このロールには、関数名に 、GtRecipe、、SageMakersagemakerまたは のいずれかの文字列を含む Lambda Sagemaker関数を一覧表示して呼び出すアクセス許可がありますLabelingFunction

注釈前または注釈後の Lambda 関数名に前の段落の用語のいずれかが含まれていない場合、または AmazonSageMakerGroundTruthExecution 管理ポリシーの用語よりも詳細なアクセス許可が必要な場合は、次のようなポリシーを追加して、注釈前と注釈後関数を呼び出すための実行ロールアクセス許可を追加できます。

{ "Version": "2012-10-17", "Statement": [ { "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>" ] } ] }

注釈にアクセスするための注釈後の Lambda アクセス許可を付与する

後注釈 Lambda で説明したように、注釈後 Lambda リクエストには、Amazon S3 内の注釈データの場所が含まれます。この場所は、payload オブジェクトの s3Uri 文字列で特定されます。注釈を取り込みながら処理するには、シンプルなパススルー関数の場合でも、注釈後の Lambda 実行ロールに必要なアクセス許可を割り当てて、Amazon S3 からファイルを読み取る必要があります。

Lambda を設定し、Amazon S3 の注釈データにアクセスするにはいくつかの方法があります。2 つの一般的な方法は次のとおりです。

  • Lambda 実行ロールが、注釈後 Lambda リクエストの roleArn で識別される SageMaker 実行ロールを引き受けることを許可します。この SageMaker 実行ロールはラベル付けジョブの作成に使用されるロールであり、注釈データが保存されている Amazon S3 出力バケットにアクセスできます。

  • Lambda 実行ロールに、Amazon S3 出力バケットに直接アクセスするためのアクセス許可を付与します。

次のセクションでは、これらのオプションを設定する方法について説明します。

SageMaker 実行ロールを引き受けるアクセス許可を Lambda に付与する

Lambda 関数が SageMaker 実行ロールを引き受けることを許可するには、Lambda 関数の実行ロールにポリシーをアタッチし、Lambda が引き受けることを許可するように SageMaker 実行ロールの信頼関係を変更する必要があります。

  1. 次の IAM ポリシーを Lambda 関数の実行ロールにアタッチして、 で識別される SageMaker 実行ロールを引き受けますResource222222222222AWS アカウント ID に置き換えます。sm-execution-role を引き受けるロールの名前に置き換えます。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/sm-execution-role" } }
  2. SageMaker 実行ロールの信頼ポリシーを変更して、次の を含めますStatement222222222222AWS アカウント ID に置き換えます。my-lambda-execution-role を引き受けるロールの名前に置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:role/my-lambda-execution-role" }, "Action": "sts:AssumeRole" } ] }

S3 へのアクセス権限を Lambda 実行ロールに付与する

次のようなポリシーを注釈後の Lambda 関数の実行ロールに追加して、S3 読み取り権限を付与できます。DOC-EXAMPLE-BUCKET を、ラベル付けジョブの作成時に指定する出力バケットの名前に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }

Lambda コンソールで Lambda 実行ロールに S3 読み取りアクセス許可を追加するには、以下の手順を使用します。

S3 読み取りアクセス許可を注釈後 Lambda に追加するには以下の手順に従います。
  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. 注釈後関数の名前を選択します。

  3. [設定] を選択して、[アクセス許可] を選択します。

  4. [Role name] (ロール名) を選択すると、IAM コンソールで新しいタブにそのロールの概要ページが開きます。

  5. [Attach policies] (ポリシーをアタッチ) を選択します。

  6. 次のいずれかを行います。

    • AmazonS3ReadOnlyAccess を検索して選択し、アカウント内のすべてのバケットとオブジェクトを読み取るアクセス許可を関数に付与します。

    • より詳細なアクセス許可が必要な場合は、[Create policy] (ポリシーの作成) をクリックし、前のセクションのポリシー例を使用してポリシーを作成します。ポリシーを作成したら、実行ロールの概要ページに戻る必要があります。

  7. AmazonS3ReadOnlyAccess 管理ポリシーを使用した場合は、[Attach policy] (ポリシーのアタッチ)を選択します。

    新しいポリシーを作成した場合は、Lambda 実行ロールの概要ページに戻り、作成したポリシーをアタッチします。