

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

# 适用于 Amazon Textract 的 Identity and Access Management
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) 是一种 AWS 服务，可以帮助管理员安全地控制对 AWS 资源的访问。IAM 管理员控制哪些人可以*身份验证*（已登录）和*授权*（有权限）可以使用 Amazon Textract 资源。IAM 是一个可以免费使用的 AWS 服务。

**Topics**
+ [Audience](#security_iam_audience)
+ [使用身份进行身份验证](#security_iam_authentication)
+ [使用策略管理访问](#security_iam_access-manage)
+ [Amazon Textract 如何与 IAM 配合使用](security_iam_service-with-iam.md)
+ [Amazon Textract 基于身份的策略示例](security_iam_id-based-policy-examples.md)
+ [排查 Amazon Textract 身份和访问的问题](security_iam_troubleshoot.md)

## Audience
<a name="security_iam_audience"></a>

如何使用AWS Identity and Access Management(IAM) 因您在 Amazon Textract 中执行的操作而异。

**服务用户**— 如果您使用 Amazon Textract 服务来完成作业，则您的管理员会为您提供所需的凭证和权限。随着您使用更多 Amazon Textract 功能来完成工作，您可能需要额外权限。了解如何管理访问权限可帮助您向管理员请求适合的权限。如果您无法访问 Amazon Textract 中的功能，请参阅[排查 Amazon Textract 身份和访问的问题](security_iam_troubleshoot.md).

**服务管理员**— 如果您在公司负责管理 Amazon Textract 资源，您可能对 Amazon Textract 具有完全访问权限。您有责任确定您的员工应访问哪些 Amazon Textract 功能和资源。然后，您必须向 IAM 管理员提交请求以更改服务用户的权限。请查看该页面上的信息以了解 IAM 的基本概念。要了解有关您的公司如何将 IAM 与 Amazon Textract 搭配使用的更多信息，请参阅[Amazon Textract 如何与 IAM 配合使用](security_iam_service-with-iam.md).

**IAM 管理员**— 如果您是 IAM 管理员，您可能希望了解有关您可以如何编写策略以管理对 Amazon Textract 的访问权限的详细信息。要查看您可在 IAM 中使用的 Amazon Textract 基于身份的策略示例，请参阅[Amazon Textract 基于身份的策略示例](security_iam_id-based-policy-examples.md).

## 使用身份进行身份验证
<a name="security_iam_authentication"></a>

身份验证是您使用身份凭证登录 AWS 的方法。有关使用AWS 管理控制台登录的更多信息，请参阅* IAM 用户指南*中的以[ IAM 用户或根用户身份登录](https://docs.aws.amazon.com/IAM/latest/UserGuide/console.html)AWS 管理控制台。

您必须作为AWS 账户根用户、IAM 用户或代入 IAM 角色以进行*身份验证*（登录到AWS）。您还可以使用公司的单一登录身份验证方法，甚至使用 Google 或 Facebook 登录。在这些情况下，您的管理员以前使用 IAM 角色设置了联合身份验证。在您使用来自其它公司的凭证访问 AWS 时，您间接地代入了角色。

要直接登录到[AWS 管理控制台](https://console.aws.amazon.com/)，请将密码与根用户电子邮件地址或 IAM 用户名一起使用。您可以使用根用户或 IAM 用户访问密钥以编程方式访问 AWS。AWS 提供了 SDK 和命令行工具，可使用您的凭证对您的请求进行加密签名。如果您不使用 AWS 工具，则必须自行对请求签名。使用 *Signature Version 4*（用于对入站 API 请求进行验证的协议）完成此操作。有关验证请求的更多信息，请参阅《*AWS 一般参考*》中的 [Signature Version 4 签名流程](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)。

无论使用何种身份验证方法，您可能还需要提供其它安全信息。例如，AWS 建议您使用多重身份验证 (MFA) 来提高账户的安全性。要了解更多信息，请参阅《*IAM 用户指南*》中的[在 AWS 中使用多重身份验证 (MFA)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)。

### AWS 账户根用户
<a name="security_iam_authentication-rootuser"></a>

 当您首次创建AWS 账户时，最初使用的是一个对账户中所有AWS服务和资源有完全访问权限的单点登录身份。此身份称为AWS 账户*根用户*，使用您创建账户时所用的电子邮件地址和密码登录，即可获得该身份。强烈建议您不使用根用户执行日常任务，即使是管理任务。相反，请遵循[仅使用根用户创建您的第一个 IAM 用户的最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users)。然后请妥善保存根用户凭证，仅用它们执行少数账户和服务管理任务。

### IAM 用户和组
<a name="security_iam_authentication-iamuser"></a>

*[IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*是AWS 账户内对某个人员或应用程序具有特定权限的一个身份。IAM 用户可能具有长期凭证，例如用户名和密码或一组访问密钥。要了解如何生成访问密钥，请参阅 *IAM 用户指南* 中的[管理 IAM 用户的访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)。为 IAM 用户生成访问密钥时，请确保查看并安全保存密钥对。您以后无法找回秘密访问密钥，而是必须生成新的访问密钥对。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)是一个指定一组 IAM 用户的身份。您不能使用组的身份登录。您可以使用组来一次性为多个用户指定权限。如果有大量用户，使用组可以更轻松地管理用户权限。例如，您可能具有一个名为 *IAMAdmins* 的组，并为该组授予权限以管理 IAM 资源。

用户与角色不同。用户唯一地与某个人员或应用程序关联，而角色旨在让需要它的任何人代入。用户具有永久的长期凭证，而角色提供临时凭证。要了解更多信息，请参阅 *IAM 用户指南*中的[何时创建 IAM 用户（而不是角色）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose)。

### IAM 角色
<a name="security_iam_authentication-iamrole"></a>

*[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*是AWS 账户中具有特定权限的身份。它类似于 IAM 用户，但与特定人员不关联。您可以通过[切换角色，在 AWS 管理控制台](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) 中暂时代入 IAM 角色。您可以调用 AWS CLI 或 AWS API 操作或使用自定义 URL 以代入角色。有关使用角色的方法的更多信息，请参阅 *IAM 用户指南* 中的[使用 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)。

具有临时凭证的 IAM 角色在以下情况下很有用：
+ **临时 IAM 用户权限** – IAM 用户可以代入 IAM 角色，以暂时获得不同的权限以执行特定的任务。
+ **联合身份用户访问** – 您可以不创建 IAM 用户，而是使用来自 Directory Service、您的企业用户目录或 Web 身份提供商的现有身份。这些用户被称为*联合用户*。在通过[身份提供商请求访问权限时，AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)将为联合身份用户分配角色。有关联合身份用户的更多信息，请参阅 *IAM 用户指南* 中的[联合身份用户和角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html#intro-access-roles)。
+ **跨账户访问** – 您可以使用 IAM 角色以允许不同账户中的某个人（可信委托人）访问您的账户中的资源。角色是授予跨账户访问权限的主要方式。但是，对于某些 AWS 服务，您可以将策略直接附加到资源（而不是使用角色作为代理）。要了解用于跨账户访问的角色和基于资源的策略之间的差别，请参阅 *IAM 用户指南* 中的 [IAM 角色与基于资源的策略有何不同](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)。
+ **跨服务访问** – 某些 AWS 服务使用其它 AWS 服务中的功能。例如，当您在某个服务中进行调用时，该服务通常会在 Amazon EC2 中运行应用程序或在 Amazon S3 中存储对象。服务可能会使用发出调用的委托人的权限、使用服务角色或使用服务相关角色来执行此操作。
  + **委托人权限** – 当您使用 IAM 用户或角色在 AWS 中执行操作时，您将被视为委托人。策略向委托人授予权限。使用某些服务时，您可能会执行一个操作，此操作然后在不同服务中触发另一个操作。在这种情况下，您必须具有执行这两个操作的权限。要查看某个操作是否需要策略中的其他相关操作，请参阅[Amazon Textract 的操作、资源和条件键](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazontextract.html)中的*服务授权参考*.
  + **服务角色** – 服务角色是服务代表您在您的账户中执行操作而担任的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅 *IAM 用户指南*中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
  + **服务相关角色** – 服务相关角色是与 AWS 服务关联的一种服务角色。服务可以代入代表您执行操作的角色。服务相关角色显示在您的 IAM 账户中，并归该服务所有。IAM 管理员可以查看但不能编辑服务相关角色的权限。
+ **在 Amazon EC2 上运行的应用程序** – 您可以使用 IAM 角色管理在 EC2 实例上运行并发出 AWS CLI 或 AWS API 请求的应用程序的临时凭证。这优先于在 EC2 实例中存储访问密钥。要将 AWS 角色分配给 EC2 实例并使其对该实例的所有应用程序可用，您可以创建一个附加到实例的实例配置文件。实例配置文件包含角色，并使 EC2 实例上运行的程序能够获得临时凭证。有关更多信息，请参阅 [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) 中的*使用 IAM 角色为 Amazon EC2 实例上运行的应用程序授予权限*。

要了解是使用 IAM 角色还是 IAM 用户，请参阅 *IAM 用户指南* 中的[何时创建 IAM 角色（而不是用户）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose_role)。

## 使用策略管理访问
<a name="security_iam_access-manage"></a>

您将创建策略并将其附加到 IAM 身份或AWS资源，以便控制AWS中的访问。策略是AWS中的对象；在与标识或资源相关联时，策略定义它们的权限。您可以通过 root 用户或 IAM 用户身份登录，也可以代入 IAM 角色。随后，当您提出请求时，AWS会评估相关的基于身份或基于资源的策略。策略中的权限确定是允许还是拒绝请求。大多数策略在 AWS 中存储为 JSON 文档。有关 JSON 策略文档的结构和内容的更多信息，请参阅 *IAM 用户指南* 中的 [JSON 策略概览](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)。

管理员可以使用 AWS JSON 策略来指定谁有权访问什么内容。也就是说，哪个**委托人**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

每个 IAM 实体（用户或角色）最初没有任何权限。换言之，预设情况下，用户什么都不能做，甚至不能更改他们自己的密码。要为用户授予执行某些操作的权限，管理员必须将权限策略附加到用户。或者，管理员可以将用户添加到具有预期权限的组中。当管理员为某个组授予访问权限时，该组内的全部用户都会获得这些访问权限。

IAM 策略定义操作的权限，无关乎您使用哪种方法执行操作。例如，假设您有一个允许 `iam:GetRole` 操作的策略。具有该策略的用户可以从 AWS 管理控制台、AWS CLI 或 AWS API 获取角色信息。

### 基于身份的策略
<a name="security_iam_access-manage-id-based-policies"></a>

基于身份的策略是可附加到身份（如 IAM 用户、用户组或角色）的 JSON 权限策略文档。这些策略控制用户和角色可在何种条件下对哪些资源执行哪些操作。要了解如何创建基于身份的策略，请参阅 *IAM 用户指南*中的[创建 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

基于身份的策略可以进一步归类为*内联策略*或*托管式策略*。内联策略直接嵌入单个用户、组或角色中。托管式策略是可以附加到AWS 账户中的多个用户、组和角色的独立策略。托管式策略包括 AWS 托管式策略和客户托管式策略。要了解如何在托管式策略和内联策略之间进行选择，请参阅 *IAM 用户指南* 中的[在托管式策略与内联策略之间进行选择](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#choosing-managed-or-inline)。

### 基于资源的策略
<a name="security_iam_access-manage-resource-based-policies"></a>

基于资源的策略是附加到资源的 JSON 策略文档。基于资源的策略的示例包括 IAM *角色信任策略* 和 Amazon S3 *存储桶策略*。在支持基于资源的策略的服务中，服务管理员可以使用它们来控制对特定资源的访问。对于在其中附加策略的资源，策略定义指定委托人可以对该资源执行哪些操作以及在什么条件下执行。您必须在基于资源的策略中[指定委托人](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。委托人可以包括账户、用户、角色、联合身份用户或 AWS 服务。

基于资源的策略是位于该服务中的内联策略。您不能在基于资源的策略中使用来自 IAM 的 AWS 托管式策略。

### 访问控制列表 (ACL)
<a name="security_iam_access-manage-acl"></a>

访问控制列表 (ACL) 控制哪些委托人（账户成员、用户或角色）有权访问资源。ACL 与基于资源的策略类似，尽管它们不使用 JSON 策略文档格式。

Amazon S3、AWS WAF 和 Amazon VPC 是支持 ACL 的服务示例。要了解有关 ACL 的更多信息，请参阅 *Amazon Simple Storage Service 开发人员指南* 中的[访问控制列表 (ACL) 概览](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html)。

### 其他策略类型
<a name="security_iam_access-manage-other-policies"></a>

AWS 支持额外的、不太常用的策略类型。这些策略类型可以设置更常用的策略类型向您授予的最大权限。
+ **权限边界** – 权限边界是一个高级功能，用于设置基于身份的策略可以为 IAM 实体（IAM 用户或角色）授予的最大权限。您可为实体设置权限边界。这些结果权限是实体的基于身份的策略及其权限边界的交集。在 `Principal` 中指定用户或角色的基于资源的策略不受权限边界限制。任一项策略中的显式拒绝将覆盖允许。有关权限边界的更多信息，请参阅 *IAM 用户指南*中的 [IAM 实体的权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。
+ **服务控制策略 (SCP)** – SCP 是 JSON 策略，指定了组织或组织单位 (OU) 在 AWS Organizations 中的最大权限。AWS Organizations 服务可以分组和集中管理您的企业拥有的多个 AWS 账户 账户。如果在组织内启用了所有功能，则可对任意或全部账户应用服务控制策略 (SCP)。SCP 限制成员账户中实体的权限，包括每个 AWS 账户 根用户。有关 Organizations 和 SCP 的更多信息，请参阅《*AWS Organizations 用户指南*》中的 [SCP 的工作原理](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html)。
+ **会话策略** – 会话策略是当您以编程方式为角色或联合身份用户创建临时会话时作为参数传递的高级策略。结果会话的权限是用户或角色的基于身份的策略和会话策略的交集。权限也可以来自基于资源的策略。任一项策略中的显式拒绝将覆盖允许。有关更多信息，请参阅 *IAM 用户指南*中的[会话策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

### 多个策略类型
<a name="security_iam_access-manage-multiple-policies"></a>

当多个类型的策略应用于一个请求时，生成的权限更加复杂和难以理解。要了解 AWS 如何确定在涉及多种策略类型时是否允许请求，请参阅 *IAM 用户指南*中的[策略评估逻辑](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。

# Amazon Textract 如何与 IAM 配合使用
<a name="security_iam_service-with-iam"></a>

在使用 IAM 管理对 Amazon Textract 的访问权限之前，您应该了解哪些 IAM 功能可用于 Amazon Textract。要高级了解 Amazon Textract 和其他方式AWS使用 IAM 的服务，请参阅[AWS使用 IAM 的 IAM 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)中的*IAM 用户指南*.

**Topics**
+ [Amazon Textract 基于身份的策略](#security_iam_service-with-iam-id-based-policies)
+ [Amazon Textract 基于资源的策略](#security_iam_service-with-iam-resource-based-policies)
+ [基于 Amazon Textract 的标签的授权](#security_iam_service-with-iam-tags)
+ [Amazon Textract IAM 角色](#security_iam_service-with-iam-roles)

## Amazon Textract 基于身份的策略
<a name="security_iam_service-with-iam-id-based-policies"></a>

通过使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。Amazon Textract 支持特定的操作、资源和条件键。要了解在 JSON 策略中使用的所有元素，请参阅 *IAM 用户指南* 中的 [IAM JSON 策略元素参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### 操作
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

管理员可以使用 AWS JSON 策略来指定谁有权访问什么内容。也就是说，哪个**委托人** 可以对什么**资源** 执行**操作**，以及在什么 **条件** 下执行。

JSON 策略的 `Action` 元素描述可用于在策略中允许或拒绝访问的操作。策略操作通常与关联的 AWS API 操作同名。有一些例外情况，例如没有匹配 API 操作的*仅限权限* 操作。还有一些操作需要在策略中执行多个操作。这些附加操作称为*相关操作*。

在策略中包含操作以授予执行相关操作的权限。

Amazon Textract 中的异步操作需要授予两个操作权限，一个用于开始操作，另一个用于获取操作。此外，如果您使用 Amazon S3 存储桶传递文档，则需要授予账户读取访问权限。

在 Amazon Textract 中，所有政策操作都以：`textract:`. 例如，要授予某人使用 Amazon Textract 操作的权限。`AnalyzeDocument`操作，你包括`textract:AnalyzeDocument`他们的政策中的行动。策略语句必须包含 `Action` 或 `NotAction` 元素。Amazon Textract 定义了一组自己的操作，以描述您可以使用该服务执行的任务。

要在单个语句中指定多项操作，请使用逗号将它们隔开，如下所示。

```
"Action": [
      "textract:action1",
      "textract:action2"
```

您也可以使用通配符 (\$1) 指定多个操作。例如，要指定以单词 `Describe` 开头的所有操作，请包括以下操作。

```
"Action": "textract:Describe*"
```



有关 Amazon Textract 操作的列表，请参阅[Amazon Textract 定义的操作](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazontextract.html#amazontextract-actions-as-permissions)中的*IAM 用户指南*.

### Resources（资源）
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

管理员可以使用 AWS JSON 策略来指定谁有权访问什么内容。也就是说，哪个**委托人**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Resource` JSON 策略元素指定要向其应用操作的一个或多个对象。语句必须包含 `Resource` 或 `NotResource` 元素。作为最佳实践，请使用其 [Amazon Resource Name（ARN）](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)指定资源。对于支持特定资源类型（称为*资源级权限*）的操作，您可以执行此操作。

对于不支持资源级权限的操作（如列出操作），请使用通配符 (\$1) 指示语句应用于所有资源。

```
"Resource": "*"
```

Amazon Textract 不支持在策略中指定资源 ARN。

### 条件键
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

管理员可以使用 AWS JSON 策略来指定谁有权访问什么内容。也就是说，哪个**委托人**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

在 `Condition` 元素（或 `Condition` *块*）中，可以指定语句生效的条件。`Condition` 元素是可选的。您可以创建使用[条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)（例如，等于或小于）的条件表达式，以使策略中的条件与请求中的值相匹配。

如果您在一个语句中指定多个 `Condition` 元素，或在单个 `Condition` 元素中指定多个键，则 AWS 使用逻辑 `AND` 运算评估它们。如果您为单个条件键指定多个值，则 AWS 使用逻辑 `OR` 运算来评估条件。在授予语句的权限之前必须满足所有的条件。

 在指定条件时，您也可以使用占位符变量。例如，只有在使用 IAM 用户名标记 IAM 用户时，您才能为其授予访问资源的权限。有关更多信息，请参阅 *IAM 用户指南* 中的 [IAM 策略元素：变量和标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)。

AWS支持全局条件键和特定于服务的条件键。要查看所有 AWS 全局条件键，请参阅 *IAM 用户指南*中的 [AWS 全局条件上下文键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

Amazon Textract 不提供任何服务特定的条件键，但支持使用某些全局条件键。所有列表AWS全局条件键，请参阅[AWS全局条件上下文键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)中的*IAM 用户指南*.

### 示例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



要查看 Amazon Textract 基于身份的策略的示例，请参阅。[Amazon Textract 基于身份的策略示例](security_iam_id-based-policy-examples.md).

## Amazon Textract 基于资源的策略
<a name="security_iam_service-with-iam-resource-based-policies"></a>

Amazon Textract 不支持基于资源的策略。

## 基于 Amazon Textract 的标签的授权
<a name="security_iam_service-with-iam-tags"></a>

Amazon Textract 不支持标记资源或基于标签的访问控制。

## Amazon Textract IAM 角色
<a name="security_iam_service-with-iam-roles"></a>

[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是 AWS 账户中具有特定权限的实体。

### 将临时凭证用于 Amazon Textract
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

您可以使用临时凭证进行联合身份登录，担任 IAM 角色或担任跨账户角色。您可以通过调用 AWS STS API 操作（如 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 或 [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)）获得临时安全凭证。

Amazon Textract 支持使用临时凭证。

### 服务相关角色
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)允许 AWS 服务访问其它服务中的资源以代表您完成操作。服务相关角色显示在您的 IAM 账户中，并归该服务所有。IAM 管理员可以查看但不能编辑服务相关角色的权限。

Amazon Textract 不支持服务相关角色。

**注意**  
由于 Amazon Textract 不支持服务相关角色，它不支持 AWS 服务委托人。有关服务主体的更多信息，请参阅。[AWS 服务委托人](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services)中的*IAM 用户指南*

### 服务角色
<a name="security_iam_service-with-iam-roles-service"></a>

此功能允许服务代表您担任[服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。此角色允许服务访问其它服务中的资源以代表您完成操作。服务角色显示在您的 IAM 账户中，并归该账户所有。这意味着，IAM 管理员可以更改该角色的权限。但是，这样做可能会中断服务的功能。

Amazon Textract 支持服务角色。

# Amazon Textract 基于身份的策略示例
<a name="security_iam_id-based-policy-examples"></a>

默认情况下，IAM 用户和角色没有创建或修改 Amazon Textract 资源的权限。它们还无法使用 AWS 管理控制台、AWS CLI 或 AWS API 执行任务。IAM 管理员必须创建 IAM 策略，以便为用户和角色授予权限以对所需的指定资源执行特定的 API 操作。然后，管理员必须将这些策略附加到需要这些权限的 IAM 用户或组。

要了解如何使用这些示例 JSON 策略文档创建 IAM 基于身份的策略，请参阅 *IAM 用户指南* 中的[在 JSON 选项卡上创建策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)。

**Topics**
+ [策略最佳实践](#security_iam_service-with-iam-policy-best-practices)
+ [允许用户查看他们自己的权限](#security_iam_id-based-policy-examples-view-own-permissions)
+ [在 Amazon Textract 中授予对同步操作的访问权限](#security_iam_sync-actions)
+ [在 Amazon Textract 中授予对异步操作的访问权限](#security_iam_async-actions)

## 策略最佳实践
<a name="security_iam_service-with-iam-policy-best-practices"></a>

基于身份的策略非常强大。它们确定某个人是否可以创建、访问或删除您账户中的 Amazon Textract 资源。这些操作可能会使 AWS 账户 产生成本。创建或编辑基于身份的策略时，请遵循以下准则和建议：
+ **开始使用AWS托管策略**— 要快速开始使用 Amazon Textract，请使用AWS为您的员工授予他们所需的权限的托管策略。这些策略已在您的账户中提供，并由 AWS 维护和更新。有关更多信息，请参阅 *IAM 用户指南中的[开始使用 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-use-aws-defined-policies) 托管式策略中的权限*。
+ **授予最低权限** – 创建自定义策略时，仅授予执行任务所需的许可。最开始只授予最低权限，然后根据需要授予其它权限。这样做比起一开始就授予过于宽松的权限而后再尝试收紧权限来说更为安全。有关更多信息，请参阅 *IAM 用户指南* 中的[授予最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。
+ **为敏感操作启用 MFA** – 为增强安全性，要求 IAM 用户使用多重身份验证 (MFA) 来访问敏感资源或 API 操作。要了解更多信息，请参阅《*IAM 用户指南*》中的[在 AWS 中使用多重身份验证 (MFA)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)。
+ **使用策略条件来增强安全性** – 在切实可行的范围内，定义基于身份的策略在哪些情况下允许访问资源。例如，您可编写条件来指定请求必须来自允许的 IP 地址范围。您也可以编写条件，以便仅允许指定日期或时间范围内的请求，或者要求使用 SSL 或 MFA。有关更多信息，请参阅 。[IAM JSON 策略元素：Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中的*IAM 用户指南*.

## 允许用户查看他们自己的权限
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

该示例说明了您如何创建策略，以允许 IAM 用户查看附加到其用户身份的内联和托管式策略。此策略包括在控制台上完成此操作或者以编程方式使用 AWS CLI 或 AWS API 所需的权限。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 在 Amazon Textract 中授予对同步操作的访问权限
<a name="security_iam_sync-actions"></a>

此示例策略向您的 IAM 用户授予对 Amazon Textract 中的同步操作的访问权限AWSaccount.

```
"Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "textract:DetectDocumentText",
                "textract:AnalyzeDocument"
            ],
            "Resource": "*"
        }
    ]
```

## 在 Amazon Textract 中授予对异步操作的访问权限
<a name="security_iam_async-actions"></a>

以下示例策略为您的 IAM 用户提供了AWS账户访问 Amazon Textract 中使用的所有异步操作。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "textract:StartDocumentTextDetection",
                "textract:StartDocumentAnalysis",
                "textract:GetDocumentTextDetection",
                "textract:GetDocumentAnalysis"
            ],
            "Resource": "*"
        }
    ]
}
```

# 排查 Amazon Textract 身份和访问的问题
<a name="security_iam_troubleshoot"></a>

可以使用以下信息，以帮助您诊断和修复在使用 Amazon Textract 和 IAM 时可能遇到的常见问题。

**Topics**
+ [我无权在 Amazon Textract 中执行操作](#security_iam_troubleshoot-no-permissions)
+ [我无权执行 iam:PassRole](#security_iam_troubleshoot-passrole)
+ [我想要查看我的访问密钥](#security_iam_troubleshoot-access-keys)
+ [我是管理员并希望允许其他人访问 Amazon Textract](#security_iam_troubleshoot-admin-delegate)
+ [我想要允许我的以外的人员AWS用于访问我的 Amazon Textract 资源的账户](#security_iam_troubleshoot-cross-account-access)

## 我无权在 Amazon Textract 中执行操作
<a name="security_iam_troubleshoot-no-permissions"></a>

如果 AWS 管理控制台 告诉您，您无权执行某个操作，则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。

下面的示例错误发生在`mateojackson`IAM 用户尝试运行`DetectDocumentText`在测试图片上但没有`textract:DetectDocumentText`权限。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: textract:DetectDocumentText on resource: textimage.png
```

在这种情况下，Mateo 请求他的管理员更新其策略，以允许他使用 `textract:DetectDocumentText` 操作访问 `textimage.png` 资源。

## 我无权执行 iam:PassRole
<a name="security_iam_troubleshoot-passrole"></a>

如果您收到错误消息，提示您无权执行 `iam:PassRole` 操作，则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。要求该人员更新您的策略，以允许您将角色传递给 Amazon Textract。

有些 AWS 服务允许您将现有角色传递到该服务，而不是创建新服务角色或服务相关角色。为此，您必须具有将角色传递到服务的权限。

当名为的 IAM 用户时，会发生以下示例错误：`marymajor`尝试使用控制台在 Amazon Textract 中执行操作。但是，服务必须具有服务角色所授予的权限才可执行操作。Mary 不具有将角色传递到服务的权限。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在这种情况下，Mary 请求她的管理员来更新其策略，以允许她执行 `iam:PassRole` 操作。

## 我想要查看我的访问密钥
<a name="security_iam_troubleshoot-access-keys"></a>

在创建 IAM 用户访问密钥后，您可以随时查看您的访问密钥 ID。但是，您无法再查看您的秘密访问密钥。如果您丢失了私有密钥，则必须创建一个新的访问密钥对。

访问密钥包含两部分：访问密钥 ID（例如 `AKIAIOSFODNN7EXAMPLE`）和秘密访问密钥（例如 `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`）。与用户名和密码一样，您必须同时使用访问密钥 ID 和秘密访问密钥对请求执行身份验证。像对用户名和密码一样，安全地管理访问密钥。

**重要**  
 请不要向第三方提供访问密钥，即便是为了帮助[找到您的规范用户 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId) 也不行。如果您这样做，可能会向某人提供对您的账户的永久访问权限。

当您创建访问密钥对时，系统会提示您将访问密钥 ID 和秘密访问密钥保存在一个安全位置。秘密访问密钥仅在您创建它时可用。如果丢失了您的秘密访问密钥，您必须为 IAM 用户添加新的访问密钥。您最多可拥有两个访问密钥。如果您已有两个密钥，则必须删除一个密钥对，然后再创建新的密钥。要查看说明，请参阅 *IAM 用户指南*中的[管理访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey)。

## 我是管理员并希望允许其他人访问 Amazon Textract
<a name="security_iam_troubleshoot-admin-delegate"></a>

要允许其他人访问 Amazon Textract，您必须为需要访问权限的人员或应用程序创建一个 IAM 实体（用户或角色）。它们将使用该实体的凭证访问 AWS。然后，您必须将策略附加到实体，以便在 Amazon Textract 中为他们（它们）授予正确的权限。

要立即开始使用，请参阅 *IAM 用户指南*中的[创建您的第一个 IAM 委派用户和组](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-delegated-user.html)。

## 我想要允许我的以外的人员AWS用于访问我的 Amazon Textract 资源的账户
<a name="security_iam_troubleshoot-cross-account-access"></a>

您可以创建一个角色，以便其它账户中的用户或您组织外的人员可以使用该角色来访问您的资源。您可以指定谁值得信赖，可以代入角色。对于支持基于资源的策略或访问控制列表 (ACL) 的服务，您可以使用这些策略向人员授予对您的资源的访问权。

要了解更多信息，请参阅以下内容：
+ 要了解 Amazon Textract 是否支持这些功能，请参阅。[Amazon Textract 如何与 IAM 配合使用](security_iam_service-with-iam.md).
+ 要了解如何为您拥有的 AWS 账户 中的资源提供访问权限，请参阅 *IAM 用户指南*中的[为您拥有的另一个 AWS 账户 中的 IAM 用户提供访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)。
+ 要了解如何为第三方AWS 账户提供您的资源的访问权限，请参阅 *IAM 用户指南*中的[为第三方拥有的AWS 账户提供访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)。
+ 要了解如何通过联合身份验证提供访问权限，请参阅 *IAM 用户指南*中的[为经过外部身份验证的用户（联合身份验证）提供访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 要了解使用角色和基于资源的策略进行跨账户访问之间的差别，请参阅 *IAM 用户指南*中的 [IAM 角色与基于资源的策略有何不同](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)。