

# 了解 IAM Access Analyzer 调查发现的工作原理
<a name="access-analyzer-concepts"></a>

本主题介绍了 IAM Access Analyzer 中用于帮助您熟悉访问分析器如何监控对 AWS 资源的访问的概念和术语。

## 外部访问调查发现
<a name="access-analyzer-work-with-findings-external"></a>

对于在信任区域之外共享的每个资源实例，仅生成一次外部访问调查发现。每当修改基于资源的策略时，IAM Access Analyzer 都会分析策略。如果更新的策略共享结果中已标识的资源，但具有不同的权限或条件，则会为该资源共享实例生成新结果。影响**资源控制策略（RCP）限制**的资源控制策略更改也会生成新的调查发现。IAM Access Analyzer 还会评估由[声明性策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)建立的访问控制配置。如果第一个调查发现中的访问被删除，则该调查发现的状态将更新为**已解决**。

所有调查发现保持**活动**状态，直到您将其存档或删除生成调查发现的访问。在删除访问时，调查发现状态将更新为**已解决**。

**注意**  
修改策略后，IAM Access Analyzer 可能需要 30 分钟来分析资源，然后更新外部访问调查发现。资源控制策略（RCP）更改不会触发对调查发现中报告的资源进行重新扫描。IAM Access Analyzer 会在下一个定期扫描期间（24 小时内）分析新策略或更新后的策略。

## IAM Access Analyzer 如何生成外部访问的调查发现
<a name="access-analyzer-concepts-external"></a>

AWS Identity and Access Management Access Analyzer 使用一种名为 [Zelkova](https://aws.amazon.com/blogs/security/protect-sensitive-data-in-the-cloud-with-automated-reasoning-zelkova/) 的技术来分析 IAM 策略并识别对资源的外部访问。

Zelkova 将 IAM 策略转换为等效逻辑语句，并通过一套通用和专用逻辑求解器（可满足性模理论）运行它们。IAM Access Analyzer 反复将 Zelkova 应用于策略，使用越来越具体的查询来根据策略内容表征策略允许的访问类型。有关可满足性模理论的更多信息，请参阅[可满足性模理论](https://people.eecs.berkeley.edu/~sseshia/pubdir/SMT-BookChapter.pdf)。

对于外部访问分析器，IAM Access Analyzer 不会检查访问日志来确定外部实体是否实际访问了您信任区域内的资源。相反，当基于资源的策略允许访问资源时，它会生成调查发现，无论该资源是否被外部实体访问。

此外，IAM Access Analyzer 在做出决定时不会考虑任何外部账户的状态。如果其指示账户 111122223333 可以访问您的 Amazon S3 存储桶，则它没有有关该账户中的用户、角色、服务控制策略（SCP）或其他相关配置的任何信息。这是为了保护客户隐私，因为 IAM Access Analyzer 不知道谁拥有其他账户。这也是为了安全起见，因为即使当前没有可以使用它的活跃主体，了解潜在的外部访问也很重要。

IAM Access Analyzer 仅考虑外部用户不能直接影响的或对授权有影响的某些 IAM 条件键。有关 IAM Access Analyzer 考虑的条件键的示例，请参阅 [IAM Access Analyzer 筛选条件键](access-analyzer-reference-filter-keys.md)。

IAM Access Analyzer 当前不会报告来自 AWS 服务 主体或内部服务账户的调查发现。在极少数情况下，它无法完全确定策略语句是否授予对外部实体的访问权限，它会错误地声明一个假阳性结果。这是因为 IAM Access Analyzer 旨在提供您账户中资源共享的全面视图，并减少假阴性结果。

## 内部访问调查发现
<a name="access-analyzer-work-with-findings-internal"></a>

要使用内部访问分析，您必须首先通过选择要监控的特定资源来配置分析器。配置后，当您的组织或账户内的主体（IAM 用户或角色）有权访问所选资源时，会生成内部访问调查发现。当分析器下次扫描指定资源并识别有权访问该资源的主体时，会生成新的调查发现。如果更新后的策略允许已在调查发现中识别但具有不同权限或条件的主体，则会为该主体和资源实例生成新的调查发现。此更新后的策略可以是基于资源的策略、基于身份的策略、服务控制策略 (SCP) 或资源控制策略 (RCP)。IAM Access Analyzer 还会评估由[声明性策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)建立的访问控制配置。

**注意**  
内部访问调查发现只能通过 [ListFindingsV2](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ListFindingsV2.html) API 操作获得。

## IAM Access Analyzer 如何生成内部访问的调查发现
<a name="access-analyzer-concepts-internal"></a>

要分析内部访问，即使您已经创建了一个分析器来生成外部访问调查发现或未使用的访问调查发现，也必须为资源的内部访问调查发现创建一个单独的分析器。

创建内部访问分析器后，IAM Access Analyzer 会评估指定账户或组织内的所有基于资源的策略、基于身份的策略、服务控制策略 (SCP)、资源控制策略 (RCP) 和权限边界。

通过创建专用于内部访问选定资源的分析器，您可以识别：
+ 您的组织或账户内的主体何时可以访问选定资源
+ 根据所有适用策略的交集，主体允许的总有效权限
+ 复杂的访问路径，其中主体根据身份策略和资源策略的组合获得访问权限

**注意**  
IAM Access Analyzer 无法为包含超过 70,000 个主体（IAM 用户和角色合并）的组织生成内部访问调查发现。

## 未使用的访问调查发现
<a name="access-analyzer-work-with-findings-unused"></a>

根据创建分析器时指定的天数，为选定账户或组织内的 IAM 实体（主体）生成未使用的访问调查发现。如果满足以下条件之一，则分析器下次扫描实体时会生成新的调查发现：
+ 角色在指定的天数内处于非活动状态。
+ 未使用的权限、未使用的用户密码或未使用的用户访问密钥超过指定的天数。

**注意**  
未使用的访问调查发现只能通过 [ListFindingsV2](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ListFindingsV2.html) API 操作获得。

## IAM Access Analyzer 如何生成未使用访问的调查发现
<a name="access-analyzer-concepts-unused"></a>

要分析未使用访问，即使您已经创建了分析器来为资源生成外部或外部访问调查发现，也必须为角色创建一个单独的未使用访问调查发现分析器。

创建未使用访问分析器后，IAM Access Analyzer 会查看访问活动来识别未使用访问。IAM Access Analyzer 会检查 AWS 组织和账户中所有 IAM 用户、IAM 角色（包括服务角色）、用户访问密钥和用户密码的上次访问信息。这可以帮助识别未使用访问。

**注意**  
[服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)是一种特殊类型的服务角色，它与 AWS 服务相关联并由该服务拥有。未使用的访问分析器不会分析服务相关角色。

对于活跃的 IAM 角色和用户，IAM Access Analyzer 使用 IAM 服务和操作的上次访问信息来识别未使用的权限。这样，您就可以在 AWS 组织和账户级别扩展审查过程。您还可以使用上次访问的操作信息来深入调查各个角色。这样可更精细地了解哪些特定权限未被利用。

通过创建专用于未使用访问的分析器，您可以全面查看和识别 AWS 环境中的未使用访问，从而补充现有外部访问分析器生成的调查结果。