今天介绍的 iam-policy-autopilot 来自 AWS Labs,是一个用 Rust 编写的开源工具。它能自动分析你的代码库,生成符合最小权限原则的 AWS IAM 策略。

核心功能

这个工具的定位很清晰:把 IAM 策略的编写从人工猜测变成自动推导

传统做法里,开发者往往需要:

  1. 阅读 AWS 文档,了解每个 API 需要的权限
  2. 在控制台反复试错,调试策略
  3. 最终得到一个过于宽松的策略(因为懒得精细调整)

iam-policy-autopilot 改变了这个流程。它会静态分析你的代码,识别出所有 AWS SDK 调用,然后输出一份精确的 IAM 策略。

两种使用方式

项目同时提供 CLI 工具和 MCP Server,适应不同场景:

CLI 模式

# 分析当前目录的代码
iam-policy-autopilot analyze ./src

# 输出为 JSON 格式的策略
iam-policy-autopilot analyze ./src --format json

MCP Server 模式

对于使用 AI 编码助手的开发者,可以直接在 Cursor、Claude Code 等工具中调用:

{
  "mcpServers": {
    "iam-autopilot": {
      "command": "iam-policy-autopilot",
      "args": ["mcp"]
    }
  }
}

AI 助手就能在对话中直接生成 IAM 策略,无需切换工具。

技术细节

项目用 Rust 实现,保证了分析速度和资源占用控制。目前的实现:

  • 支持解析多种语言的 AWS SDK 调用(Python boto3、Node.js AWS SDK、Go SDK 等)
  • 基于树 sitter 做语法解析,准确性较高
  • 生成的策略遵循 AWS 最佳实践,包含条件键和资源限制

实际体验

我在一个使用 S3 和 DynamoDB 的 Python 项目上测试了一下。工具正确识别出了 s3:GetObjects3:PutObjectdynamodb:GetItemdynamodb:PutItem 等调用,并生成了包含资源 ARN 限制的策略。

整个分析过程不到 2 秒,生成的策略可以直接粘贴到 AWS IAM 控制台使用。

项目状态

  • ⭐ Stars: 306(还在增长)
  • 🏢 维护方: AWS Labs
  • 📝 许可证: Apache 2.0
  • 🚀 最近更新: 2026-03-31

项目还在积极开发中,Issues 里有关于支持更多语言和框架的讨论。如果你经常在 AWS 上部署应用,这个工具能帮你节省不少写 IAM 策略的时间。

GitHub: https://github.com/awslabs/iam-policy-autopilot