IAM Access Analyzer

自动分析 S3 存储桶和 IAM 角色等资源策略,检测外部访问和未使用的权限,帮助加强安全态势的服务

概述

IAM Access Analyzer 是一项安全服务,利用数学推理引擎(自动推理)分析 AWS 资源上配置的策略,检测意外的外部访问和过度权限。它持续监控 S3 存储桶、IAM 角色、KMS 密钥、Lambda 函数、SQS 队列等资源策略,当资源可被外部 AWS 账户或公众访问时生成发现报告。此外,未使用访问分析功能通过分析 CloudTrail 访问日志来识别已授予但从未实际使用的权限,支持自动生成最小权限策略。自定义策略检查功能可将策略变更是否在预期范围内的自动验证集成到 CI/CD 管道中。

外部访问分析与发现

Access Analyzer 的外部访问分析使用自动推理引擎全面评估资源策略的条件表达式,检测可从信任边界(Zone of Trust)外部访问的资源。信任边界通常以 AWS 账户为单位设置,但使用 Organizations 时可将整个组织设为边界。检测到的发现详细记录了哪个资源向哪个主体授予了哪些操作权限。发现状态通过 Active、Archived、Resolved 三种状态管理,有意的外部共享可归类为 Archive 以减少误报噪音。预先定义归档规则后,符合特定条件的发现可自动归档。例如,设置「允许与特定合作伙伴账户共享 S3 存储桶」的规则后,匹配该模式的发现在生成时会自动归档。建议与 EventBridge 集成,在新发现产生时向 Security Hub 或 Slack 发送通知。

未使用访问分析与策略优化

未使用访问分析基于 CloudTrail 访问日志,识别已授予 IAM 用户和角色但实际从未使用的权限。指定分析期间(最长 180 天)后,该期间内从未调用的操作、未使用的访问密钥、未使用的密码、未使用的角色将作为发现报告。基于这些信息,可以删除过度权限,逐步接近最小权限原则。策略生成功能可根据 CloudTrail 日志自动生成仅包含实际使用操作的 IAM 策略。实务中有效的分阶段方法是:先以广泛权限(如 AdministratorAccess)开始运营,积累一段时间的日志后,再通过策略生成缩减到最小权限。未使用访问分析按账户启用,Organizations 的委托管理员账户可集中管理所有成员账户的分析结果。费用为每个 IAM 角色和用户每月 0.20 美元,即使在大规模环境中也易于预测成本。

自定义策略检查与 CI/CD 集成

自定义策略检查使用自动推理验证 IAM 策略变更是否符合组织的安全标准。例如,可以定义「禁止授予 s3:* 的策略」或「仅限指定角色访问特定 KMS 密钥」等规则,并以编程方式判定策略变更是否违反这些规则。CheckNoNewAccess API 比较现有策略和新策略,验证是否新增了访问权限。CheckAccessNotGranted API 确认策略中不包含对指定操作或资源的访问。将这些 API 集成到 CodePipeline 或 GitHub Actions 的审批步骤中,可在部署前自动阻止不符合安全标准的策略变更。在 CI 管道中预验证 Terraform 或 CloudFormation 模板中的 IAM 策略,是大规模组织加强治理的有效模式。验证结果以 PASS 或 FAIL 返回,可直接用于管道的条件分支。

共有するXB!