View a markdown version of this page

为异步操作配置 Amazon Textract - Amazon Textract

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为异步操作配置 Amazon Textract

以下过程向您展示如何将 Amazon Textract 配置为与亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 主题和亚马逊简单队列服务 (Amazon SQS) 队列一起使用。

注意

如果您使用这些说明来设置检测或分析多页文档中的文本示例,则无需执行步骤 3 — 6。此示例包括用于创建和配置 Amazon SNS 主题和 Amazon SQS 队列的代码。

配置 Amazon Textract
  1. 设置 AWS 账户以访问亚马逊 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 and AWS 软件开发工具包

  3. 创建 Amazon SNS 标准主题。在主题名称前面加上。AmazonTextract记下主题的 Amazon 资源名称 (ARN)。确保该主题与您在 AWS 账户中使用的 AWS 终端节点位于同一区域。

  4. 使用 Amazon SQS 控制台创建 Amazon SQS 标准队列。记录队列 ARN。

  5. 为队列订阅主题(您在步骤 3 中创建)。

  6. 为向 Amazon SQS 队列发送消息的 Amazon SNS 主题授予权限

  7. 创建 IAM 服务角色以授予 Amazon Textract 访问您的亚马逊 SNS 主题的权限。记下服务角色的 Amazon 资源名称 (ARN)。有关更多信息,请参阅 让 Amazon Textract 访问你的亚马逊 SNS 话题

  8. 将以下内联策略添加到您在步骤 1 中创建的 IAM 用户。

    为内联策略命名。

  9. 现在,你可以在中运行这些示例检测或分析多页文档中的文本

让 Amazon Textract 访问你的亚马逊 SNS 话题

异步操作完成后,Amazon Textract 需要获得向您的亚马逊 SNS 主题发送消息的权限。您可以使用 IAM 服务角色授予亚马逊 Textract 访问亚马逊 SNS 主题的权限。

创建 Amazon SNS 主题时,必须在主题名称前面加上,例如。AmazonTextract AmazonTextractMyTopicName

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

  2. 在导航窗格中,选择角色

  3. 选择创建角色

  4. 对于选择受信任实体的类型,选择 Amazon Web Services。

  5. 在 “选择将使用此角色的服务” 中,选择 Textract

  6. 选择下一步: 权限

  7. 验证AmazonTextractServiceRole策略是否已包含在附加策略列表中。要在列表中显示策略,请在筛选策略中输入部分策略名称。

  8. 选择下一步:标签

  9. 您无需添加标签,因此,请选择下一步: 审核

  10. 审核部分中,对于角色名称,键入角色的名称(例如,TextractRole)。在角色描述中,更新角色的描述,然后选择创建角色

  11. 选择新角色以打开角色的详细信息页面。

  12. 摘要中,复制角色 ARN 值并保存它。

  13. 选择信任关系

  14. 选择编辑信任关系,然后编辑信任策略。确保您的信任策略包含将权限范围限制为仅限所需资源的条件,因为这将有助于防止出现混乱的代理问题。有关此潜在安全问题的更多详细信息,请参阅Cross-service 困惑的副手预防。在以下示例中,将red文本替换为您的 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. 选择更新信任策略

输出配置权限

您可以使用异步 API 操作OutputConfig功能,让 Amazon Textract 将异步分析操作的结果发送到指定的 Amazon S3 存储桶。如果您使用异步分析操作的OutputConfig选项来自定义操作输出的发送位置,则需要进行其他配置。您必须让 Amazon Textract 解密您上传的内容,并为某些 Amazon S3 操作提供权限。

允许解密 S3 存储桶上传
  • 您需要为相应的用户提供正确的 Amazon S3 权限。

    导航到的 “用户” 部分,https://console.aws.amazon.com/iam/然后选择您在上述 “配置 Amazon Textr act” 部分的步骤 1 中创建的用户。选择 “向您的用户添加内联策略”,并附加包含s3:GetObject、、s3:PutObjects3:ListMultipartUploadPartss3: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 密钥添加权限,以允许您的服务角色解密您上传的内容。服务角色需要权限才能执行kms:GenerateDataKeykms:Decrypt操作。确保您在配置 Amazon Textr act 部分的步骤 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": "*" }