Amazon Augmented AI におけるアクセス許可とセキュリティ - Amazon SageMaker

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

Amazon Augmented AI におけるアクセス許可とセキュリティ

Amazon Augmented AI (Amazon A2I) を使用して ML/AI アプリケーションのヒューマンレビューワークフローを作成する場合、 SageMaker ヒューマンワークフォースやワーカータスクテンプレートなどのリソースを Amazon で作成して設定します。ヒューマンループを設定して開始するには、Amazon A2I を Amazon Textract や Amazon Rekognition AWS などの他のサービスと統合するか、Amazon Augmented AI ランタイム API を使用します。ヒューマンレビューワークフローを作成してヒューマンループを開始するには、(IAM) AWS Identity and Access Management ロールまたはユーザーに特定のポリシーをアタッチする必要があります。具体的には次のとおりです。

  • 2020 年 1 月 12 日以降に画像入力データを使用してヒューマンループを始める場合は、入力データを含む Amazon S3 バケットに CORS ヘッダーポリシーを追加する必要があります。詳細については、「CORS アクセス許可要件」を参照してください。

  • フロー定義を作成するときは、ヒューマンタスク UI でレンダリングされるオブジェクトの読み取りと、人間によるレビューの結果の書き込みの両方に関して Amazon S3 への アクセス許可を Amazon A2I に付与するロールを指定する必要があります。

    このロールには、 SageMaker その役割を引き受ける権限を付与するトラストポリシーも添付する必要があります。これにより、Amazon A2I は、ロールにアタッチした許可に従ってアクションを実行できます。

    フロー定義の作成に使用するロールに変更およびアタッチできるポリシーの例については、「フロー定義の作成に使用する IAM ロールにアクセス許可を追加する」を参照してください。これらは、コンソールの Amazon A2I エリアのヒューマンレビューワークフローセクションで作成された IAM ロールにアタッチされているポリシーです。 SageMaker

  • ヒューマンループを作成して開始するには、組み込みタスクタイプ (DetectModerationLabel または AnalyzeDocument など) からの API オペレーションを使用するか、カスタム ML アプリケーションの Amazon A2I ランタイム API オペレーション StartHumanLoop を使用します。これらの API オペレーションを呼び出すユーザーに AmazonAugmentedAIFullAccess 管理ポリシーをアタッチし、これらのサービスが Amazon A2I オペレーションを使用できるようにアクセス許可を付与する必要があります。この方法の詳細は、Amazon A2I API オペレーションを呼び出せるユーザーを作成するを参照してください。

    このポリシーは、 AWS 組み込みタスクタイプに関連するサービスの API オペレーションを呼び出すアクセス権限を付与するものではありません。例えば、AmazonAugmentedAIFullAccess は、Amazon Rekognition DetectModerationLabel API オペレーションまたは Amazon Textract AnalyzeDocument API オペレーションを呼び出すアクセス許可を付与しません。より一般的なポリシー AmazonAugmentedAIIntegratedAPIAccess を使用して、これらのアクセス許可を付与できます。詳細については、「Amazon A2I、Amazon Textract、Amazon Rekognition API オペレーションを呼び出すアクセス権限を持つユーザーを作成する」を参照してください。これは、Amazon A2I AWS と統合サービスの API オペレーションを使用する幅広いアクセス権限をユーザーに付与する場合に適したオプションです。

    より詳細なアクセス許可を設定する場合は、これらの個々のサービスを使用するアクセス許可を付与するために使用できる ID ベースのポリシーについては、Amazon Rekognition アイデンティティベースのポリシーの例および Amazon Textract アイデンティティベースのポリシーの例を参照してください。

  • カスタムワーカータスク UI テンプレートをプレビューするには、ユーザーインターフェイスでレンダリングされる Amazon S3 オブジェクトの読み取り権限を持つ IAM ロールが必要です。ワーカータスクテンプレートプレビューを有効にする のポリシーの例を参照してください。

CORS アクセス許可要件

2020 年初めに、Chrome や Firefox などの広く使用されているブラウザは、EXIF データと呼ばれるイメージメタデータに基づいて画像を回転させるデフォルトの動作を変更しました。それまで、イメージは常にディスクに保存されているとおりにブラウザに表示されていましたが、通常は、回転しません。変更後、イメージは、向きの値と呼ばれるイメージメタデータに従って回転するようになりました。これは、機械学習 (ML) コミュニティ全体にとって重要な意味があります。例えば、EXIF の向きが考慮されない場合、イメージに注釈を付けるために使用されるアプリケーションでは予期しない向きでイメージが表示され、間違ったラベルが表示されることがあります。

Chrome 89 以降、 AWS 画像のローテーションを自動的に防止できなくなりました。ウェブ標準化グループ W3C が、画像のローテーションを制御する機能はウェブの同一オリジンポリシーに違反すると判断したためです。したがって、ヒューマンループを作成するリクエストの送信時に人間のワーカーが予測可能な方向で入力イメージに注釈を付けるには、入力イメージを含む S3 バケットに CORS ヘッダーポリシーを追加する必要があります。

重要

入力データを含む S3 バケットに CORS 設定を追加しないと、それらの入力データオブジェクトに対する人間によるレビュータスクは失敗します。

Amazon S3 コンソールで入力データを含む S3 バケットに CORS ポリシーを追加できます。S3 コンソールで入力イメージを含む S3 バケットに必要な CORS ヘッダーを設定するには、「CORS によりクロスドメインリソース共有を追加する方法」で説明されている指示に従います。イメージをホストするバケットには、次の CORS 設定コードを使用します。Amazon S3 コンソールを使用してポリシーをバケットに追加する場合は、JSON 形式を使用する必要があります。

JSON

[{ "AllowedHeaders": [], "AllowedMethods": ["GET"], "AllowedOrigins": ["*"], "ExposeHeaders": [] }]

XML

<CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> </CORSRule> </CORSConfiguration>

次の GIF は、Amazon S3 ドキュメントに説明されている、Amazon S3 コンソールを使用して CORS ヘッダーポリシーを追加する方法を示しています。

フロー定義の作成に使用する IAM ロールにアクセス許可を追加する

フロー定義を作成するには、このセクションのポリシーを、 SageMaker コンソールでヒューマンレビューワークフローを作成するときや API オペレーションを使用するときに使用するロールにアタッチします。CreateFlowDefinition

  • コンソールを使用して人間によるレビューワークフローを作成する場合、コンソールで人間によるレビューワークフローを作成するときに、ロールの Amazon リソースネーム (ARN) を [IAM role (IAM ロール) フィールドに入力します。

  • API を使用してフロー定義を作成する場合は、これらのポリシーを CreateFlowDefinition オペレーションの RoleArn パラメータに渡されるロールにアタッチします。

人間によるレビューワークフロー (フロー定義) を作成すると、Amazon A2I が Amazon S3 を呼び出してタスクが完了します。ファイルを取得して Amazon S3 バケットに保存する Amazon A2I アクセス許可を付与するには、次のポリシーを作成し、ロールにアタッチします。例えば、人間によるレビュー用に送信するイメージ、ドキュメント、他のファイルが my_input_bucket という名前の S3 バケットに保存されており、人間によるレビューが my_output_bucket という名前のバケットに保存されるようにする場合、次のポリシーを作成します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my_input_bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my_output_bucket/*" ] } ] }

さらに、IAM ロールには、 SageMaker ロールを引き受ける権限を与える以下の信頼ポリシーが必要です。IAM 信頼ポリシーの詳細については、AWS Identity and Access Management のドキュメントで「ポリシーとアクセス許可」の「リソースベースのポリシー」を参照してください。

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

IAM ロールとポリシーの作成と管理の詳細については、AWS Identity and Access Management ユーザーガイドの次のトピックを参照してください。

Amazon A2I API オペレーションを呼び出せるユーザーを作成する

Amazon A2I を使用して Amazon Rekognition、Amazon Textract、または Amazon A2I ランタイム API のヒューマンループを作成および始めるには、Amazon A2I オペレーションを呼び出すアクセス許可を持つユーザーを使用する必要があります。これを行うには、IAM コンソールを使用して AmazonAugmentedAIFullAccess 管理ポリシーを新規または既存のユーザーにアタッチします。

このポリシーは、フロー定義の作成と管理には API から API オペレーションを呼び出し、ヒューマンループの作成と管理には Amazon Augmented AI Runtime API を呼び出すアクセス権限をユーザーに付与します。 SageMaker これらの API オペレーションの詳細については、「Amazon Augmented AI で API を使用する」を参照してください。

AmazonAugmentedAIFullAccess は、Amazon Rekognition または Amazon Textract API オペレーションを使用するアクセス許可を付与しません。

注記

また、AmazonAugmentedAIFullAccess ポリシーを、ヒューマンループの作成と開始に使用される IAM ロールにアタッチすることもできます。

アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

詳細については、AWS Identity and Access Management ユーザーガイドの「IAM ID アクセス許可の追加と削除」を参照してください。

Amazon A2I、Amazon Textract、Amazon Rekognition API オペレーションを呼び出すアクセス権限を持つユーザーを作成する

組み込みタスクタイプ (Amazon Rekognition の DetectModerationLables と Amazon Textract の AnalyzeDocument) で使用される API オペレーションを呼び出すアクセス許可と、すべての Amazon A2I API オペレーションを使用するアクセス許可を持つユーザーを作成するには、IAM 管理ポリシー AmazonAugmentedAIIntegratedAPIAccess をアタッチします。複数のタスクタイプで Amazon A2I を使用するユーザーに幅広いアクセス許可を付与する場合、このポリシーを使用できます。これらの API オペレーションの詳細については、「Amazon Augmented AI で API を使用する」を参照してください。

注記

また、AmazonAugmentedAIIntegratedAPIAccess ポリシーを、ヒューマンループの作成と開始に使用される IAM ロールにアタッチすることもできます。

アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

詳細については、AWS Identity and Access Management ユーザーガイドの「IAM ID アクセス許可の追加と削除」を参照してください。

ワーカータスクテンプレートプレビューを有効にする

ワーカーがタスクで作業するときに表示されるインターフェイスと指示をカスタマイズするには、ワーカーテンプレートを作成します。CreateHumanTaskUi SageMaker テンプレートはオペレーションまたはコンソールを使用して作成できます。

テンプレートをプレビューするには、ユーザーインターフェイスでレンダリングされる Amazon S3 オブジェクトの読み取り権限を持つ IAM ロールが必要です。

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

Amazon Rekognition タスクタイプと Amazon Textract タスクタイプでは、コンソールの Amazon Augmented AI セクションを使用してテンプレートをプレビューできます。 SageMaker カスタムタスクタイプの場合は、RenderUiTemplate オペレーションを呼び出してテンプレートをプレビューします。テンプレートをプレビューするには、タスクタイプの指示に従います。

  • Amazon Rekognition タスクタイプと Amazon Textract タスクタイプ — SageMaker コンソールでは、に記載されている手順でロールの Amazon リソースネーム (ARN) を使用してください。ワーカータスクテンプレートを作成する

  • RenderUiTemplate オペレーションのカスタムタスクタイプ は、RoleArn パラメータでロールの ARN を使用します。

暗号化されたバケットで Amazon A2I を使用する AWS KMS

の出力データを暗号化する AWS Key Management Service (AWS KMS) カスタマー管理キーを指定する場合はCreateFlowDefinitionOutputConfigそのキーに次のような IAM ポリシーを追加する必要があります。このポリシーは、ヒューマンループの作成に使用する IAM 実行ロールに、このキーを使用して "Action" にリストされているすべてのアクションを実行するアクセス権限を付与します。これらのアクションについて詳しくは、『 AWS Key Management Service 開発者ガイド』の「AWS KMS アクセス権」を参照してください。

このポリシーを使用するには、"Principal" の IAM サービスロール ARN を人間によるレビューワークフロー (フロー定義) の作成に使用する実行ロールの ARN と置き換えます。CreateFlowDefinition を使用してラベリングジョブを作成する場合、これは RoleArn に対して指定する ARN です。コンソールでフロー定義を作成する場合は KmsKeyId を指定できないことに注意してください。

{ "Sid": "AllowUseOfKmsKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/example-role" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

追加のアクセス許可とセキュリティリソース