

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

# 非同期オペレーション用の Amazon Textract の設定
<a name="api-async-roles"></a>

次の手順は、Amazon Simple Notification Service (Amazon SNS) トピックと Amazon Simple Queue Service (Amazon SQS) キューで使用するように Amazon Textract を設定する方法を示しています。

**注記**  
これらの手順を使用して[マルチページドキュメント内のテキストの検出または分析](async-analyzing-with-sqs.md)例を設定する場合は、ステップ 3～6 を実行する必要はありません。この例には、Amazon SNS トピックと Amazon SQS キューを作成して設定するコードが含まれています。

**Amazon Textract を設定するには**

1. Amazon Textract にアクセスする AWS ようにアカウントを設定します。詳細については、「[ステップ 1: AWS アカウントを設定してユーザーを作成する](setting-up.md)」を参照してください。

   ユーザーに少なくとも次のアクセス許可があることを確認します。
   + AmazonTextractFullAccess
   + AmazonS3ReadOnlyAccess
   + AmazonSNSFullAccess
   + AmazonSQSFullAccess

   さらに、ユーザーに Amazon Textract に IAM ロールを渡すアクセス許可があることを確認します。これは IAM PassRole ポリシーを通じて行われます。このようなポリシーの簡単な例を以下に示します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "*",
               "Condition": {
                   "StringEquals": {"iam:PassedToService": "textract.amazonaws.com"}
               }
           }
       ]
   }
   ```

------

1. 必要な AWS SDK をインストールして設定します。詳細については、「[ステップ 2: AWS CLI と AWS SDKs](setup-awscli-sdk.md)」を参照してください。

1. [Amazon SNS 標準トピックを作成します](https://docs.aws.amazon.com/sns/latest/dg/sns-tutorial-create-topic.html)。トピック名に *AmazonTextract* を付加します。その Amazon リソースネーム (ARN) をメモします。トピックが AWS アカウントで使用している AWS エンドポイントと同じリージョンにあることを確認します。

1. [[Amazon SQS コンソール](https://console.aws.amazon.com/sqs/)] を使用して、[[Amazon SQS スタンダードキュー](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html)] を作成します。キューの ARN を書き留めます。

1. ステップ 3 で作成した[トピックにキューをサブスクライブ](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-subscribe-queue-sns-topic.html)します。

1. [[Amazon SNS トピックに、Amazon SQS キューへメッセージを送信する許可を与えます](https://docs.aws.amazon.com/sns/latest/dg/subscribe-sqs-queue-to-sns-topic.html)]。

1. Amazon SNS トピックへのアクセスを Amazon Textract に許可する IAM サービスロールを作成します。このサービスロールの Amazon リソースネーム (ARN) をメモします。詳細については、「[Amazon Textract に Amazon SNS トピックへのアクセスを許可する](#api-async-roles-all-topics)」を参照してください。

1. ステップ 1 で作成した IAM ユーザーに[次のインラインポリシーを追加します](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#embed-inline-policy-console)。

   インラインポリシーに名前を付けます。

1. で例を実行できるようになりました[マルチページドキュメント内のテキストの検出または分析](async-analyzing-with-sqs.md)。

## Amazon Textract に Amazon SNS トピックへのアクセスを許可する
<a name="api-async-roles-all-topics"></a>

Amazon Textract には、非同期オペレーションが完了したときに Amazon SNS トピックにメッセージを送信するアクセス許可が必要です。IAM サービスロールを使用して、Amazon Textract に Amazon SNS トピックへのアクセスを許可します。

 Amazon SNS トピックを作成するときは、トピック名の先頭に **AmazonTextract**などを付ける必要があります**AmazonTextractMyTopicName**。

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. [**ロールの作成**] を選択してください。

1. [**Select type of trusted entity (信頼されたエンティティのタイプの選択)**] で、[**AWS サービス**] を選択します。

1. **このロールを使用するサービスを選択する で**、**Textract** を選択します。

1. **[Next: Permissions]** (次のステップ: 許可) を選択します。

1. **AmazonTextractServiceRole** ポリシーがアタッチされたポリシーのリストに含まれていることを確認します。リストにポリシーを表示するには、**フィルタポリシー**にポリシー名の一部を入力します。

1. **[Next: Tags]** (次へ: タグ) を選択します。

1. タグの作成は必要ないため、[**次へ: 確認**] を選択します。

1. [**確認**] セクションの [**ロール名**] に、ロールの名前を入力します (例: `TextractRole`)。**ロールの説明**で、ロールの説明を更新し、**ロールの作成**を選択します。

1. 新しいロールを選択して、ロールの詳細ページを開きます。

1. [**概要**] で、[**ロール ARN**] の値をコピーして保存します。

1. **[信頼関係]** を選択します。

1. **信頼関係の編集** を選択し、信頼ポリシーを編集します。混乱した代理問題を防ぐのに役立つため、アクセス許可の範囲を必要なリソースのみに制限する条件が信頼ポリシーに含まれていることを確認してください。この潜在的なセキュリティ問題の詳細については、「」を参照してください[サービス間の混乱した代理の防止](cross-service-confused-deputy-prevention.md)。以下の例では、{{赤い}}テキストをアカウント ID に置き換えます AWS 。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Sid": "ConfusedDeputyPreventionExamplePolicy",
       "Effect": "Allow",
       "Principal": {
         "Service": "textract.amazonaws.com"
       },
       "Action": "sts:AssumeRole",
       "Condition": {
         "ArnLike": {
           "aws:SourceArn":"arn:aws:textract:*:{{123456789012}}:*"
         },
         "StringEquals": {
           "aws:SourceAccount": "{{123456789012}}"
         }
       }
     }
   }
   ```

------

1. **信頼ポリシーの更新** を選択します。

## 出力設定のアクセス許可
<a name="async-output-config"></a>

Amazon Textract は、非同期 API オペレーション`OutputConfig`の機能を使用して、非同期分析オペレーションの結果を指定された Amazon S3 バケットに送信できます。非同期分析オペレーションの `OutputConfig`オプションを使用して、オペレーションの出力の送信先をカスタマイズする場合は、追加の設定が必要です。Amazon Textract にアップロードを復号し、特定の Amazon S3 オペレーションに対するアクセス許可を付与する必要があります。

**S3 バケットのアップロードの復号を許可するには**
+ 適切なユーザーに適切な Amazon S3 アクセス許可を付与する必要があります。

  [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) の「ユーザー」セクションに移動し、上記の**「Amazon Textract を設定する**」セクションの**ステップ 1** で作成したユーザーを選択します。ユーザーに「インラインポリシーを追加する」を選択し、、`s3:GetObject`、、`s3:PutObject``s3:ListMultipartUploadParts`、および `s3:ListBucketMultipartUploads``s3:AbortMultipartUpload`オペレーションを含む JSON ポリシーをアタッチします。JSON は次のようになります。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:Get*",
                  "s3:List*",
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3-object-lambda:Get*",
                  "s3-object-lambda:List*",
                  "s3:ListMultipartUploadParts",
                  "s3:ListBucketMultipartUploads",
                  "s3:AbortMultipartUpload"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------

**AWS KMS キーアクセス許可を指定するには**
+ サービスロールがアップロードを復号できるようにするアクセス許可を AWS Key Management Service キー[に追加](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to-console-policy-view)する必要があります。サービスロールには、 `kms:GenerateDataKey` および `kms:Decrypt`アクションのアクセス許可が必要です。**「Amazon Textract を設定する**」セクション**のステップ 7** で作成したサービスロールに、次の例のようなアクセス許可ポリシーがあることを確認します。

  次の例では、 をサービスロールの ARN `ARN from Step 7`に置き換えます。

  ```
  {
      "Sid": "Decrypt only",
      "Effect": "Allow",
      "Principal": {
          "AWS": "{{ARN from Step 7}}"
      },
      "Action": [
          "kms:Decrypt",
          "kms:ReEncrypt",
          "kms:GenerateDataKey",
          "kms:DescribeKey"
      ],
      "Resource": "*"
  }
  ```