View a markdown version of this page

為非同步操作設定 Amazon Textract - Amazon Textract

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為非同步操作設定 Amazon Textract

下列程序說明如何將 Amazon Textract 設定為與 Amazon Simple Notification Service (Amazon SNS) 主題和 Amazon Simple Queue Service (Amazon SQS) 佇列搭配使用。

注意

如果您使用這些指示來設定偵測或分析多頁文件中的文字範例,則不需要執行步驟 3 – 6。此範例包括用於建立並設定 Amazon SNS 主題和 Amazon SQS 佇列的程式碼。

設定 Amazon Textract
  1. 設定 AWS 帳戶以存取 Amazon Textract。如需詳細資訊,請參閱步驟 1:設定 AWS 帳戶並建立使用者

    確定使用者至少具有下列許可:

    • AmazonTextractFullAccess

    • AmazonS3ReadOnlyAccess

    • AmazonSNSFullAccess

    • AmazonSQSFullAccess

    此外,請確保使用者具有將 IAM 角色傳遞至 Amazon Textract 的許可。這是透過 IAM PassRole 政策來完成。這類政策的簡單範例如下:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": {"iam:PassedToService": "textract.amazonaws.com"} } } ] }
  2. 安裝和設定所需的 AWS SDK。如需詳細資訊,請參閱步驟 2:設定 AWS CLI 和 AWS SDKs

  3. 建立 Amazon SNS 標準主題。在主題名稱前面加上 AmazonTextract。請記下主題的 Amazon Resource Name (ARN)。請確定主題與您搭配 AWS 帳戶使用的 AWS 端點位於相同的區域。

  4. 使用 Amazon SQS 主控台建立 Amazon SQS 佇列。記下佇列 ARN。

  5. 將佇列訂閱至您在步驟 3 中建立的主題

  6. 將許可提供給 Amazon SNS 主題,以將訊息傳送至 Amazon SQS 佇列

  7. 建立 IAM 服務角色,讓 Amazon Textract 存取您的 Amazon SNS 主題。記下服務角色的 Amazon Resource Name (ARN)。如需詳細資訊,請參閱讓 Amazon Textract 存取您的 Amazon SNS 主題

  8. 將下列內嵌政策新增至您在步驟 1 中建立的 IAM 使用者。

    為內嵌政策命名。

  9. 您現在可以在 中執行範例偵測或分析多頁文件中的文字

讓 Amazon Textract 存取您的 Amazon SNS 主題

Amazon Textract 需要許可,才能在非同步操作完成時傳送訊息到您的 Amazon SNS 主題。您可以使用 IAM 服務角色,讓 Amazon Textract 存取 Amazon SNS 主題。

建立 Amazon SNS 主題時,您必須在主題名稱前面加上 AmazonTextract,例如 AmazonTextractMyTopicName

  1. 登入 IAM 主控台 (https://console.aws.amazon.com/iam)。

  2. 在導覽窗格中,選擇 Roles (角色)。

  3. 選擇 Create Role (建立角色)。

  4. 對於 Select type of trusted entity (選取信任的實體類型),選擇 AWS service (AWS 服務)

  5. 針對選擇將使用此角色的服務,選擇 Textract

  6. 選擇下一步:許可

  7. 確認 AmazonTextractServiceRole 政策已包含在連接的政策清單中。若要在清單中顯示政策,請在篩選政策中輸入部分政策名稱。

  8. 選擇下一步:標籤

  9. 您不需要新增標籤,所以請選擇 Next: Review (下一步:檢閱)

  10. Review (檢閱) 區段中,針對 Role name (角色名稱),輸入角色的名稱 (例如,TextractRole)。在角色描述中,更新角色的描述,然後選擇建立角色

  11. 選擇新角色來開啟角色的詳細資訊頁面。

  12. Summary (摘要) 中,複製 Role ARN (角色 ARN) 值,並將其儲存。

  13. 選擇 Trust relationships (信任關係)

  14. 選擇編輯信任關係,然後編輯信任政策。請確定您的信任政策包含限制許可範圍為所需資源的條件,因為這有助於防止混淆代理人問題。如需此潛在安全問題的詳細資訊,請參閱 預防跨服務混淆代理人。在下面的範例中,將紅色文字取代為您的帳戶 AWS ID。

    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" } } } }
  15. 選擇 Update Trust Policy (更新信任政策)。

輸出組態的許可

您可以使用非同步 API 操作OutputConfig的功能,讓 Amazon Textract 將非同步分析操作的結果傳送至指定的 Amazon S3 儲存貯體。如果您使用 OutputConfig選項進行非同步分析操作,以自訂傳送操作輸出的位置,則需要額外的組態。您必須讓 Amazon Textract 解密您的上傳,並提供特定 Amazon S3 操作的許可。

允許解密 S3 儲存貯體上傳
  • 您需要為適當的使用者提供正確的 Amazon S3 許可。

    導覽至 https://console.aws.amazon.com/iam/ 的使用者區段,然後選取您在上述設定 Amazon Textract 區段的步驟 1 中建立的使用者。選擇「新增內嵌政策」到您的使用者,並連接包含 s3:GetObject、 和 s3:PutObjects3:ListBucketMultipartUploads、 和 s3:AbortMultipartUpload操作的 JSON s3:ListMultipartUploadParts政策。您的 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 金鑰,以允許您的服務角色解密您的上傳。服務角色將需要 kms:GenerateDataKeykms:Decrypt動作的許可。請確定您在設定 Amazon Textract 區段中的步驟 7 中建立的服務角色具有如下所示的許可政策。

    在下列範例中,將 ARN from Step 7取代為您服務角色的 ARN:

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