

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

# Amazon Augmented AI におけるアクセス許可とセキュリティ
<a name="a2i-permissions-security"></a>

Amazon Augmented AI (Amazon A2I) を使用して ML/AI アプリケーション用の人間によるレビューワークフローを作成するときは、Amazon SageMaker AI でヒューマンワークフォースやワーカータスクテンプレートなどの*リソース*を作成して設定します。ヒューマンループを設定して開始するには、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 アクセス許可要件](#a2i-cors-update)」を参照してください。
+ フロー定義を作成するときは、ヒューマンタスク UI でレンダリングされるオブジェクトの読み取りと、人間によるレビューの結果の書き込みの両方に関して Amazon S3 への アクセス許可を Amazon A2I に付与するロールを指定する必要があります。

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

  フロー定義の作成に使用するロールに変更およびアタッチできるポリシーの例については、「[フロー定義の作成に使用する IAM ロールにアクセス許可を追加する](#a2i-human-review-permissions-s3)」を参照してください。これらは、SageMaker AI コンソールの Amazon A2I 領域にある **[人間によるレビューワークフロー]** セクションで作成される IAM ロールにアタッチされるポリシーです。
+ ヒューマンループを作成して開始するには、組み込みタスクタイプ (`DetectModerationLabel` または `AnalyzeDocument` など) からの API オペレーションを使用するか、カスタム ML アプリケーションの Amazon A2I ランタイム API オペレーション `StartHumanLoop` を使用します。これらの API オペレーションを呼び出すユーザーに `AmazonAugmentedAIFullAccess` 管理ポリシーをアタッチし、これらのサービスが Amazon A2I オペレーションを使用できるようにアクセス許可を付与する必要があります。この方法の詳細は、「[Amazon A2I API オペレーションを呼び出せるユーザーを作成する](#create-user-grants)」を参照してください。

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

  より詳細なアクセス許可を設定する場合は、これらの個々のサービスを使用するアクセス許可を付与するために使用できる ID ベースのポリシーについては、[Amazon Rekognition アイデンティティベースのポリシーの例](https://docs.aws.amazon.com/rekognition/latest/dg/security_iam_id-based-policy-examples.html)および [Amazon Textract アイデンティティベースのポリシーの例](https://docs.aws.amazon.com/textract/latest/dg/security_iam_id-based-policy-examples.html)を参照してください。
+ カスタムワーカータスク UI テンプレートをプレビューするには、ユーザーインターフェイスでレンダリングされる Amazon S3 オブジェクトの読み取り権限を持つ IAM ロールが必要です。[ワーカータスクテンプレートプレビューを有効にする](#permissions-for-worker-task-templates-augmented-ai) のポリシーの例を参照してください。

**Topics**
+ [CORS アクセス許可要件](#a2i-cors-update)
+ [フロー定義の作成に使用する IAM ロールにアクセス許可を追加する](#a2i-human-review-permissions-s3)
+ [Amazon A2I API オペレーションを呼び出せるユーザーを作成する](#create-user-grants)
+ [Amazon A2I、Amazon Textract、Amazon Rekognition API オペレーションを呼び出すアクセス権限を持つユーザーを作成する](#a2i-grant-general-permission)
+ [ワーカータスクテンプレートプレビューを有効にする](#permissions-for-worker-task-templates-augmented-ai)
+ [暗号化されたバケットでの Amazon A2I AWS KMS の使用](#a2i-kms-encryption)
+ [追加のアクセス許可とセキュリティリソース](#additional-security-resources-augmented-ai)

## CORS アクセス許可要件
<a name="a2i-cors-update"></a>

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

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

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

Amazon S3 コンソールで入力データを含む S3 バケットに CORS ポリシーを追加できます。S3 コンソールで入力イメージを含む S3 バケットに必要な CORS ヘッダーを設定するには、「[CORS によりクロスドメインリソース共有を追加する方法](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-cors-configuration.html)」で説明されている指示に従います。イメージをホストするバケットには、次の CORS 設定コードを使用します。Amazon S3 コンソールを使用してポリシーをバケットに追加する場合は、JSON 形式を使用する必要があります。

**JSON**

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

**XML**

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

次の GIF は、Amazon S3 コンソールを使って CORS ヘッダーポリシーを追加する方法に関する Amazon S3 ドキュメントにある手順を示しています。

![Amazon S3 コンソールを使用して CORS ヘッダーポリシーを追加する方法を示す GIF。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/sms/gifs/cors-config.gif)


## フロー定義の作成に使用する IAM ロールにアクセス許可を追加する
<a name="a2i-human-review-permissions-s3"></a>

フロー定義を作成するには、このセクションのポリシーを、SageMaker AI コンソールで人間によるレビューワークフローを作成するとき、または `CreateFlowDefinition` API オペレーションを使用するときに使用するロールにアタッチします。
+ コンソールを使用して人間によるレビューワークフローを作成する場合、[コンソールで人間によるレビューワークフローを作成するときに、](https://docs.aws.amazon.com/sagemaker/latest/dg/create-human-review-console.html)ロールの Amazon リソースネーム (ARN) を **[IAM role** (IAM ロール) フィールドに入力します。
+ API を使用してフロー定義を作成する場合は、これらのポリシーを `CreateFlowDefinition` オペレーションの `RoleArn` パラメータに渡されるロールにアタッチします。

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

------
#### [ JSON ]

****  

```
{
    "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 AI アクセス許可を付与するには、IAM ロールに次の信頼ポリシーが必要です。IAM 信頼ポリシーの詳細については、*AWS Identity and Access Management* のドキュメントで「**ポリシーとアクセス許可**」の「[リソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)」を参照してください。

------
#### [ JSON ]

****  

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

------

IAM ロールとポリシーの作成と管理の詳細については、*AWS Identity and Access Management ユーザーガイド*の次のトピックを参照してください。
+ IAM ロールを作成するには、「[IAM ユーザーにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。
+ IAM ポリシーの作成方法については、「[IAM ポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。
+ ロールに IAM ポリシーをアタッチする方法については、「[IAM ID アクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## Amazon A2I API オペレーションを呼び出せるユーザーを作成する
<a name="create-user-grants"></a>

Amazon A2I を使用して Amazon Rekognition、Amazon Textract、または Amazon A2I ランタイム API のヒューマンループを作成および始めるには、Amazon A2I オペレーションを呼び出すアクセス許可を持つユーザーを使用する必要があります。これを行うには、IAM コンソールを使用して [https://console.aws.amazon.com/iam/home?region=us-east-2#/policies/arn:aws:iam::aws:policy/AmazonAugmentedAIFullAccess$jsonEditor](https://console.aws.amazon.com/iam/home?region=us-east-2#/policies/arn:aws:iam::aws:policy/AmazonAugmentedAIFullAccess$jsonEditor) 管理ポリシーを新規または既存のユーザーにアタッチします。

このポリシーは、フロー定義の作成と管理用の SageMaker API、ヒューマンループの作成と管理用の Amazon Augmented AI ランタイム API から API オペレーションを呼び出すアクセス許可をユーザーに付与します。これらの API オペレーションの詳細については、「[Amazon Augmented AI で API を使用する](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-api-references.html)」を参照してください。

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

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

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

詳細については、*AWS Identity and Access Management ユーザーガイド*の「[IAM ID アクセス許可の追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## Amazon A2I、Amazon Textract、Amazon Rekognition API オペレーションを呼び出すアクセス権限を持つユーザーを作成する
<a name="a2i-grant-general-permission"></a>

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

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

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

詳細については、*AWS Identity and Access Management ユーザーガイド*の「[IAM ID アクセス許可の追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## ワーカータスクテンプレートプレビューを有効にする
<a name="permissions-for-worker-task-templates-augmented-ai"></a>

ワーカーがタスクで作業するときに表示されるインターフェイスと指示をカスタマイズするには、ワーカーテンプレートを作成します。[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html) オペレーションまたは SageMaker AI コンソールを使用してテンプレートを作成できます。

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

------
#### [ JSON ]

****  

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

------

Amazon Rekognition および Amazon Textract タスクタイプでは、SageMaker AI コンソールの Amazon Augmented AI セクションを使用してテンプレートをプレビューできます。カスタムタスクタイプの場合は、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html) オペレーションを呼び出してテンプレートをプレビューします。テンプレートをプレビューするには、タスクタイプの指示に従います。
+  SageMaker AI コンソールの Amazon Rekognition および Amazon Textract タスクタイプでは、「[ワーカータスクテンプレートを作成する](a2i-worker-template-console.md#a2i-create-worker-template-console)」に記載されている手順でロールの Amazon リソースネーム (ARN) を使用します。
+ `RenderUiTemplate` オペレーションのカスタムタスクタイプ は、`RoleArn` パラメータでロールの ARN を使用します。

## 暗号化されたバケットでの Amazon A2I AWS KMS の使用
<a name="a2i-kms-encryption"></a>

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

このポリシーを使用するには、`"Principal"` の IAM サービスロール ARN を人間によるレビューワークフロー (フロー定義) の作成に使用する実行ロールの ARN と置き換えます。`CreateFlowDefinition` を使用してラベリングジョブを作成する場合、これは [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-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": "*"
}
```

## 追加のアクセス許可とセキュリティリソース
<a name="additional-security-resources-augmented-ai"></a>
+ [タグを使用して SageMaker AI リソースへのアクセスを制御する](security_iam_id-based-policy-examples.md#access-tag-policy).
+ [Amazon SageMaker AI 向けのアイデンティティベースのポリシー](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies)
+ [条件キーを使用して SageMaker AI リソースの作成を制御する](security_iam_id-based-policy-examples.md#sagemaker-condition-examples)
+ [Amazon SageMaker AI API アクセス許可: アクション、アクセス許可、リソースの参照](api-permissions-reference.md)
+ [Amazon SageMaker AI でセキュリティを設定する](security.md)