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 コンソールの使用」を参照してください。

さらに、 AWS Serverless Application Repository Lambda コンソールの を使用して 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 関数を表示するためのポリシー

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

AWS Lambda 関数を呼び出すためのIAM実行ロール許可を付与する

ラベル付けジョブの作成に使用されるIAM実行ロールAmazonSageMakerGroundTruthExecutionに IAMマネージドポリシーを追加する場合、このロールには、関数名 GtRecipe、、、sagemaker、または の文字列のいずれかを使用して Lambda SageMaker 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. Lambda 関数の実行ロールに次のIAMポリシーをアタッチして、 で識別される 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 読み取り権限を付与できます。置換 amzn-s3-demo-bucket ラベル付けジョブの作成時に指定した出力バケットの名前。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

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

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

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

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

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

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

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

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

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

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

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