使用 IAM Access Analyzer 检测过度访问权限 - 外部访问与未使用权限分析
基于 CloudTrail 检测 IAM 角色的未使用权限,并自动生成最小权限策略。本文涵盖外部访问检测以及将自定义策略检查集成到 CI/CD 流水线的完整流程。
Access Analyzer 概述
IAM Access Analyzer 是一项通过两种类型的分析器来检测访问权限问题的服务。外部访问分析器会分析 S3 存储桶、IAM 角色等资源的策略,识别允许组织外部账户或公共访问的配置。未使用访问分析器会将 CloudTrail 活动日志与 IAM 角色权限进行交叉比对,检测实际未被使用的权限。此外,该服务还提供基于 CloudTrail 历史活动自动生成最小权限 IAM 策略的功能,以及可集成到 CI/CD 流水线的自定义策略检查功能。
未使用权限与策略生成
未使用访问分析器会将 IAM 角色和用户的权限与 CloudTrail 活动进行比对,检测 90 天以上未使用的操作、未使用的访问密钥以及未使用的角色。90 天是默认值,为避免对仅按季度执行的批处理任务产生误报,需要在运营中考虑分析对象的时间范围。策略生成功能基于过去 90 天的 CloudTrail 活动,自动生成仅包含实际使用操作的最小权限 IAM 策略。生成的策略不应直接应用,而应在审核确认是否包含未来可能需要的操作后再行应用。自定义策略检查可集成到 CI/CD 流水线中,自动验证 IAM 策略变更不会授予特定操作(如 s3:* 或 iam:*)。常见模式是在 CodePipeline 阶段中部署 Lambda 函数,使用 CheckNoNewAccess API 验证策略变更的安全性。
外部访问检测的应用
外部访问分析器会分析 S3 存储桶策略、IAM 角色信任策略、KMS 密钥策略、Lambda 函数策略和 SQS 队列策略,检测可从外部账户或公共网络访问的资源。检测结果分为已归档(有意共享)和活跃(需要处理)两类,以便优先修复非预期的外部暴露。自定义策略检查可在 CI/CD 流水线中自动验证策略变更不会引入新的外部访问。与 Organizations 集成后,可集中管理所有账户的外部访问,实现整个组织安全态势的可视化。 如需进一步深入了解 IAM 安全知识,也可参考Amazon 上的专业书籍。
Access Analyzer 定价
外部访问分析器可免费使用。未使用访问分析器根据分析的 IAM 角色和用户数量计费,每个角色/用户每月约 0.20 美元。自定义策略检查每次检查约 0.002 美元。在 IAM 实体数量较多的大规模环境中,未使用访问分析器的成本会累积,因此建议从关键账户开始分阶段启用。外部访问分析器可在所有账户中免费启用,是安全基线的必备项。
总结
Access Analyzer 是一项通过外部访问和未使用权限检测来实现最小权限原则的服务。它基于 CloudTrail 活动自动生成策略,高效配置适当权限,并通过自定义策略检查将安全验证集成到 CI/CD 流水线中,从而实现权限管理全生命周期的自动化。