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

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

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

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

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

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

    このロールには、SageMaker にロールを引き受ける許可を与える信頼ポリシーがアタッチされている必要があります。これにより、Amazon A2I は、ロールにアタッチした許可に従ってアクションを実行できます。

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

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

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

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

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

CORS アクセス許可要件

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

Chrome 89 以降、ウェブ標準グループ W3C は、イメージの回転を制御する機能がウェブの同一生成元ポリシーに違反していると判断したため、AWS ではイメージの回転を自動的に回避できなくなりました。したがって、ヒューマンループを作成するリクエストの送信時に人間のワーカーが予測可能な方向で入力イメージに注釈を付けるには、入力イメージを含む 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 コンソールで人間によるレビューワークフローを作成するとき、または CreateFlowDefinition API オペレーションを使用するときに使用するロールにアタッチします。

  • コンソールを使用して人間によるレビューワークフローを作成する場合、コンソールで人間によるレビューワークフローを作成するときに、ロールの 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/*" ] } ] }

さらに、ロールを引き受ける SageMakerアクセス許可を付与するには、IAM ロールに次の信頼ポリシーが必要です。IAM 信頼ポリシーの詳細については、AWSIdentity 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 オペレーションを呼び出せる IAM ユーザーを作成する

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

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

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

注記

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

必須の IAM ユーザーを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) にサインインします。

  2. [ユーザー] を選択して既存のユーザーを選択するか、[ユーザーの追加] を選択して新しいユーザーを作成します。新規ユーザーの作成については、AWS Identity and Access Management ユーザーガイドの「AWS アカウントでの IAM ユーザーの作成」を参照してください。

    • ポリシーを既存のユーザーにアタッチする場合は、[Add permissions (アクセス許可の追加)] を選択します。

    • 新しいユーザーの作成中に、[アクセス許可を設定] ページの次の手順に従います。

  3. [Attach existing policies directly] (既存のポリシーを直接添付) を選択します。

  4. [Search] (検索) バーに「AmazonAugmentedAIFullAccess」と入力し、そのポリシーの横にあるチェックボックスをオンにします。

    この IAM ユーザーがパブリックワークチームでフロー定義を作成できるようにするには、AmazonSageMakerMechanicalTurkAccess 管理ポリシーもアタッチします。

  5. ポリシーをアタッチした後、次の操作を行います。

    1. 既存のユーザーを使用している場合は、次へ: 確認[] を選択してから、アクセス許可の追加

    2. 新規ユーザーを作成している場合は、次へ: タグをクリックし、ユーザーの作成プロセスを完了します。

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

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

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

注記

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

必須の IAM ユーザーを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) にサインインします。

  2. [ユーザー] を選択して既存のユーザーを選択するか、[ユーザーの追加] を選択して新しいユーザーを作成します。新規ユーザーの作成については、AWS Identity and Access Management ユーザーガイドの「AWS アカウントでの IAM ユーザーの作成」を参照してください。

    • ポリシーを既存のユーザーにアタッチする場合は、[Add permissions (アクセス許可の追加)] を選択します。

    • 新しいユーザーを作成する場合は、「アクセス許可を設定する」ページの次の手順に従います。

  3. [Attach existing policies directly] (既存のポリシーを直接添付) を選択します。

  4. [Search] (検索) バーに「AmazonAugmentedAIIntegratedAPIAccess」と入力し、そのポリシーの横にあるチェックボックスをオンにします。

    この IAM ユーザーが Amazon Mechanical Turk を使用してフロー定義を作成できるようにするには、AmazonSageMakerMechanicalTurkAccess 管理ポリシーもアタッチします。

  5. ポリシーをアタッチした後、次の操作を行います。

    1. 既存のユーザーを使用している場合は、次へ: 確認[] を選択してから、アクセス許可の追加

    2. 新規ユーザーを作成している場合は、次へ: タグをクリックし、ユーザーの作成プロセスを完了します。

詳細については、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 タスクタイプでは、SageMaker コンソールの Amazon Augmented AI セクションを使用してテンプレートをプレビューできます。カスタムタスクタイプの場合は、RenderUiTemplateオペレーション. テンプレートをプレビューするには、タスクタイプの指示に従います。

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

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

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

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": "*" }

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