Principal Mapper:AWS IAM 安全风险评估利器
一、项目介绍
Principal Mapper(PMapper)是一款开源脚本和库,旨在为AWS账户或AWS组织中的AWS身份和访问管理(IAM)配置进行风险识别。该项目通过将账户中的不同IAM用户和角色建模为有向图,使得可以检查权限升级以及攻击者可能采取的替代路径,以获取AWS中的资源或操作权限。
PMapper 引入了一种查询机制,使用AWS授权行为的本地模拟。当运行查询以确定主体是否有权访问特定操作或资源时,PMapper还会检查该用户或角色是否可以访问其他具有该操作或资源访问权限的用户或角色。
二、项目技术分析
PMapper 采用 Python 3.5+ 和 botocore
库构建,botocore
是 AWS SDK for Python 的底层库。此外,PMapper 还依赖于 pydot
和 graphviz
,它们可以通过 pip
和官方网站安装。PMapper 支持通过命令行进行操作,并且提供了丰富的命令行功能,使得用户可以轻松进行 IAM 配置的风险评估。
项目通过以下步骤构建 IAM 用户和角色的有向图:
- 收集账户中的 IAM 用户和角色信息。
- 建立用户和角色之间的权限关系。
- 利用图论算法分析权限提升和潜在的安全风险。
三、项目及技术应用场景
PMapper 适用于以下场景:
- 安全团队进行 AWS IAM 配置的安全审计。
- 开发和运维团队在 IAM 配置变更前后进行风险评估。
- 教育和培训环境中作为 IAM 安全知识的演示工具。
通过 PMapper,用户可以快速发现潜在的权限提升风险,及时修复 IAM 配置中的安全问题,确保 AWS 资源的安全。
四、项目特点
-
强大的查询机制:PMapper 提供了丰富的查询功能,用户可以轻松地检查特定主体是否具有访问特定资源或执行特定操作的权限。
-
图形化展示:项目支持生成 SVG 格式的图形化展示,直观地显示 IAM 用户和角色之间的关系以及权限提升路径。
-
灵活的部署方式:支持通过
pip
、源代码和 Docker 进行部署,满足不同用户的需求。 -
易于使用:提供详细的命令行帮助文档,快速上手 IAM 配置风险评估。
-
开放源代码:遵循 GNU Affero General Public License,鼓励社区贡献和反馈。
总之,Principal Mapper 是 AWS IAM 安全风险评估的强大工具,值得每一位 AWS 用户关注和使用。立即尝试 PMapper,为您的 AWS 账户安全保驾护航!