今回紹介する iam-policy-autopilot は、AWS Labs が公開している Rust 製のオープンソースツールです。コードベースを自動解析し、最小権限原則に基づいた AWS IAM ポリシーを生成します。

主な機能

このツールのポジショニングは明確です:IAM ポリシーの作成を人工的な推測から自動推論へ移行する

従来の作業フローでは、開発者は以下を行う必要がありました:

  1. AWS ドキュメントを読み、各 API に必要な権限を確認
  2. コンソールで試行錯誤し、ポリシーをデバッグ
  3. 最終的に緩すぎるポリシーになってしまう(細かい調整が面倒なため)

iam-policy-autopilot はこのプロセスを変えます。コードを静的解析し、すべての AWS SDK 呼び出しを特定して、正確な IAM ポリシーを出力します。

2 つの使用方法

プロジェクトは 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 など)
  • Tree-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