![[レポート]Amazon Bedrock Agentcoreによる高度なセキュリティ運用のためのマルチエージェント連携 #AWSreInvent #NTA407](https://images.ctfassets.net/ct0aopd36mqt/4pUQzSdez78aERI3ud3HNg/fe4c41ee45eccea110362c7c14f1edec/reinvent2025_devio_report_w1200h630.png?w=3840&fm=webp)
[レポート]Amazon Bedrock Agentcoreによる高度なセキュリティ運用のためのマルチエージェント連携 #AWSreInvent #NTA407
こんにちは、臼田です。
みなさん、AWSのセキュリティ運用してますか?(挨拶
今回はAWS re:Invent 2025で行われた下記セッションのレポートです。
セッション概要
Multi-Agent Collaboration with Amazon Bedrock Agentcore for Advanced SecOps (NTA407)
In this code talk session, we'll explore how multi-agent collaboration powered by Amazon Bedrock Agentcore transforms security and vulnerability management for SecOps teams. We'll demonstrate how specialized agents working in concert can automate vulnerability assessment and building remediation patches using AgenticAI. Through practical code examples, we'll show how to architect a resilient security system where agents share context on vulnerabilities, identified servers that are potentially impacted and create remediation artifacts to deploy the changes. Join us to learn how this approach reduces response times, improves threat intelligence, and creates a more robust security posture through intelligent agent orchestration.
高度なSecOpsのためのAmazon Bedrock Agentcoreによるマルチエージェント連携 (NTA407)
このコードトークセッションでは、Amazon Bedrock Agentcoreを活用したマルチエージェント連携が、SecOpsチームのセキュリティおよび脆弱性管理をどのように変革するかを探ります。専門エージェントが連携して、AgenticAIを用いて脆弱性評価と修復パッチの作成を自動化する方法を実演します。実践的なコード例を通して、エージェントが脆弱性に関するコンテキストを共有し、影響を受ける可能性のあるサーバーを特定し、修正アーティファクトを作成して変更をデプロイする、回復力の高いセキュリティシステムを設計する方法を紹介します。このアプローチが、応答時間を短縮し、脅威インテリジェンスを向上させ、インテリジェントなエージェントオーケストレーションを通じてより堅牢なセキュリティ体制を構築する方法について、ぜひご参加ください。
動画
レポート
このセッションはAWS上のセキュリティ運用をAmazon Bedrock Agentcoreを利用して自動化するCode Talkです。

アジェンダは下記の通り。
- 顧客の課題
- Amazon Bedrock AgentCore 概要
- ソリューションアーキテクチャ
- コードトーク
- デモ

課題として、あらゆる組織のセキュリティチームが、アラート対応という反復タスクの手作業により運用のボトルネックに直面している。Amazon Bedrock Agentcoreでマルチエージェントによる自動化でこの課題を解決し、セキュリティ運用を効率化する。

Amazon Bedrock AgentCoreは、複数のモデルとフレームワークでエージェントを構築・実行するRuntimeを中核に、Gateway、Identity、Observabilityなどの統合コンポーネントで構成される。この完全マネージド型プラットフォームにより、エージェントの構築・デプロイ・運用を安全かつスケーラブルに実現できる。

セキュリティオペレーションを自動化するアーキテクチャはこのような感じ。Amazon InspectorとAmazon GuardDutyがセキュリティアラートをAmazon EventBridge経由で送信し、AWS LambdaがAmazon Bedrock AgentCore Runtimeのオーケストレーションエージェントに転送する。オーケストレーションエージェントはRuntime内で調査・修復・報告を担当する3つの専門エージェントを制御し、各エージェントが特定の役割に特化した処理を実行する。これらの専門エージェントはAgentCore Gateway経由でCMDB、AWS Lambda、Amazon S3、Amazon SESなどの内部システムと連携し、既存AWSサービスと統合されたエンドツーエンドの自動対応を実現する。

アーキテクチャの全体像を確認したので、次はマルチエージェントの連携フローについて。Amazon Bedrock AgentCoreとStrands Frameworkを基盤として、オーケストレーションエージェントが起点となり3つの専門エージェントへ順次処理を渡していく。最初に調査エージェントがアラートの影響分析を実施し、次に封じ込めエージェントが即座の対処と長期的な修復を行い、最後にレポートエージェントがエンドツーエンドのサマリーレポートを生成する。このワークフローにより人間が行う3つのステップ(調査・修復・報告)を完全に自動化する。

ここからは実際のコードを見ながら、マルチエージェントシステムの構築方法を段階的に解説していく。セッションは2部構成で、Part 1ではAmazon Bedrock AgentCore Gatewayを使ったツール設定、Strands Agentsによるセキュリティアナリストエージェントの作成、グラフパターンでの複数エージェントのオーケストレーションを扱う。Part 2ではエージェントのAmazon Bedrock AgentCore Runtimeへのデプロイ方法と、より決定論的な動作を実現するためのテクニックを紹介する。実装の基盤となるStrands Agent Loopは、入力(システムプロンプト、ツール仕様、クエリ、会話履歴)を受け取り、推論、ツール実行、フィードバックのサイクルを繰り返してタスクを完了する仕組みである。

Strands Agent Loopの動作原理を視覚的に確認する。Strands Agent Loopは、Input & Context(システムプロンプト、ツール仕様、クエリ/タスク、会話履歴)を受け取り、LLMによる推論(Reasoning)を開始する。推論結果に基づいてツール選択(Tool Selection)とツール実行(Tool Execution)を行い、その結果を再び推論にフィードバックするループを形成する。このサイクルをエージェントがタスク完了と判断するまで繰り返し、最終的にResponseとして結果を出力する仕組み。

エージェントが必要とするツールと、それらを統合する方法を見ていく。エージェントには以下の3つの外部システムへの接続が必要となる。
- CMDB: サーバー詳細情報、パッチスケジュール、ワークロード情報を管理
- ログへのアクセス: CloudWatch、CloudTrailなどのログ情報を取得
- フォレンジックデータストア: 調査レポートと証拠の保存・取得
これらをAmazon Bedrock AgentCore Gatewayで統合する理由は、複数エージェント間での再利用性を最大化するため。Gateway用のIAMロールでは、信頼ポリシーによりAgentCoreサービスからの引き受けを許可し、アクセス許可ポリシーで3つのLambda関数(CMDB、アーティファクト、通知)への呼び出し権限を付与する。このロール設計により、Gatewayが安全に内部システムへアクセスできる基盤が整う。

IAMロールの準備ができたので、実際にGatewayを作成する。create_gateway関数では、Gateway名、ロールARN、プロトコルタイプ(MCP)、認証タイプ(AWS_IAM)を指定してGatewayを初期化する。重要なのは、Gatewayの作成は非同期処理であるため、作成直後はステータスがCREATINGとなり、バックグラウンドでプロビジョニングが進行する点。そのため、get_gateway関数でステータスをポーリングし、READYになるまで待機する必要がある。実行結果では複数回「Gateway status: CREATING」が表示された後、最終的に「Gateway status: READY」となり、Gatewayが利用可能になったことが確認できる。

Gatewayの準備ができたので、次は外部MCPサーバーへの認証とツールのロードを行う。Amazon Bedrock AgentCore Identityは、外部サービスへの認証情報を安全に管理し、OAuthトークンの生成と更新を自動化する役割を持つ。get_gateway_access_token関数では、OAuth2プロバイダーに対してアクセストークンをリクエストし、M2M(Machine-to-Machine)認証フローでトークンを取得する。取得したトークンをBearerトークンとしてAuthorizationヘッダーに設定し、MCPClientを初期化することで、外部MCPサーバーとの安全な通信チャネルを確立する。最後にlist_tools_sync()でツール一覧を取得し、各ツールの名前と説明を表示することで、CMDB、フォレンジックアーティファクト、通知などのツールがエージェントから利用可能になる。

必要なエージェントの設計に入る。まず調査を担当するエージェントから構築し、既存のランブック(運用手順書)をエージェント作成のガイドとして活用する。Strands ToolsのコミュニティパッケージからAWS SDKへのアクセスを提供するuse_awsツールを導入し、エージェントがAWSリソースを直接操作できるようにする。調査レポートのテンプレートをロードし、エージェントの初期化では名前(GuardDuty Enrichment Agent)、モデル、ツール(use_awsと既存ツール)、会話マネージャー、セッションマネージャーを設定する。システムプロンプトでは「あなたはITセキュリティアナリストです。GuardDuty調査結果の詳細が与えられます。use_awsツールとCMDBツールを使用してセキュリティ分析のための情報を収集してください」と役割を定義し、調査レポートテンプレートへの記入を指示する。

システムプロンプトの設計で重要なのは、エージェントの終了条件と動作範囲を明確に定義すること。「レポートを完成させるために必要な情報が揃ったら分析を停止してください。レポートで要求された詳細のみを記入し、余計なものは追加しないでください」と指示することで、無限ループを防ぎ効率的な実行を実現する。完成したレポートはforensics_artifactツールを使用してファイル名「investigation_report.md」で保存し、ファイルパスを返すよう指示する。調査レポートテンプレートには、リソースタイプ(EC2、Lambda、RDS、S3等)、リソースID、アカウントID、リージョン、スタック/アプリケーション名、オーナー、タグ(環境、コストセンター等)といった項目が含まれる。

調査レポートテンプレートの構造を確認し、実際の調査を実行する。テンプレートには以下の大項目が含まれる。
- Executive Summary: セキュリティインシデントの概要
-
- Resource Details: リソース情報(Resource Type、Resource ID、Account ID、Region、Stack/Application Name、Owner、Tags)
-
- VPC Configuration: ネットワーク詳細(VPC ID、CIDR Block、Subnets、Security Groups)

詳細な調査の実行コマンドも用意され実行できる。

EC2やVPC周りなど各種リソースの状態の収集も行われる。

最終的なレポートと調査結果が作成される。

グラフパターンで複数エージェントを連携させる。

ABACポリシーでエージェント権限を制御する。

GraphBuilderでオーケストレーショングラフを構築する。

Incident Response Reportが生成される。

続いてPart 2 - Scaling your Agents: 自律的な動作の実現
エージェントを自律的に動作させるため、ワークフローで自動呼び出しを設定し、Amazon Bedrock AgentCore Runtimeにデプロイする。非同期呼び出しを使用し、chatとorchestrate_graphの2つのアクションパターンを実装する。

agentcore configureコマンドでデプロイ設定を開始し、エージェント名、依存関係ファイル、デプロイタイプ、Pythonバージョンを対話形式で選択する。

実行ロールの自動作成、S3バケットの設定、IAM認証の使用、リクエストヘッダー許可リストの設定を行い、メモリ設定をスキップする。

設定が完了し、エージェント詳細(名前、デプロイタイプ、リージョン、ランタイム、実行ロール、ネットワークモード等)が表示され、次のステップとしてagentcore launchが案内される。

agentcore launchコマンドでAmazon Bedrock AgentCoreへのデプロイを実行し、デプロイパッケージの作成、S3バケットの作成、ソースコードのパッケージング、デプロイが順次進行する。

エージェントの動作をより決定論的にするため、Pydanticモデルで構造化出力を定義する。InvestigationResultクラスでresponse_message、affected_resources、severityを指定し、エージェント呼び出し時にstructured_output_modelとして渡すことで、オブジェクト形式での結果取得が可能になる。

Hooksを使用してツール実行前後やモデル呼び出し前にロジックを挿入し、エージェントの動作を細かく制御できる。Request Start Events、Model Events、Tool Eventsの各段階でイベントをフックし、追加処理を実行する。また、Nest Multi-Agent patternsでは、グラフ内にグラフをネストさせ、複雑なマルチエージェント構成を実現する。

Amazon Bedrock AgentCoreとStrands Frameworkを使用し、セキュリティアラートの調査・修復・報告を自動化するマルチエージェントシステムの実装方法を解説した。ツール設定、エージェント作成、グラフパターンによるオーケストレーション、ABACポリシーによる権限制御、AgentCore Runtimeへのデプロイ、構造化出力とフックによる決定論的な動作制御まで、エンドツーエンドの構築手順を実演した。これにより、従来手作業で数時間かかっていたセキュリティオペレーションを数分で完了させる自動化が実現できる。
感想
AWS上のセキュリティ運用を自動化するための具体的なアプローチが紹介されました。コードトークならではの内容ですが、サンプルの公開がされる予定とのことですが現状見つけられないので、動画を参考に試してみてはいかがでしょうか?
個人的には、これがマネージドな機能となってくるのを楽しみにしています。









