SJ blog
Security-JAWS #41(10周年記念 Day1) #8

Claude Code / Codex / Kiro にAWS権限を渡すとき、何を設計すべきか

コーディングエージェントにAWS権限を委譲する際の設計指針。認証・MCP管理・ログ記録・停止方法の4軸で比較・整理

🎤 ITサービス企業 若手エンジニア(Security-JAWSジュニアチャンピオン 2025)

キーテイクアウェイ

コーディングエージェントへの権限設計は『誰に(WHO)・何を(WHAT)・記録と停止(HOW)』の3軸。AI専用ロール分離+30日スパンでの権限棚卸しが基本

登壇者の背景

  • ITサービス企業(AIインテグレーターを標榜)
  • 2025年度Security-JAWSジュニアチャンピオン(若手3年目までの選抜)
  • AWS Community Builder認定
  • Security-JAWS配信部所属
  • 業務: PMO的立場、顧客の要件ヒアリング

対象コーディングエージェント3種

Claude Code(Anthropic)

観点詳細
組織管理Managed Settingsで組織全体のPermission/Hook/MCPを制御
認証Bedrock Agent API経由で利用可能
MCP管理レジストリで一元管理
ログOpenTelemetry標準フォーマットでトレース記録
AWS統合Claude Platform for AWS発表済み

Codex CLI(OpenAI → AWS提供)

観点詳細
認証IAM Identity Centerでログイン可能
MCP管理MCP Registryで組織単位管理
ログCloudTrailにカタログ出力
ストレージAWS S3へのログ書き出し対応

Kiro(AWS)

高度なサービス。詳細は省略(セッション内での扱いが限定的)。

権限設計の3つの決定要素

1. 誰に?(WHO)

AI専用のIAMロールを設計する。

人間用ロールをAIに渡してはいけない理由:

  • CloudTrailで「AIがやったのに人間がやったように記録される」
  • 権限棚卸しの際にAI利用分と人間利用分が区別できない
  • インシデント時にAIだけを停止できない

2. 何を許可?(WHAT)

最小権限の原則をAIにはより厳格に適用。

  • AIは24時間365日動作する
  • 人間の数十〜数百倍のAPI呼び出し速度
  • プロンプトインジェクションで意図しない操作を実行させられる

3. 記録・停止・巻き戻し(HOW)

観点実装
記録CloudTrail + OpenTelemetry
停止IAM権限剥奪 / セッション無効化 / MCP停止
巻き戻しGit revert / インフラのIaC再適用

AWS操作の多様な経路

コーディングエージェントがAWSを操作する経路:

  • ローカルCLI
  • SDK/APIコール
  • Cloud IDE(Lambda Web等)
  • IDE拡張機能

全ての経路でログが記録される設計が必要。

推奨ロール管理基準

対象棚卸しスパン
人間用ロール90日間アクセスなし → 削除候補
AI/マネージドアイデンティティ30日スパンで確認

AIは使い始めると高頻度で利用するため、「使っていないロール」は早期に検知・削除すべき。

MCP(Model Context Protocol)の管理

MCPはAIエージェントが外部システムにアクセスするための標準プロトコル。

セキュリティ上の管理ポイント:

  • 許可するMCPサーバーのホワイトリスト管理
  • MCPレジストリで組織単位の制御
  • MCPゲートウェイ経由でのアクセス制御
  • 各MCPサーバーのアクセススコープ限定

初心者向け補足

コーディングエージェントとは

AIが自律的にコードを読み書きし、テストを実行し、デプロイまで行うツール。Claude Code、GitHub Copilot Agent、Codex等。従来のコード補完(Copilot等)とは異なり、自律的にタスクを実行する点が特徴。

なぜAIに「専用ロール」が必要か

人間: 勤務時間のみ、判断しながら操作、ミスは限定的 AI: 24時間稼働、高速大量操作、プロンプトインジェクションで暴走リスク

同じロールを共有すると、インシデント時に「AIだけ止める」ことができない。

MCPとは

Model Context Protocolの略。AIエージェントが外部ツール(DB、API、ファイルシステム等)にアクセスするための標準化されたインターフェース。AIエージェントの「手と目」に相当する。