Amazon Bedrock AgentCoreと別アカウントのナレッジベースを連携、AWSがデータ複製不要な接続手法を公開
要点
-
AWSが、Amazon Bedrock AgentCore上のAIエージェントから別アカウントのKnowledge Basesへアクセスし、安全に回答を生成する構成パターンを公開した。
-
リソースポリシーが未対応である「RetrieveAndGenerate」APIの呼び出しを、AWS STSによる一時的なIAMロール引き受けで実現する。
-
Amazon Redshift Serverless上の構造化データを複製せず、アカウント境界と最小特権アクセスを保ちながら活用できる。
-
コードベースの「Strands agent」と宣言型の「AgentCore harness」の2方式に対応し、GitHubでサンプルコードが提供されている。
-
米Amazon Web Services(AWS)は2026年8月26日、公式ブログ「AWS ML Blog」において、AIエージェント構築プラットフォーム「Amazon Bedrock AgentCore」から別AWSアカウントのナレッジベースへ安全に接続するアーキテクチャを公開した。データウェアハウス「Amazon Redshift Serverless」上の構造化データをエージェント側アカウントにコピーすることなく、アカウント間の境界を保ったまま自然言語による回答生成と引用取得を行えるという。
マルチアカウント環境におけるデータ連携の課題
企業がAIエージェントを構築する際、ワークロードの管理境界を明確にするため、エージェント環境とデータ基盤を別々のアカウントに分離するマルチアカウント構成が一般的である。しかし、この分離によってアカウント間のデータ連携に技術的な課題が生じていた。
今回の構成では、検索拡張生成(RAG:外部データを検索して回答精度を高める仕組み)を提供する「Amazon Bedrock Knowledge Bases」と、バックエンドの「Amazon Redshift Serverless」が、エージェントとは別のアカウントに配置されている。
Amazon Bedrock Knowledge Basesのリソースポリシー(リソース側でアクセス権を定義する仕組み)は、クロスアカウントでの検索(Retrieve)や文書取得(GetDocumentContent)に対応している。しかし、検索から回答生成までを一括で行う「RetrieveAndGenerate」APIのクロスアカウント実行はサポートしていない。そのため、データを複製せずに自然言語の回答を得るには、最小権限(必要最小限のアクセス権のみを与える原則)を維持した別の連携手法が必要だったと説明している。
AWS STSによるIAMロール引き受けでAPI制約を解決
この課題を解決するため、AWSはナレッジベース側アカウントに専用のIAMロール(AWSの操作権限を定義する仕組み)を配置し、エージェント側から一時的にその権限を引き受ける方式を採用した。
モデル制御ツールが、一時的なセキュリティ認証情報を発行する「AWS STS(AWS Security Token Service)」を利用してIAMロールを引き受け(AssumeRole)、「RetrieveAndGenerate」APIを実行する。これにより、ソースデータを複製することなく、生成された回答と参照元の引用情報(citations)をオーケストレーション層へ直接返却できるという。
2種類のオーケストレーションモデルと実装の違い
本手法では、一般提供されているAmazon Bedrock AgentCoreの2つのオーケストレーションモデルに対応している。両者は同一のデータアクセス境界を共有するが、エージェントループの制御主体やツールのホスティング方法が異なる。
1つ目は、コードベースの「Strands agent」をエージェント実行基盤である「AgentCore runtime」上で動かす構成である。
2つ目は、宣言型の「AgentCore harness」を用い、「AgentCore Gateway」やサーバーレス実行基盤「AWS Lambda」と連携させる構成である。
開発者は要件に合わせて適切なモデルを選択できるとしている。
リクエストの流れとGitHubサンプルの提供
処理の流れとして、ユーザーがStreamlit UIやAgentCoreを通じて質問を送信すると、エージェントがツールを通じてクロスアカウントでナレッジベースに問い合わせ、回答と引用を提示する。
AWSは、両モデルの実装詳細とデプロイ手順を含むサンプルコードをGitHub(aws-samples/sample-for-strands-agentcore-connect-cross-account-kb)で公開しており、マルチアカウント環境へのスムーズな導入を支援している。