AWS JAPAN APN ブログ

NTTデータが実践する Amazon Bedrock AgentCore 活用:SaaS 横断 AI エージェント構築

本稿は、以下 3 名による共著です。

  • 株式会社NTTデータ GenAIビジネス推進部 柏原豊 (2025 AWS Ambassador)
  • 株式会社NTTデータ ソリューション事業本部
デジタルサクセスソリューション事業部 AI&データアナリティクス統括部 田中大貴
  • アマゾン ウェブ サービス ジャパン合同会社 シニアパートナーソリューションアーキテクト 江成篤

はじめに

Amazon Bedrock AgentCore (以下、AgentCore) は、あらゆるフレームワーク・モデルを使って AI エージェントを安全かつスケーラブルに構築・デプロイ・運用できるフルマネージドのエージェントプラットフォームです。Runtime、Memory、Gateway、Identity、Code Interpreter、Browser、Observability、Policy、Evaluations の 9 つのモジュールで構成されています。

本稿では AWS の「AI Services Competency プログラム」認定パートナーである NTTデータが AWS の GenAI Innovation Center と連携し、AgentCore を活用して開発した営業データ分析 AI エージェントの事例について解説します。この AI エージェントは、Salesforce と Tableau を自然言語で横断分析できるもので、MCP (Model Context Protocol)・AgentCore Runtime・AgentCore Identity・AgentCore Gateway・AgentCore Observability を組み合わせた実務レベルのアーキテクチャを約 1 カ月で実現しました。

本事例を通じて、AgentCore を活用した AI エージェント構築に向けた一つの取り組み例として、参考にしていただければ幸いです。

1.概要

企業では、営業部門の DX 推進に伴い、SFA (Sales Force Automation)、CRM (Customer Relationship Management)、BI (Business Intelligence) など複数の SaaS サービスを併用することが一般化しています。しかし、こうしたサービスごとにデータが分散することで、横断的な分析を実行する際のデータ抽出・集計・加工の手間が増え、迅速な意思決定を妨げるケースが増えています。また、生成 AI やエージェント型 AI の活用機運が高まる一方で、外部 SaaS との安全かつスケーラブルな連携の実装には認証・認可、拡張性、運用管理といった技術的な課題が存在します。

本記事では、こうした課題を解決するためのアーキテクチャとして、 AgentCore を活用した AI エージェント基盤の設計・実装例を紹介します。AgentCore の各コンポーネント (Runtime・Identity・Gateway・Observability) を組み合わせることで、Salesforce と Tableau のような複数の SaaS を横断して自然言語による営業データ分析を実現できる設計を短期間で構築した事例を解説します。

2.システムアーキテクチャ

本章では、Amazon Bedrock AgentCore を中心とした、外部 SaaS (Salesforce、Tableau) とセキュアに連携する AI エージェント基盤のアーキテクチャを紹介します。

本構成は、以下の設計要件を満たすことを目的としました。

  • SaaS を横断する自然言語ベースのデータ分析
  • ユーザー単位の認証・認可の厳密な制御
  • SaaS ごとに異なる認証方式への対応
  • 実行ログのトレーサビリティ確保
  • スケーラブルかつ拡張可能な構成

これらを実現するため、AgentCore の各コンポーネント (Runtime・Identity・Gateway・Observability) を組み合わせたアーキテクチャを採用しました。

図1 アーキテクチャ全体像

AgentCore Runtime

AI エージェント(Strands Agents で構築)をデプロイし、Python 実行環境上で分析処理を実行します。AgentCore Runtime はエージェントごとに独立した実行環境を提供するため、セキュアな実行分離が可能です。

AgentCore Identity

ユーザー認証およびトークン管理を担います。AgentCore Identity により、AI エージェントは常に「認証済みユーザーコンテキスト」で動作します。

  • Okta を用いたユーザー認証をサポートする OAuth 2.0 プロバイダ設定
  • 外部 API 呼び出し時のトークン管理

AgentCore Gateway

外部 SaaS との接続を管理します。AgentCore Gateway を利用することで、エージェントと外部 API の結合度を下げ、拡張性を確保しています。

  • MCP による API 統合
  • OAuth 2.0 フロー管理
  • Gateway Interceptors によるリクエスト変換

AgentCore Observability

AI エージェントの実行トレースおよびツール実行ログを収集します。標準機能に加え、カスタムトレースを追加することでユーザー単位の監査ログ取得を実現しています。

本アーキテクチャでは、以下の流れで処理が実行されます。

  1. ユーザーが自然言語でエージェントを実行
  2. AgentCore Identity が Okta を通じてユーザー認証
  3. 認証済みコンテキストを保持したまま AgentCore Runtime 上で処理開始
  4. 必要に応じて AgentCore Gateway 経由で Salesforce または Tableau を呼び出し
  5. AgentCore Gateway が OAuth 2.0 認証およびリクエスト制御を実施
  6. Python 実行環境でデータ加工・分析
  7. 分析結果を Amazon S3 に保存
  8. AgentCore Observability により全処理のトレースを記録

実装上のポイントについては次章にて解説します。

3.実装ポイント

本章では、本アーキテクチャを実装する際に重要となったポイントについて解説します。特に、エンタープライズ環境で AI エージェントを運用する際に重要となる以下の 3 つの観点を中心に説明します。

  • AgentCore Runtime を用いた Python 実行環境の設計
  • AgentCore Identity・Gateway による認証・認可の実装
  • AgentCore Observability によるユーザー単位でのトレーサビリティの実現

3-1.AgentCore Runtime を用いた Python 実行環境の設計

本アーキテクチャでは、Python 実行環境に AgentCore Runtime を利用しています。Python 実行環境を AgentCore で実装する場合、他に選択肢として挙げられるサービスとして AgentCore Code Interpreter があります。AgentCore Code Interpreter を利用すると AgentCore Runtime からも分離されるため、AgentCore Runtime 上にデプロイされたエージェントにも依存しないネットワーク設定や IAM ロール設定などが可能です。一方、AgentCore Runtime でも Python コードは実行可能で、AgentCore Runtime ごとに独立かつセキュアな環境を利用できます。

AgentCore Code Interpreter か AgentCore Runtime か、どちらの Python 実行環境を利用するかは、以下の観点を基準に判断しました。

  • AgentCore Runtime 上からも分離した環境上でコードを実行する必要があるか
    (ネットワーク、IAM ロールなど各種環境設定を AgentCore Runtime 環境と変える必要があるか)
  • 複数のエージェントが同じ実行環境を利用する必要があるか

これらの観点が必要である場合は AgentCore Code Interpreterの利用を、不要な場合はよりシンプルな AgentCore Runtime の利用を検討するべきであると判断しています。本アーキテクチャはエージェントがデプロイされた環境上の Python 実行で問題がなく、かつ複数のエージェントが利用する共通環境も不要であったため、AgentCore Runtime 上の Python 実行環境を採用しています。なお、AgentCore Code Interpreter は、Python、JavaScript、TypeScript をサポートしています。

3-2.AgentCore Identity・Gateway による認証・認可の実装

本アーキテクチャでは、AI エージェントが複数の外部 SaaS をユーザー権限で呼び出すため、ユーザーコンテキストを維持した認証・認可設計が重要となります。認証が発生するポイントは以下の 3 箇所です。

  • AI エージェント実行時のユーザー認証 (Okta)
  • Salesforce API 呼び出し時の認証
  • Tableau API 呼び出し時の認証

これらを AgentCore Identity と AgentCore Gateway を組み合わせて実装しました。

3-2-1. Okta を用いたユーザー認証 (AgentCore Identity)

AI エージェント実行時のユーザー認証には、AgentCore Identity において OAuth 2.0 プロバイダ設定した Okta で発行された、JWT アクセストークンを利用します。JWT アクセストークンを AgentCore Runtime 側で検証する構成により、エージェントは常に認証済みユーザーコンテキストで実行され、後続の SaaS API 呼び出し時にもユーザー情報を引き継ぐことができます。

認証フロー

  1. ユーザーがエージェントを起動
  2. AgentCore Runtime が AgentCore Identity により OAuth 2.0 プロバイダ設定された Okta に認証リクエストを送信
  3. Okta がユーザーに認証情報を要求
  4. ユーザーが Okta で認証
  5. Okta が JWT アクセストークンを発行
  6. AgentCore Runtime 側でトークンを検証
  7. トークンが有効な場合、エージェント実行が開始され、AgentCore Gateway を通じて外部 SaaS API を呼び出し

図2 Okta 認証フロー

3-2-2. Salesforce 連携 (AgentCore Gateway + OAuth 2.0)

本構成では、Salesforce との連携に AgentCore Gateway の MCP ターゲット機能を利用し、OpenAPI 定義を介した OAuth 2.0 Authorization Code Flow を実装しました。Salesforce 側の OAuth 2.0 認証は AgentCore Gateway が主体となって管理し、エージェントはトークン管理の詳細を意識しない設計としています。

認証フロー

  1. エージェントが AgentCore Gateway の MCP ターゲット (OpenAPI ターゲット) として定義された Salesforce API を呼び出し
  2. 初回アクセス時、Salesforce の認証画面がブラウザで表示
  3. ユーザーが Salesforce 認証情報を入力
  4. Salesforce が発行したアクセストークンを AgentCore Identity に保存
  5. AgentCore Gateway 側でトークンを検証
  6. トークンが有効な場合、Salesforce API が実行されレスポンスを返却

以下により、外部 SaaS 追加時も AgentCore Gateway 側で吸収可能な拡張性の高い構成を実現しています。

  • OAuth 2.0 フローを AgentCore Gateway 側で統合管理
  • アクセストークンの保存・検証は AgentCore Identity に委譲
  • エージェントは SaaS ごとの認証実装を持たない

図3 Salesforce 認証フロー

3-2-3. Tableau 連携 (Gateway Interceptors + PAT)

Tableau は OAuth 2.0 ではなく Personal Access Token (PAT) による認証方式を採用しています。AgentCore Identity 標準機能ではユーザー単位の PAT 管理ができないため、Gateway Interceptors を活用したカスタム認証方式を採用しました。

認証フロー

  1. エージェントが AgentCore Gateway で管理される Tableau MCP ターゲット (Lambda ターゲット) を呼び出し
  2. Gateway Interceptors の Request Interceptor Lambda が Authorization ヘッダーからユーザー ID を抽出
  3. AgentCore Gateway が MCP ツールとして定義された Tableau Lambda にユーザー ID を引き渡し
  4. Tableau Lambda が Secrets Manager から該当ユーザーの PAT を取得
  5. Tableau Lambda が取得した PAT を用いて Tableau API を呼び出し
  6. Tableau API が実行され、レスポンスを返却

以下により、OAuth 2.0 非対応 SaaS であってもユーザー単位の認可を維持した連携が可能となりました。

  • ユーザー単位の PAT を AWS Secrets Manager で安全に管理
  • Gataway Interceptors による動的リクエスト変換
  • SaaS ごとの認証差異を AgentCore Gateway 層で吸収
  • エージェントロジックから認証詳細を分離

図4 Tableau 認証フロー

3-3.AgentCore Observability によるユーザー単位でのトレーサビリティの実現

エンタープライズ環境で AI エージェントを運用する場合、単に処理が成功するだけでなく、以下のようにエージェントの振る舞いを追跡できることが重要となります。

  • 誰がエージェントを実行したのか
  • どのツールを呼び出したのか
  • どの外部 SaaS へアクセスしたのか
  • どのような処理経路を辿ったのか

AgentCore Observability は、エージェント実行ログやツール呼び出しログを分散トレースとして取得できる機能が提供されています。しかし、標準機能では外部 IdP (Identity Provider:本構成では Okta) のユーザー情報をトレース情報として保持することができません。そのため、「どのユーザーが実行した処理」かを識別することが困難でした。そこで本構成では、AgentCore Identity で検証済みの JWT から取得したユーザー ID を、トレース属性として明示的に追加することで、ユーザー単位のトレーサビリティを実現しました。

  • ユーザー ID は AgentCore Identity により検証済みトークンから取得
  • 取得したユーザー ID を AgentCore Runtime 実行時にトレースへ注入
  • すべてのツール呼び出しにユーザー属性を伝播
  • 監査用途を想定し、識別子は最小限の属性のみ付与

以下 2 つの方法を組み合わせて実現をしています。

① OpenTelemetry によるカスタムスパン属性の追加

AgentCore Runtime 上でエージェント処理を開始するタイミングで、カスタムスパンを生成し、ユーザー ID を属性として付与します。これにより、トレースのルートスパンにユーザー識別情報が含まれ、後続の処理に伝播されます。

② Strands Agents の trace_attributes を活用

Strands Agents の実行時に trace_attributes を指定することで、エージェント単位のトレース属性を付与できます。この設定により、以下の一連の処理をユーザー単位で関連づけることが可能となります。

  • エージェント呼び出し
  • MCP ツール実行
  • Gateway 経由の外部 API 呼び出し

図5 ユーザー属性付きトレース例

4.実行結果

本アーキテクチャにより、AI エージェントがユーザー認証コンテキストを保持したまま、Salesforce および Tableau にセキュアに接続し、一連の分析処理を実行できることを確認しました。

本検証では「今四半期の商談状況を分析し、先月比の傾向を可視化してください」といった自然言語クエリを入力しました。エージェントはこの指示に基づき、以下の処理を自律的に実行しました。

  1. AgentCore Identity により認証済みユーザーコンテキストを取得
  2. AgentCore Gateway 経由で Salesforce API を呼び出し、商談データを取得
  3. 必要に応じて Tableau API を呼び出し、集計データを取得
  4. AgentCore Runtime 上の Python 実行環境でデータ加工・統計処理を実行
  5. グラフを生成し、分析結果を出力

単一 SaaS 連携の確認

Salesforce 単体の呼び出しでは、認証済みユーザーの権限に基づいてデータ取得が行われ、商談状況の可視化および傾向分析が可能であることを確認しました。

図6 実行結果 (Salesforce のみ)

SaaS 横断分析の実現

さらに、Salesforce から売上データ、Tableau から稼働時間データを取得し、AgentCore Runtime 上で統合処理を行うことで、単一サービスでは得られない横断的な分析結果を生成できました。これにより、以下が可能であることを確認しました。

  • SaaS ごとに分断されていたデータの統合分析
  • 自然言語による分析指示の自動実行
  • ユーザー権限を維持したままのデータ活用

図7 実行結果 (Salesforce + Tableau)

まとめ

本記事では、Amazon Bedrock AgentCore を活用し、Salesforce および Tableau とセキュアに連携する SaaS 横断型 AI エージェント基盤の設計および実装例を紹介しました。本アーキテクチャの検証を通じて、以下の技術的有効性を確認しています。

  • AgentCore Identity によるユーザーコンテキストの一貫した維持
  • AgentCore Gateway を介した安全な外部 API 呼び出しの統合管理
  • AgentCore Runtime 上でのデータ加工・分析処理の実行
  • AgentCore Observability によるユーザー単位の実行トレーサビリティ確保
  • Gateway Interceptors を活用した SaaS 固有認証方式への柔軟な対応

これらを組み合わせることで、エンタープライズ環境においてユーザー権限を維持しながら SaaS を横断する AI エージェントを構築できることを実証しました。AgentCore は、単なるエージェント実行基盤ではなく、認証・認可、外部連携、可観測性といったエンタープライズ要件を統合的に実装できるプラットフォームです。本事例は、その設計パターンの一例を示すものとなります。

本アーキテクチャは営業分析に適用しましたが、同様の設計は、購買、SCM、人事、カスタマーサポートなど、SaaS を横断する業務領域へも応用可能です。この知見を活かし NTTデータは今後、多様なビジネスユースケースに対応する AI エージェントプラットフォームの開発、提供を目指します。


NTTデータ – AWS Partner Spotlight

デジタルビジネスおよび IT サービスのグローバルリーダーである NTTデータは、AWS のプレミアティアサービスパートナーであり、2022 年には日本において戦略協業を締結、2026 年には戦略協業をグローバルに拡大しています。AWS と開発したソリューションをもとに、お客様のシステムのモダナイゼーション、生成 AI やデータ活用などの DX の推進をしています。
NTTデータにコンタクト | パートナー概要

Atsushi Enari

Atsushi Enari

シニアパートナーソリューションアーキテクト アマゾン ウェブ サービス ジャパン合同会社