IAM Policy Autopilot と Agent-centric な権限管理 2025/12/22 AWS re:Invent 2025 re:Cap with KAG 1
繧上▲縺励g縺 a.k.a. はしもと(If you evolve.) @s3kzk JAWS-UG 島根支部コアメンバー (25/11〜) ʻ22~ AWS All Certs. 2
ラスベガスで無人タクシーではなく 車椅子に乗ってきた話は懇親会で 3
Agent-centric identity and access management (エージェント中心※のIDおよびアクセス管理) ※といいつつも、エージェントが組み込まれてるわけではなく、 AIエージェントの登場も踏まえた、ぐらいのものの理解 4
AWS re:Invent 2025 で発表された AI を活用したセキュリティイノベーション https://aws.amazon.com/jp/blogs/news/aws-launches-ai-enhanced-security-innovations-at-reinvent-2025/ 5
Agent-centric IAMとして紹介された機能 ポリシー生成を自動化し、ゼロトラストの成熟度レベルを向上 Login for AWS local development IAM Policy Autopilot → ポリシー生成の自動化 → 人間がアクセスする場面で 長期鍵を排除 なんか君 良さそうやん Outbound identity federation → マシン/ボットがAWS外への アクセスする場面で長期鍵を排除 Private access sign-in → コンソールアクセスを閉域化 利用アカウントを制限 https://aws.amazon.com/jp/blogs/news/aws-launches-ai-enhanced-security-innovations-at-reinvent-2025/ 6
https://github.com/awslabs/iam-policy-autopilot 7
名前から持ったイメージ IAMなんでもわかるエージェントがコードを理解 ↓ ベストプラクティスに沿った美しいポリシー定義が出力 ↓ 人とIAMポリシーとの長きに渡る争いの終結🤗 8
HOW TO INSTALL
CLIツール
MCPサーバー
(Kiro
{
① uv を使用(推奨)
uv/uvxの場合)
"mcpServers": {
"iam-policy-autopilot": {
"command": "uvx",
"args": ["iam-policy-autopilot", "mcp-server"],
"env": {
"AWS_PROFILE": "your-profile-name",
"AWS_REGION": "us-east-1"
},
"disabled": false,
"autoApprove": []
}
}
uvx iam-policy-autopilot で直接実行
② pip を使用
pip install iam-policy-autopilot でインストール
③ インストールスクリプトを利用
curl -sSL https://github.com/awslabs/
iam-policy-autopilot/raw/refs/heads/
main/install.sh | sudo sh を実行
}
https://github.com/awslabs/iam-policy-autopilot
9
CLI版の基本的な使い方
対象とするSDK呼び出しの範囲
解析対象ファイル
{
"Policies": [
{
"Policy": {
"Id": "IamPolicyAutopilot",
"Version": "2012-10-17",
"Statement": [
{ "Effect": "Allow",
"Action": ["sts:GetCallerIdentity"],
"Resource": ["*"] }
]
},
"PolicyType": "Identity"
}
]
uvx iam-policy-autopilot generate-policies
./src/get_caller_identity.py --pretty
}
10
ちゃんとコードから IAMポリシーが作成できました 便利ツールが増えてよかったですね めでたしめでたし🙌 11
待った! 12
これならどうか
{
・Obj取得
・テーブル作成
※未作成時
・アイテム作成
・VPC作成
※未作成時
※呼び出しなし
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
“Resource”: “ <操作対象のS3バケットのARN>/*"
},
{
"Effect": "Allow",
"Action": [
"dynamodb:DescribeTable",
"dynamodb:CreateTable",
"dynamodb:PutItem"
],
“Resource”: ”<操作対象のDynamoDBテーブルのARN>"
}
]
}
(最小はこのような感じ)
パッと見でも多い
+
呼び出されない箇所も
解析対象となっている
😫
13
ツール利用でも同様 実行時に必要なアカウントID とリージョンは指定済み 14
IAM Policy Autopilot “決定論的なコード解析を用いて信頼性の高い有効なポリシーを作成” ① ローカルで コードをスキャン ② 依存関係を含む 権限へマッピング ③ ベースライン ポリシーを生成 AWS SDK 呼び出しを マシン上で解析 使用するSDK呼び出しに対応する IAMアクションに変換 構文的に正しい IAMポリシーの JSONを出力 エージェント(≒LLM)を呼び出しているわけではなく ルールベースの変換 15
どのように使うか🤔 基本はMCP経由で、必要時に ポリシー定義を固めていく際の LLMのコンテキストとして利用 LLMにツールとして使わせる (直接コマンドで呼ぶメリット?) 最小権限でなくていいから 利用可能なIAMポリシー定義が欲しい Administrator/PowerUserAccessや xxxFullAccessは回避可能 IAM Access Analyzerのポリシー生成機能は CloudTrailログを使うため先に実行が必要 先にルールベースで作りそこから削らせる 存在しないAction名は出てこない、はず LLMが生成したポリシーの修正 ̀fix-access-denied̀で 権限不足系のエラーメッセージを渡すと 足りないポリシーを教えてくれる これが必要かは…? 16
まとめ 17
「検品」は人間の仕事、操縦桿から手を離すな! 生成されたポリシーはあくまでも “たたき台” 出力結果は不完全と理解したうえで、LLMなどのコンテキストに 最小権限の実現には、人間のレビューが引き続き求められる 18
ありがとうございました! 19