CI事業部 セキュリティセクションの村上です。

米国フィラデルフィアにて開催された AWS re:Inforce 2025 も遂に最終日です。Chalk Talk セッション「DevSecOps in action with AWS IAM Access Analyzer」のレポートをお届けします。

IAM ポリシー管理と DevSecOps の重要性

クラウド環境、特に AWS における IAM (Identity and Access Management) ポリシーの適切な管理はセキュリティ上重要です。

過剰な権限はセキュリティリスクを増大させるものの、権限を絞りすぎると迅速なリリースが難しくなるため、バランスを取る必要があります。

コンプライアンス要件やセキュリティリスク低減のためには IAM ポリシーをレビューする必要がありますが、手動でのレビューはデプロイの遅延に繋がりかねません。

これらの課題に対しては、DevSecOps のアプローチが有効です。DevSecOps は、文化、実践、ツールの組み合わせによって、セキュリティを確保しつつ開発者の生産性を向上させることを目指します。

セキュアな IAM ポリシー管理を実現する方法として、今回の AWS IAM Access Analyzer の活用方法が紹介されました。

IAM Access Analyzer とは

AWS 環境におけるアクセス管理を支援するサービスです。主に以下の機能を提供します。

  • 外部アクセス分析: S3 バケットポリシーや IAM ロール信頼ポリシーなどのリソースベースのポリシーを分析し、外部エンティティ(別の AWS アカウント、パブリックなど)に意図しないアクセス権限が付与されていないかを特定します。
  • 未使用のアクセス権限の特定: 長期間使用されていない IAM ロールやアクセスキー、権限を特定します。
  • ポリシー検証: IAM ポリシーの構文チェックと、ベストプラクティスなどへの準拠状況の検証を実施します。

今回のセッションでは主に、3つ目のポリシー検証機能を使用します。この機能を使うと、実際に AWS 環境に適用される前にポリシー内容を検証することが可能です。
https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-checks-validating-policies.html

IAM Access Analyzer を活用したポリシー検証

IAM Access Analyzer を開発ワークフローなどに統合し、IAM ポリシーのコンプライアンスチェックを自動化する方法がデモとともに紹介されました。

CI/CD パイプラインでの活用

IAM ポリシーの変更をデプロイする前に、CI/CD パイプライン内で Access Analyzer を活用し、自動的にコンプライアンス違反を検出します。

デプロイ時の承認プロセスと同様に、ポリシーチェックの結果に基づいて承認プロセスを挟むなどして、本番環境への適用を防ぎます。

VS Code 拡張機能による検証

VS Code の拡張機能 AWS Toolkit for Visual Studio を使って IAM Access Analyzer と連携したポリシー検証が可能です。

以下の検証タイプを実行できます。

  • ValidatePolicy: 構文エラーやベストプラクティス違反をチェック
  • CheckNoNewAccess: 新たなアクセス権限が付与されていないかをチェック
  • CheckAccessNotGranted: 機密性の高いアクションやリソースへの意図しないアクセス許可をチェック
  • CheckNoPublicAccess: パブリックアクセス許可の有無をチェック

開発中に問題を検知・修正できるため、手戻りの削減が見込めます。

以下は手元の VS Code で IAM Policy Checks 機能を起動してみたところです。CloudFormation だけでなく、Terraform にも対応しています。

参考:https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/iam-access-analyzer-overview.html

AWS 環境で検知した IAM ポリシーの問題の自動修正

AWS 環境に作成済みの IAM ポリシーについて問題を検知した場合は、EventBridge ルールを使用することで、通知や自動対応に繋げることができます。

Model Context Protocol (MCP) の活用

セッションの最後には、Model Context Protocol (MCP) と Amazon Q Developer を活用した IAM ポリシー検証が紹介されました。MCP は Anthropic が提唱する、AI とデータやツールを接続するためのオープンスタンダードプロトコルです。

MCP を使わない場合、Amazon Q Developer などの生成 AI エージェントに外部データや外部ツールを参照・操作させる際に、連携先毎に呼び出し処理を個別作成する必要があります。

MCP を利用すると、AI エージェントと外部データや外部ツールの連携が抽象化され、個別に処理を開発する必要がなくなります。

MCP のもう少し詳しい話は、こちらの記事を参照してみてください。

使って覚える Model Context Protocol
はじめに生成 AI の技術は日進月歩ですが、昨今よく聞く話題の一つに MCP (Model Context Protocol) があります。公式サイト を見ると MCP は『AI アプリケーション用の USB-C ポートのようなもの』という説明がされています。ちなみに、私はこの説明で挫折しました。この記事では、生成 AI を活用して具体的なビジネスニーズにあったエージェントを作成するエンジニアの方に向けて、私が MCP を使って覚えた、MCP とは何か? について説明を行います。ニーズの整理新しい技術には、常に新しいニーズが隠れています。ニーズについて整...

現段階では、MCP の仕様は策定途中のようで (特に認証周り)、AWS がマネージドで提供する MCP サーバーがあるわけではないため、ローカルで動作させます。

セッションでは、ローカルで動作する MCP サーバーと Amazon Q を組み合わせたデモがありました。
VS Code 上で Amazon Q に指示を出すと、MCP サーバーを介して AWS IAM Access Analyzer のカスタムポリシーでチェックを行い、Amazon Q が修正提案を行うという流れでした。

おわりに

IAM ポリシーが環境に適用される前にチェックを行い、過剰な権限の付与を防止する方法が紹介されました。
会場での質問としても挙がっていましたが、マネージドの MCP サーバーが提供されると、様々な生成 AI エージェントと組み合わせて、IAM ポリシー検証に活用しやすくなりそうです。
セキュリティチームの開発プロセスにおいても、より早い段階で IAM ポリシーのチェックを組み込み、セキュリティを向上しつつ、生産性も高めていきたいと思います。