翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 リージョンと同じである必要があります)、次のポリシーを IAM ロールに追加する必要があります。<aws-region>
{
"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 アクセス許可を付与する」で説明されているアクセス許可が必要です。これには、「カスタムラベル付けワークフローのアクセス許可」セクションで説明されているアクセス許可を含みます。
AWS Lambda 関数を呼び出すアクセス許可を IAM 実行ロールに付与する
IAM 管理ポリシー AmazonSageMakerGroundTruthExecutionGtRecipe
、SageMaker
、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 AI 実行ロールを引き受けることを許可します。この SageMaker AI 実行ロールは、ラベル付けジョブの作成に使用されるロールであり、注釈データが保存されている Amazon S3 出力バケットにアクセスできます。 -
Lambda 実行ロールに、Amazon S3 出力バケットに直接アクセスするためのアクセス許可を付与します。
次のセクションでは、これらのオプションを設定する方法について説明します。
SageMaker AI 実行ロールを引き受けるアクセス許可を Lambda に付与する
Lambda 関数が SageMaker AI 実行ロールを引き受けることを許可するには、Lambda 関数の実行ロールにポリシーをアタッチし、SageMaker AI 実行ロールの信頼関係を変更して Lambda が引き受けることを許可する必要があります。
-
次の IAM ポリシーを Lambda 関数の実行ロールにアタッチして、 で識別される SageMaker AI 実行ロールを引き受けます
Resource
。
を AWS アカウント ID に置き換えます。222222222222
を引き受けるロールの名前に置き換えます。sm-execution-role
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
222222222222
:role/sm-execution-role
" } } -
SageMaker AI 実行ロールの信頼ポリシーを変更して、次の を含めます
Statement
。
を AWS アカウント ID に置き換えます。222222222222
を引き受けるロールの名前に置き換えます。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 に追加するには以下の手順に従います。
-
Lambda コンソールの [Functions] (関数) ページ
を開きます。 -
注釈後関数の名前を選択します。
-
[設定] を選択して、[アクセス許可] を選択します。
-
[Role name] (ロール名) を選択すると、IAM コンソールで新しいタブにそのロールの概要ページが開きます。
-
[Attach policies] (ポリシーをアタッチ) を選択します。
-
次のいずれかを行います:
-
AmazonS3ReadOnlyAccess
を検索して選択し、アカウント内のすべてのバケットとオブジェクトを読み取るアクセス許可を関数に付与します。 -
より詳細なアクセス許可が必要な場合は、[Create policy] (ポリシーの作成) をクリックし、前のセクションのポリシー例を使用してポリシーを作成します。ポリシーを作成したら、実行ロールの概要ページに戻る必要があります。
-
-
AmazonS3ReadOnlyAccess
管理ポリシーを使用した場合は、[Attach policy] (ポリシーのアタッチ)を選択します。新しいポリシーを作成した場合は、Lambda 実行ロールの概要ページに戻り、作成したポリシーをアタッチします。