1. 主要ページへ移動
  2. メニューへ移動
  3. ページ下へ移動

QES ブログ

記事公開日

Claude apps gateway経由のBedrockでもAgentCoreのウェブ検索は使える?【Claude × Bedrock 検証 続編】

  • このエントリーをはてなブックマークに追加

この記事のポイント

公式ドキュメントでは、Claude apps gateway経由ではサーバーサイドのWeb検索が利用できないとされています。前回構築したAmazon Bedrock AgentCore Gatewayのウェブ検索ツールを、Claude apps gatewayから配布するMCPサーバーとして登録し、ゲートウェイ経由のClaudeでWeb検索できるかを検証しました。

  • gateway.yamlに1回書くだけで全員に配布:
    管理者がmanagedMcpServersにAgentCore GatewayのMCPエンドポイントを書けば、ユーザーはコネクタを追加する操作が不要です。
  • Coworkで出典付きのWeb検索を確認:
    Coworkで質問すると、AgentCoreのコネクタを通した検索結果をもとに、出典付きで回答が返りました。Codeタブでも検索できました。
  • 強制ガードレールに注意:
    アカウント全体で強制されるGuardrailsがある場合、ゲートウェイがBedrockを呼ぶロールにbedrock:ApplyGuardrailの許可が必要です。

▼ 無料ダウンロード資料

Claude 導入チェックリスト(情報システム・セキュリティ部門向け)

プラン選定・監査ログ・SSO・テナント制限・コスト管理・運用ポリシーまで、Claude / Claude Code を組織へ安全に導入するための確認項目を6カテゴリで整理。導入プロジェクトの進捗管理・監査証跡としてそのままご活用いただけます。

はじめに

こんにちは。DXソリューション営業本部の松榮です。

前回の記事では、Amazon Bedrock経由のClaudeでは公式のWeb検索が使えないことを公式ドキュメントで確認したうえで、Amazon Bedrock AgentCore Gatewayにウェブ検索ツールのコネクターを追加し、MCPサーバーとしてClaude Desktopに登録することで、Web検索ができることを検証しました。

今回の検証でも、前回の記事で作成したAgentCore Gatewayを使います。Gatewayの作成手順や、ウェブ検索ツールのターゲットの設定は、この記事では説明しませんので、先に前回の記事を参照してください。

前回はClaudeからBedrockへ直接接続する構成でした。企業で導入する場合は、ClaudeとBedrockの間にゲートウェイを置いて、SSOでのサインイン、モデルのアクセス制御、利用状況の収集を一元管理したい、という要望もよく挙がります。そのための仕組みが「Claude apps gateway」です。

Claude apps gatewayは、自社で運用するサービスで、ClaudeのクライアントとBedrockなどのモデル提供元の間に置きます。開発者は、APIキーやクラウドの認証情報を持たずに、社内のIdPでサインインして使えます。ゲートウェイがモデル提供元への認証情報を持ち、IdPのグループごとにモデルのアクセス制御や管理設定を行い、利用状況を自社の監視基盤に送ります。

一方で、公式ドキュメントの機能表では、Claude apps gateway経由の場合、サーバーサイドのWeb検索は「Not available(利用できない)」とされています。前回確認したBedrockの制約に加えて、ゲートウェイを挟んだ場合にも、同じ制約があるということです。

参照:Claude apps gateway - Claude Code Docs

そこで本記事では、Claude apps gatewayを経由した場合でも、前回構築したAgentCoreのウェブ検索ツールが使えるのかを検証します。確認するのは、次の2点です。

  • Claude apps gateway経由のClaudeに、AgentCore Gatewayのウェブ検索ツールを、MCPサーバーとして追加できるか
  • 追加したツールで、実際にWeb検索できるか

検証環境

今回の検証で使った、Claude apps gatewayの構成は次のとおりです。ゲートウェイの構築手順は、この記事では説明しません。

  • ゲートウェイの実行環境:EC2で動かしました。
  • サインイン:IdPには、Amazon Cognitoのユーザープールを使いました。AgentCore Gatewayの認証に使うユーザープールとは、別のものです。
  • 推論先:東京リージョンのAmazon Bedrockです。モデルは、Claude Sonnet 4.6を指定しました。ゲートウェイは、EC2のインスタンスロールでBedrockを呼びます。
  • AgentCore Gateway:前回の記事で作成したものを、そのまま使いました。

配布する設定(gateway.yaml)

Claude apps gatewayでは、ユーザーに配る設定を、ゲートウェイの設定ファイル gateway.yaml の managed に書きます。今回は、AgentCore GatewayをMCPサーバーとして登録する設定を、ここに書いて配布しました。実際に使った設定は、次のとおりです。IDやURLは伏せています。

managed:
  policies:
    - match: {}
      cli:
        availableModels: [jp.anthropic.claude-sonnet-4-6]
        enforceAvailableModels: true
      desktop:
        disabledBuiltinTools: ["WebSearch"]    # 組み込みの検索を止める
        coworkEgressAllowedHosts: ["*"]
        managedMcpServers:
          - name: agentcore-web-search
            transport: http
            url: "https://<gateway-id>.gateway.bedrock-agentcore.ap-northeast-1.amazonaws.com/mcp"
            oauth:
              clientId: <client-id>   # 前回作成した、Claude Desktop用のCognitoクライアントのID
            toolPolicy:
              "<target-name>___WebSearch": allow

主な設定の意味は、次のとおりです。

設定 内容
match: {} 全ユーザーに適用する基本の層です。今回はIdPのグループを作らなかったため、グループ別の層ではなく、この層に書きました。グループを作らない場合、グループ別の層はユーザーに適用されません。
disabledBuiltinTools: ["WebSearch"] Claudeに組み込まれたWeb検索を止めます。検索ができたとき、AgentCoreのツールが使われたと言い切れるようにするためです。
managedMcpServers 配布するMCPサーバーです。url にAgentCore GatewayのMCPエンドポイントを指定します。
oauth.clientId 前回の記事で作成した、Claude Desktop用のCognitoクライアントのIDです。シークレットなしのクライアントなので、clientId だけで足ります。
toolPolicy ツールごとの許可を指定します。allow にすると、CoworkとChatでは事前承認になります。Codeタブでは事前承認にならず、承認ダイアログが出ます。

設定するときの注意点が、2つあります。

  • oauth.clientId には、前回作成したClaude Desktop用のクライアントIDを入れます。gateway.yaml には、Claude apps gatewayへのサインイン用のクライアントID(oidc.client_id)も出てきますが、これは別のIDです。取り違えると、Cognitoが invalid_request のエラー画面を返します。
  • bootstrapUrl は gateway.yaml には書きません。Claude Desktopが起動時にどのゲートウェイへ接続するかを示す設定で、Desktopの端末側(Windowsではレジストリ)に書きます。

Claude Desktopでの操作

gateway.yaml を反映したClaude apps gatewayを用意したあとの、ユーザー側の操作を見ていきます。

1. 設定の反映を待つ

gateway.yaml を書き換えてゲートウェイを再起動すると、設定が反映されるまでに数分かかりました。反映後に、Claude Desktopを再起動します。Claude Desktopは、起動時に bootstrapUrl のゲートウェイにサインインして、配布された設定を受け取ります。

2. コネクタを確認する

Claude Desktopの「設定」を開き、「コネクタ」を選びます。gateway.yaml の managedMcpServers に書いた名前のコネクタ「agentcore-web-search」が、一覧に表示されています。

Claude Desktopのコネクタ一覧にagentcore-web-searchが表示されている画面

3. Coworkで質問する

Coworkで、次のように質問します。

Web検索して、AWS Bedrock AgentCore の Web Search Tool の概要を教えて
CoworkでAgentCoreのWeb Search Toolについて質問し、Web Searchの手順が表示されている画面

回答の途中に、「Web Search」という手順が表示されました。手順を開くと、AgentCoreに送ったリクエスト(Request)と、返ってきた検索結果(Response)を確認できます。右側の「コンテキスト」の「コネクタ」にも、agentcore-web-searchが表示されています。

なお、今回は組み込みの WebSearch を止める設定にしています。ただし、AgentCoreのコネクタのツール名も「Web Search」と表示されるため、画面の見た目だけでは、どちらが使われたのか区別できません。どちらの検索かを確かめるときは、手順を開いて、Request・Responseの内容を見る必要があります。

検索語は、質問が日本語でも、モデルが英語で作りました(この例では「AWS Bedrock AgentCore Web Search Tool overview 2025 2026」)。

4. 回答と出典を確認する

検索結果をもとにした回答の末尾には、出典のリンクが付きました。

検索結果をもとにした回答の末尾に出典の一覧が表示されている画面

AWSの公式ブログや開発者ガイドなど、AgentCoreのウェブ検索に関するページが、出典として挙がっています。

承認ダイアログは、Coworkでは出ませんでした。toolPolicy を allow にしているため、事前承認になっているからです。一方、Codeタブでも検索はできましたが、こちらは allow でも事前承認にならず、承認ダイアログが出ます。

検証中に注意が必要だった点:Guardrails

検証中に、Claude apps gateway経由でチャットを送ると、次のエラーになることがありました。

403 upstream denied the requestのエラーが表示されている画面

「Failed to authenticate. API Error: 403 upstream denied the request — check the gateway operator」と表示され、その下に「接続は正常ですが、プロバイダーがテストリクエストを拒否しました。多くの場合、モデルアクセスまたはクォータの問題であり、管理者が解決できます」と出ます。文言だけを見ると、モデルのアクセス権やクォータの問題に見えます。

原因を切り分ける

そこで、Claude apps gatewayを動かしているEC2から、ゲートウェイと同じインスタンスロールのまま、Bedrockを直接呼んでみました。すると、次のエラーが返りました。

not authorized to perform: bedrock:ApplyGuardrail on resource: ...guardrail/<guardrail-id>

使っているAWSアカウントには、Bedrockへのすべての呼び出しにかかる強制ガードレール(Guardrails)が設定されていました。強制されたガードレールを通すには、呼び出す側が、そのガードレールに対する bedrock:ApplyGuardrail を許可されている必要があります。ゲートウェイのインスタンスロールには、この許可がなかったため、Bedrockに拒否されていました。

Claude apps gateway経由でのGuardrailsの動作や設定方法については、以前の記事を参照してください。

なぜ今回だけ起きたのか

前回の記事のBedrockへの直接接続では、Claude Desktopにサインインした自分のAWS権限でBedrockを呼んでいたため、この問題は起きませんでした。Claude apps gateway経由では、ゲートウェイがインスタンスロールでBedrockを呼びます。呼び出す主体が変わると、必要な権限も変わります。

対処

ゲートウェイのインスタンスロールに、対象のガードレールを指定した bedrock:ApplyGuardrail の許可を追加しました。ガードレール自体はアカウント全体に効く設定なので、変更や無効化はしていません。

気をつけること

  • 既存の環境に、組織やアカウント全体で強制されるガードレールがある場合は、Claude apps gatewayがBedrockを呼ぶ主体(ロールなど)に、bedrock:ApplyGuardrail の許可が必要です。
  • この権限が足りないときの症状は、Claude側の認証エラーに見えますが、原因はAWS側のIAMです。

結果

Claude apps gatewayを経由した場合でも、AgentCoreのウェブ検索ツールを使うことができました。冒頭で挙げた2点の結果は、次のとおりです。

確認したこと 結果
Claude apps gateway経由のClaudeに、AgentCore Gatewayのウェブ検索ツールを、MCPサーバーとして追加できるか 追加できました。gateway.yaml の managedMcpServers に書いて、ユーザーに配布できます。
追加したツールで、実際にWeb検索できるか 検索できました。Coworkで質問すると、AgentCoreのコネクタを通した検索結果をもとに、出典付きで回答が返りました。Codeタブでも、検索できることを確認しています。

公式ドキュメントでは、Claude apps gateway経由の場合、サーバーサイドのWeb検索は利用できないとされています。しかし、検索ツールを自分で用意してMCPサーバーとして配布すれば、ゲートウェイ経由の環境でも、Web検索を使えるようにできます。

ユーザーは、Claude Desktopでコネクタを追加する操作が不要です。管理者が gateway.yaml に1回書くだけで、全員に同じ設定を配れます。企業での導入では、この点が大きな利点になります。

注意点は、次の3つです。

  • gateway.yaml に書く oauth.clientId は、前回作成したClaude Desktop用のクライアントIDです。サインイン用のIDと取り違えると、Cognitoが invalid_request を返します。
  • 画面上の「Web Search」は、AgentCoreのコネクタの表示名で、組み込みの検索と同じ名前に見えます。どちらが使われたかは、手順を開いて確認します。
  • Bedrockに、アカウント全体で強制されるガードレールがある場合は、ゲートウェイがBedrockを呼ぶロールに bedrock:ApplyGuardrail の許可が必要です。足りないと、403 upstream denied the request になります。

まとめ

前回の記事では、Bedrock経由のClaudeでは公式のWeb検索が使えないものの、AgentCore Gatewayのウェブ検索ツールをMCPサーバーとして登録すれば、Web検索ができることを確認しました。今回は、その構成をClaude apps gatewayを経由する環境に広げて、同じ検索ツールが使えるかを検証しました。結果、使うことができました。

前回と今回の違いは、次のとおりです。

  前回(Bedrockへ直接接続) 今回(Claude apps gateway経由)
公式のWeb検索 使えない 使えない(公式ドキュメントの機能表でも、利用できないとされている)
検索ツールの用意 AgentCore Gatewayにウェブ検索ツールを追加 前回と同じAgentCore Gatewayを使用
MCPサーバーの登録 利用者が、Claude Desktopの画面で手動で登録 管理者が gateway.yaml に書いて、ゲートウェイから配布
Claude Desktop用のCognitoクライアント 前回、検索ツール用に作成 前回作成したものを、配布する設定に指定
検索の実行 承認ダイアログで承認すると実行される Coworkでは、toolPolicy の設定により事前承認になる

Claude apps gatewayを導入する環境でWeb検索が必要になった場合は、AgentCoreのウェブ検索ツールをMCPサーバーとして配布する、今回の構成が選択肢になります。AgentCore Gatewayの作成は前回の記事、Claude apps gatewayで配布する設定は今回の記事を参考にしてください。

QESでは、ガバナンス整備・セキュアな利用環境構築・利活用コンサルティング・セキュリティレビューまで、Claude / Claude Code の組織導入を一貫して支援しています。AWS(Amazon Bedrock)経由での提供にも対応しています。支援内容は下記のサービスページ、および無料の「Claude 導入チェックリスト」をご覧いただくか、お問い合わせフォームよりお気軽にご相談ください。

▼ 無料ダウンロード資料

Claude 導入チェックリスト(情報システム・セキュリティ部門向け)

プラン選定・監査ログ・SSO・テナント制限・コスト管理・運用ポリシーまで、Claude / Claude Code を安全に導入するための確認項目を6カテゴリで整理。導入プロジェクトの進捗管理・監査証跡としてそのままご活用いただけます。

※Amazon Web Services、"Powered by Amazon Web Services"ロゴ、およびブログで使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。

※このブログで参照されている、Anthropic、Claude、Claude Code、Claude Cowork は、Anthropic, PBCの米国およびその他の国における商標または登録商標です。

  • このエントリーをはてなブックマークに追加

お問い合わせ

Contact

ご質問やご相談、サービスに関する詳細など、何でもお気軽にご連絡ください。下記のお問い合わせフォームよりお気軽に送信ください。

お問い合わせ

資料ダウンロード

Download

当社のサービスに関する詳細情報を掲載した資料を、下記のページよりダウンロードいただけます。より深く理解していただける内容となっております。ぜひご活用ください。

資料ダウンロード