Access Analyzer 资源类型 - AWS Identity and Access Management
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Access Analyzer 资源类型

Access Analyzer 分析应用于您已启用 Access Analyzer 的区域中 AWS 资源的基于资源的策略。仅分析基于资源的策略。查看有关每个资源的信息以了解有关 Access Analyzer 如何为每个资源类型生成结果的详细信息。

Amazon Simple Storage Service 存储桶

当 Access Analyzer 分析 Amazon S3 存储桶时,它会在应用于存储桶的 Amazon S3 存储桶策略、ACL 或访问点向对外部实体授予访问权限时生成结果。外部实体是可用于创建筛选器(该筛选器不在信任区域内)的委托人或其他实体。例如,如果存储桶策略向其他账户授予访问权限或允许公共访问,则 Access Analyzer 会生成结果。不过,如果您在存储桶上启用阻止公共访问设置,则可以阻止账户级别或存储桶级别的访问。

Amazon S3 块公共访问 设置将覆盖应用于存储桶的存储桶策略。这些设置还将覆盖应用于存储桶的访问点的访问点策略。当策略发生更改时,Access Analyzer 会在存储桶级别分析块公共访问设置。但是,它仅评估账户级别的阻止公共访问设置(每 6 小时一次)。这意味着,Access Analyzer 可能在最多 6 小时内无法为对存储桶的公共访问生成或解决结果。例如,如果您有允许公共访问的存储桶策略,则 Access Analyzer 会为该访问生成结果。如果您随后启用阻止公共访问来阻止在账户级别对存储桶进行的所有公共访问,则 Access Analyzer 在最多 6 小时内不会解决存储桶策略的结果,即使已阻止对存储桶的所有公共访问。

AWS Identity and Access Management 角色

对于 IAM 角色,Access Analyzer 会分析信任策略。在角色信任策略中,您可以定义您信任代入该角色的委托人。角色信任策略是附加到 IAM 中角色的必需的基于资源的策略。Access Analyzer 为信任区域内可由信任区域外的外部实体访问的角色生成结果。

注意

IAM 角色是一类全局资源。如果角色信任策略向外部实体授予访问权限,则 Access Analyzer 会在每个已启用的区域中生成结果。

AWS Key Management Service 密钥

对于 AWS KMS 客户主密钥 (CMK),Access Analyzer 会分析应用于密钥的密钥策略和授权。如果密钥策略或授权允许外部实体访问密钥,则 Access Analyzer 会生成结果。例如,如果您在策略语句中使用 kms:CallerAccount 条件键以允许访问特定 AWS 账户中的所有用户,并且您指定了当前账户(当前分析器的信任区域)以外的账户,则 Access Analyzer 会生成结果。要了解有关 IAM 策略语句中的 KMS 条件键的更多信息,请参阅 AWS KMS 条件键

在 Access Analyzer 分析 KMS 密钥时,它会读取密钥元数据,例如密钥策略和授权列表。如果密钥策略不允许 Access Analyzer 角色读取密钥元数据,则会生成“Access Denied (访问被拒绝)”错误结果。例如,如果以下示例策略语句是应用于密钥的唯一策略,则会导致 Access Analyzer 中出现“Access Denied (访问被拒绝)”错误结果:

{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Admin" }, "Action": "kms:*", "Resource": "*" }

由于此语句仅允许 AWS 账户 111122223333 中名为 Admin 的角色访问密钥,因此会生成“Access Denied (访问被拒绝)”错误结果,原因是 Access Analyzer 无法完全分析密钥。Findings (结果) 表中会显示一个错误结果(红色文本)。该结果看起来类似于以下内容:

{ "error": "ACCESS_DENIED", "id": "12345678-1234-abcd-dcba-111122223333", "analyzedAt": "2019-09-16T14:24:33.352Z", "resource": "arn:aws:kms:us-west-2:1234567890:key/1a2b3c4d-5e6f-7a8b-9c0d-1a2b3c4d5e6f7g8a", "resourceType": "AWS::KMS::Key", "status": "ACTIVE", "updatedAt": "2019-09-16T14:24:33.352Z" }

在创建 KMS CMK 时,为访问密钥而授予的权限取决于您创建密钥的方式。如果您收到密钥资源的“Access Denied (访问被拒绝)”错误结果,请将以下策略语句应用于密钥资源以向 Access Analyzer 授予对密钥的访问权限。

{ "Sid": "Allow Access Analyzer access to key metadata", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:DescribeKey", "kms:GetKeyPolicy", "kms:List*" ], "Resource": "*" },

在收到 KMS 密钥资源的“Access Denied (访问被拒绝)”结果,然后通过更新密钥策略来解决此结果后,此结果的状态将更新为“Resolved (已解决)”。如果存在向外部实体授予密钥权限的策略语句或密钥授权,您可能会看到密钥资源的其他结果。

AWS Lambda 函数和层

对于 AWS Lambda 函数,Access Analyzer 会分析向外部实体授予对函数的访问权限的策略(包括策略中的条件语句)。Access Analyzer 还会分析在将 AWS Lambda API 的 AddPermission 操作与 EventSourceToken 结合使用时授予的权限。

Amazon Simple Queue Service 队列

对于 Amazon SQS 队列,Access Analyzer 会分析允许外部实体访问队列的策略(包括策略中的条件语句)。