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 Runtime を使用します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 エリアの人間によるレビューワークフローセクションで作成されたIAMロールにアタッチされるポリシーです。

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

    このポリシーは、組み込みタスクタイプに関連付けられた AWS サービスのAPIオペレーションを呼び出すアクセス許可を付与しません。例えば、 AmazonAugmentedAIFullAccessは Amazon Rekognition DetectModerationLabelAPIオペレーションまたは Amazon Textract AnalyzeDocumentAPIオペレーションを呼び出すアクセス許可を付与しません。より一般的なポリシー 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ポリシーを追加できます。 Amazon S3 S3 コンソールの入力イメージを含む S3 バケットに必要なCORSヘッダーを設定するには、「 とのクロスドメインリソース共有を追加する方法」で説明されている指示に従ってくださいCORS。イメージをホストするバケットには、次のCORS設定コードを使用します。Amazon S3 コンソールを使用してポリシーをバケットに追加する場合は、 JSON形式を使用する必要があります。

JSON

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

XML

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

以下に、Amazon S3 コンソールを使用してCORSヘッダーポリシーを追加する手順GIFを示しますAmazon S3。

Amazon S3 コンソールを使用してCORSヘッダーポリシーを追加する方法に関する Gif。

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

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

  • コンソールを使用して人間によるレビューワークフローを作成する場合は、コンソールで人間によるレビューワークフローを作成するときに、ロールフィールドにIAMロール Amazon リソースネーム (ARN) を入力します。 https://docs.aws.amazon.com/sagemaker/latest/dg/create-human-review-console.html

  • を使用してフロー定義を作成するときは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管理ポリシーを新規または既存のユーザーにアタッチします。

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

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

注記

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

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

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

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

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

注記

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

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

詳細については、「 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 オペレーションを呼び出してテンプレートをプレビューします。テンプレートをプレビューするには、タスクタイプの指示に従います。

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

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

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

OutputConfig の で出力データを暗号化するために AWS Key Management Service (AWS KMS) カスタマーマネージドキーを指定する場合はCreateFlowDefinition、そのキーに次のようなIAMポリシーを追加する必要があります。このポリシーは、ヒューマンループの作成に使用するIAM実行ロールに、このキーを使用して にリストされているすべてのアクションを実行するアクセス許可を付与します"Action"。これらのアクションの詳細については、「 AWS Key Management Service デベロッパーガイド」の「 アクセスAWS KMS 許可」を参照してください。

このポリシーを使用するには、 IAMのサービスロールをARN"Principal"、人間によるレビューワークフロー (フロー定義) の作成に使用する実行ロールARNの に置き換えます。を使用してラベル付けジョブを作成する場合CreateFlowDefinition、これは にARN指定する ですRoleArn。コンソールでフロー定義を作成する場合は 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": "*" }

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