步骤 2:(仅限 CLI)为 Amazon Comprehend 创建 IAM 角色 - Amazon Comprehend

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

步骤 2:(仅限 CLI)为 Amazon Comprehend 创建 IAM 角色

只有在使用 AWS Command Line Interface (AWS CLI) 完成本教程时,才需要执行此步骤。如果您正在使用 Amazon Comprehend 控制台运行分析作业,请跳至 步骤 3:在 Amazon S3 中对文档运行分析作业

要运行分析作业,Amazon Comprehend 需要访问包含示例数据集并包含作业输出的 Amazon S3 存储桶。IAM 角色允许您控制 AWS 服务或用户的权限。在此步骤中,您会为 Amazon Comprehend 创建一个 IAM 角色。然后,您可以创建一项基于资源的策略并将其附加到该角色,该策略授予 Amazon Comprehend 访问您的 S3 存储桶的权限。在此步骤结束时,Amazon Comprehend 将拥有访问您的输入数据、存储输出以及运行情绪和实体分析作业的必要权限。

有关将 IAM 与 Amazon Comprehend 搭配使用的更多信息,请参阅 Amazon Comprehend 如何与 IAM 配合使用

先决条件

开始之前,请执行以下操作:

创建 IAM 角色

要访问您的亚马逊简单存储服务 (Amazon S3) 存储桶,Amazon Comprehend 需要担任 (IAM) 角色。 AWS Identity and Access Management IAM 角色声明 Amazon Comprehend 为可信实体。在 Amazon Comprehend 担任该角色并成为可信实体后,您可以向 Amazon Comprehend 授予存储桶访问权限。在此步骤中,您需要创建一个角色,将 Amazon Comprehend 标记为可信实体。您可以使用 AWS CLI 或 Amazon Comprehend 控制台创建角色。要使用控制台,请跳至 步骤 3:在 Amazon S3 中对文档运行分析作业

Amazon Comprehend 控制台允许您选择角色名称包含“Comprehend”且信任策略包含 comprehend.amazonaws.com 的角色。如果您希望控制台显示您的 CLI 创建的角色,请将其配置为符合这些标准。

为亚马逊 Comp AWS rehend (CLI) 创建 IAM 角色
  1. 在计算机上的代码或文本编辑器中,将以下信任策略保存为名为 comprehend-trust-policy.json 的 JSON 文档。该信任策略宣布 Amazon Comprehend 为可信实体,并允许其担任 IAM 角色。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "comprehend.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 要创建 IAM 角色,请运行以下 AWS CLI 命令。该命令会创建名为 AmazonComprehendServiceRole-access-role 的 IAM 角色并将信任策略附加到该角色。将 path/ 替换为本地计算机的 JSON 文档路径。

    aws iam create-role --role-name AmazonComprehendServiceRole-access-role --assume-role-policy-document file://path/comprehend-trust-policy.json
    提示

    如果您收到解析参数时出错消息,则说明您的 JSON 信任策略文件的路径可能不正确。根据您的主目录提供文件的相对路径。

  3. 复制 Amazon 资源名称(ARN) 并将其保存在文本编辑器中。ARN 具有类似于 arn:aws:iam::123456789012:role/AmazonComprehendServiceRole-access-role 的格式。您需要这个 ARN 才能运行 Amazon Comprehend 分析作业。

将 IAM policy 附加到 IAM 角色

要访问您的 Amazon S3 存储桶,Amazon Comprehend 需要列出、读取和写入权限。要向 Amazon Comprehend 授予所需的权限,请创建一个 IAM policy 并将其附加到您的 IAM 角色。IAM policy 允许 Amazon Comprehend 从您的存储桶中检索输入数据并将分析结果写入存储桶。创建策略后,将其附加到 IAM 角色。

创建 IAM policy (AWS CLI)
  1. 在本地将以下策略另存为名为 comprehend-access-policy.json 的 JSON 文档。它会向 Amazon Comprehend 授予对指定 S3 存储桶的访问权限。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Effect": "Allow" }, { "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Effect": "Allow" }, { "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Effect": "Allow" } ] }
  2. 要创建 S3 存储桶访问策略,请运行以下 AWS CLI 命令。将 path/ 替换为本地计算机的 JSON 文档路径。

    aws iam create-policy --policy-name comprehend-access-policy --policy-document file://path/comprehend-access-policy.json
  3. 复制访问策略 ARN 并将其保存在文本编辑器中。ARN 具有类似于 arn:aws:iam::123456789012:policy/comprehend-access-policy 的格式。您需要此 ARN 将访问策略附加到您的 IAM 角色。

将 IAM policy 附加到您的 IAM 角色 (AWS CLI)
  • 运行以下命令。将 policy-arn 替换为您在上一步中复制的访问策略 ARN。

    aws iam attach-role-policy --policy-arn policy-arn --role-name AmazonComprehendServiceRole-access-role

现在,您有一个名为 AmazonComprehendServiceRole-access-role 的 IAM 角色,该角色具有 Amazon Comprehend 的信任策略和授予 Amazon Comprehend 访问您的 S3 存储桶的访问权限的访问策略。您还可以将 IAM 角色的 ARN 复制到文本编辑器中。