Dev Study
← Amazon Bedrock で Claude を使う(本編)

Bedrock 調査の記録: なぜそうなるのか

Bedrock で Claude を使う調査は、「できる・できないの一覧を作る」から始まって、問いが次々に転がりました。同じモデルなのに機能が違うのはなぜか。WebSearch がないと知識が止まるのか。型落ちしか使えないのか。記録を残さない契約を取ると何が消えるのか。一つ答えが出るたびに前提がひっくり返り、最後には「便利さ」と「記録を残さないこと」が同じ一本の軸の両端にあることが見えてきました。ここでは、その順番どおりに、問い → 最初の見立て → 原典で確かめたこと → ひっくり返った点 → 設計への意味、の形で書きます。事実は本編と同じ出典に基づき、調査日は 2026-10-06 です。

各章の事実は本編(監査済み)と同じ出典に基づきます。章末の出典は、その章の主張を確かめたページです。調査日 2026-10-06。

1. 同じモデルなのに、なぜ同じ機能が使えないのか

問い

Claude の API と Bedrock で、中身は同じ推論モデルのはず。なのに Bedrock では WebSearch も Remote Control も使えないのはなぜ?

最初の見立て

Bedrock は Anthropic のサーバーへ転送する窓口で、少し機能が遅れて届くだけだろう。

原典で確かめたこと

  • AWS の文書では、モデル提供元から渡された推論用と学習用のソフトウェアを AWS が丸ごと複製し、リージョンごと・提供元ごとの専用アカウント(Model Deployment Account)に置いて AWS が運用する。Anthropic はそのアカウントに触れない。
  • つまり Bedrock の Claude は「Anthropic に転送される」のではなく、「AWS の中で動いている別のコピー」。Anthropic 側の文書も、推論基盤に Anthropic の社員がアクセスできない(zero operator access)と書いている。
  • Claude Code の機能比較では、Bedrock の欄で WebSearch・Remote Control・クラウドセッションが Not available。これらはモデルではなく Anthropic のサーバー側のサービス(検索の実行、会話の保存と同期)で成り立っている。「複製されないから使えない」という理由そのものは両社の文書に書かれていないが、文書から読み取れる構図はそうなる(なお AWS 自身は bedrock-mantle で Web 検索を含む独自のサーバー側ツールを提供していて、Claude のモデルカードにはそれが載っていない)。

ひっくり返った点

「同じモデル」なのは本当で、違うのは「モデルの周りにいるサービス」だった、というのが文書から読み取れる構図。機能の差はモデルの差ではなく、誰のサーバーで何を預かるかの差(公式はここまで理由を書いていないので、これは推論)。

設計への意味

Bedrock で足りない機能は、モデルを変えても埋まらない。埋めるなら AWS 側のサービス(EventBridge・CodeBuild・CloudWatch)で自作する、が本編の「運用の段取り」の出発点になった。

2. Mantle とは何か。入口は2つ、エンジンは1つ

問い

文書に出てくる「Mantle」は新しい推論基盤? 旧来の Bedrock とは別物?

最初の見立て

bedrock-mantle は新しいモデル専用の新基盤で、旧来の bedrock-runtime は型落ち向け、と読める名前の付け方。

原典で確かめたこと

  • AWS の Endpoints の文書は、裏で動く推論エンジンは1つ(AWS はこれを Mantle と呼ぶ)で、bedrock-runtime と bedrock-mantle はそこへ入る2つの入口だと説明し、「bedrock-mantle という名前は入口を指すもので、別の推論エンジンではない」と明記している。
  • bedrock-runtime は AWS の推奨で、Claude には InvokeModel・Converse・Messages の3つの形式で送れる。Guardrails・Knowledge Bases などの Bedrock の機能はこちらでだけ使える。
  • bedrock-mantle は Anthropic の API と同じ形のまま使う入口で、サーバー側ツールや background inference などの「Mantle だけの機能」がある代わりに、Bedrock の周辺機能は使えず、IAM の権限名(bedrock-mantle:)もクォータも別枠。

ひっくり返った点

「Mantle」が会話では2つの意味で使われる。エンジンの名前でもあり、2つ目の入口の通称でもある。「新しいモデルは Mantle から」と言われたときは、入口の話であって、旧来の入口から新しいモデルが呼べないという意味ではない。

設計への意味

どちらの入口を使うかは「Bedrock の周辺機能が要るか(runtime)」と「Anthropic 流の機能が要るか(mantle)」で決まる。国内処理を優先するなら、東京の推論プロファイルが揃っている bedrock-runtime が確実、という結論に繋がった。

3. WebSearch がないと、知識は学習時点で止まるのか

問い

Bedrock では WebSearch が使えない。ということは、モデルが学習した時点の情報しか持てない?

最初の見立て

検索できないなら、新しい脆弱性情報や最新のドキュメントは参照できず、知識が凍る。

原典で確かめたこと

  • 止まるのは WebSearch(検索エンジンに問い合わせる Anthropic 側のサービス)だけで、WebFetch(URL を直接取りに行く)は Bedrock でも使える。URL さえわかれば、公式ドキュメントや RFC を取って読める。
  • ただし WebFetch は取得前の安全確認で、ホスト名(URL 全体や中身ではない)を api.anthropic.com に送る。これは Bedrock でも行われるので、閉じたネットワークでは通信を許可するか skipWebFetchPreflight を設定する必要がある。
  • 確認なしで取りに行けるドメインは管理設定の permissions.allow で指定でき、それ以外は都度確認になる(allowManagedPermissionRulesOnly で利用者が「常に許可」を足せなくできる)。ただし deny に WebFetch(domain:*) を書くと allow が全部無効になる。deny → ask → allow の順で評価され、allow で例外は作れない。

ひっくり返った点

「探す」ことはできないが「読む」ことはできる。失うのは知識ではなく、当たり先を自分で知らなくてよい便利さ。知識のある人には小さな差で、知識のない人には大きな差になる。

設計への意味

だから本編には、当たり先の URL の型と「見つからない=存在しないではない」の規律をスキル(aws-docs-lookup)として置いた。検索の代わりに、辞書の引き方を教える形。

4. 型落ちしか使えないのか。東京・jp・global の話

問い

東京リージョンでは Fable や最新のモデルは使えない? 結局 Bedrock は型落ち前提?

最初の見立て

AWS に来るのは一世代前のモデルだけで、東京はさらに遅れる。

原典で確かめたこと

  • AWS のモデルカードでは、Opus 5.5 は jp.(東京と大阪で処理する地域の推論プロファイル)で使える。Sonnet 5.5 は us / eu / global のみ、Fable 5.1 は東京からは global.(世界中の空いているリージョン)だけ。
  • 「東京で使える」には2通りある。東京の中だけで処理する(In-Region)と、東京から送って日本の中(jp.)で処理する。bedrock-runtime では東京の In-Region に対応する Claude はない。Mantle では Opus 4.8・Opus 4.7・Haiku 4.5 が東京の単一リージョンで使えるが、Opus 5.5 の Mantle には東京の行がない。Opus 5.5 を国内で使うなら jp. が実質の答え。
  • Claude Code は ap-* リージョンでは既定で apac.(アジア太平洋の複数国で処理)を優先する。国内に閉じたいなら ANTHROPIC_BEDROCK_REGION_PREFIX=jp を明示し、さらに IAM で jp. 以外を拒否する。global. は aws:RequestedRegion が unspecified になる点で見分けられる。
  • Sonnet 4.5 と Haiku 4.5 は、AWS のカードの「EOL no sooner than」(この日より前には提供を終了しない)が 2026-10-06 時点で過ぎている(Sonnet 4.5: 2026-09-30)か目前(Haiku 4.5: 2026-10-16)だった。カード上の状態はどちらもまだ Active で、終了したわけではない。

ひっくり返った点

型落ちかどうかはモデル名ではなく「どこで処理するか」で決まる。国内に閉じると Sonnet 5.5 と Fable 5.1 が落ち、Opus 5.5(jp.)か、Mantle の東京 In-Region なら Opus 4.8 以下が残る。逆に global を許せば最新が使えるが、処理場所が海外になる。ここで初めて「最新モデル」と「国内処理」が二者択一だとわかった。

設計への意味

本編の「国内で完結させる」節は、この二者択一を前提に、jp. で使える最上位(Opus 5.5)に固定し、環境変数と IAM の二重で守る構成になった。

5. 「根拠がない」と言われた話。アイコンの表が根拠だった

問い

サービス階層の節で「Claude は Flex / Priority 非対応」と書いたが、出典のページにそう書いていないのでは?

最初の見立て

解説ページ(service tiers)に対応表があるはず。

原典で確かめたこと

  • 解説ページには仕組みの説明だけで、どのモデルが対応するかは書かれていなかった。対応の有無は各モデルカードの Service Tiers の表にあり、しかも ○× がテキストでなくアイコン画像で示されている。
  • 機械で取得すると、アイコンは本文に出てこない。「ページに記載なし」と判定されやすい形。

ひっくり返った点

主張は正しかったが、出典の示し方が間違っていた。根拠が「表のアイコン」であるときは、そのこと自体(どのカードの、どの表の、何を見たか)を書かないと読者は確かめられない。

設計への意味

本編の用語解説に「複数出典 + 表のどこを見るか」を書く欄(extraSources)を足した。以後、アイコン表が根拠の主張は、確認したカード名と日付を本文に書く規律にしている。

6. 監査が間違える。修正が新しい誤りを生む

問い

監査は大丈夫? 2周回したと言うが、何が出てきた?

最初の見立て

1周目の指摘を直せば終わり。監査役の指摘は正しい前提。

原典で確かめたこと

  • 2周目で、1周目の修正文そのものに誤りが2件あった。「OTEL の利用者属性はゲートウェイが付ける」→ 実際はゲートウェイが発行したトークンをもとに CLI が付け、ゲートウェイは中身を変えずに中継するだけ。「Budgets のアクションを Identity Center のロールに当てる」→ Identity Center が作るロールは保護されていて直接変更できず、SCP で当てる。
  • さらにその次の監査では、監査役の報告の中に、原典に存在しない「逐語引用」が1件あった(README に無い文を引用として書いていた)。grep で確かめて初めてわかった(これは作業の経緯なので、公開文書で検証できる出典はない)。

ひっくり返った点

直す行為は新しい文を書く行為なので、同じ確率で誤りが入る。そして監査役も生成物なので、引用そのものを疑う必要がある。「2周目」は儀式ではなく、1周目の修正を検証するための工程だった。

設計への意味

修正文も必ず次の監査に回す。監査役の引用は採用前に自分で原典を grep する。この2つを本編の制作手順に固定した。

7. 記録を残さない契約を取ると、便利な機能が消える

問い

ゼロデータリテンション(ZDR)にすると Code Review や Remote Control が止まるとはどういうこと?

最初の見立て

ZDR はデータの保存ポリシーの話で、機能には関係ない。

原典で確かめたこと

  • ZDR は「プロンプトと応答を、返答後に Anthropic が保存しない」取り扱い。Enterprise の標準には含まれず、管理画面で ON にはできない。適格な組織に Anthropic が個別に有効化する。
  • 公式は、保存を前提に成り立つ機能はバックエンドで自動的に無効化されると書き、理由を機能ごとに挙げている: クラウドセッション(会話履歴をサーバーに保存)、Remote Control(端末間で同期するためトランスクリプトを保存)、Artifacts(公開ページを Anthropic の基盤に保存)、Claude Tag(チャンネルのメモリと記録を保持)。
  • Code Review と Ultrareview は、それぞれの機能ページに「ZDR 組織では利用不可」とある。クラウドセッションが止まるので、その上で動くルーティンも止まる。
  • ZDR でもポリシー違反とフラグされたセッションは最長2年保持されうる。Fable 5 / 5.1 は「Covered Models」として保持が既定で必要で、ZDR 組織では使えない場合がある。

ひっくり返った点

Remote Control が止まるのは、スマホから続きを見るために会話の写しが Anthropic のサーバーに置かれるから。便利さの正体は「預かること」で、ZDR は「預からない約束」。両立しないのは理屈として当然だった。Bedrock は別の仕組みだが、既定ではモデルの入出力を保存しない(AWS の契約と設定による。Fable 5 / 5.1 は不正利用検知のために最大30日保持される例外がある)ので、Anthropic が会話を預かる前提の機能(クラウドセッション・Remote Control・Artifacts)が同じように存在しない。ZDR で止まる一覧と Bedrock で使えない一覧は重ならない部分も多い(Bedrock では管理画面や WebSearch も使えず、逆に ZDR では WebSearch は使える)が、「預かる機能が消える」という芯は共通だった。

設計への意味

選択肢は2つに整理された。記録を残さず国内で処理する(Bedrock。便利機能は AWS 側で自作)か、便利機能を取る(サブスク。記録は Anthropic の通常ポリシー)か。サブスクで全部入りを組みながら ZDR も、は成立しない。

8. 「読み取り専用」のつもりが、Bash が残っていた

問い

レビュー役のサブエージェントから Edit と Write を外した。これで読み取り専用?

最初の見立て

編集ツールを外せばファイルは書き換えられない。

原典で確かめたこと

  • Bash が残っていれば、sed -i やリダイレクトでファイルは書き換えられる。公式は、disallowedTools に Bash(git push *) のように条件付きで書いても「Bash ごと消える」と明記していて、Bash の中身だけを絞る手段は permissions.deny 側にある。
  • 同じ構図がフックにもある。フックの Bash 入力の判定(if フィルタ)は「最善努力」で、多くのイベントでは終了コード 1 では止まらず、2 で止まる(JSON の決定でも止められ、worktree 系のイベントは非 0 で止まる例外がある)。絶対に通したくない操作は permissions で止めろ、と公式が書いている。

ひっくり返った点

「道具を取り上げる」と「操作を禁じる」は別の層。道具の層(tools / disallowedTools)、操作の層(permissions の allow / deny)、振る舞いの層(フックとスキルの文章)の3段があって、どの層で守るかを決めないと、守ったつもりになる。

設計への意味

本編のスキル・フック節では、reviewer を「編集ツールを持たない監査役」と言い直し、「機械で止める / 人に確認を出す / 文章でお願いする」の3段をどの操作に当てるかを議論の論点に置いた。

9. 無人で動かすと、人がいる前提の仕組みが止まる

問い

毎朝のルーティンで Artifact のボードを更新し、Issue を起票し、修正 PR を出す。これは回る?

最初の見立て

公開済みのページを再公開するだけなら、無人でも通る。

原典で確かめたこと

  • ルーティンが確認なしで再公開できる Artifact は5条件すべてを満たすものだけ。自組織で自分が編集できる・公開リンクにしていない・共有相手が新しい版を自動では見ない設定・ページだけを公開し上書きしない・コネクタ呼び出しのような外に届く権限を持たない。チームに「常に最新版を共有」で配っていると、無人の再公開は確認待ちで止まる。
  • ブランチ保護は「ルーティンの作成者が接続した GitHub アクセス」に対して効く。その人がバイパスできる立場なら、push は止まらない。
  • 組み込みの GitHub ツールが文書で明記しているのは Issue の読み取り・PR 一覧・差分取得・コメント投稿。Issue の新規起票は書かれていない(公式の例は draft PR を開く形。gh CLI は入っているので起票できる余地はあるが、文書の保証はない)。
  • クラウド環境の環境変数は、その環境を使う全員が読める。公式は秘密情報を置かないよう警告している(Team / Enterprise には代わりの API credentials がまだない)。

ひっくり返った点

無人運転で止まるのは、どれも「人が見ている前提で安全にしてある場所」。共有の自動更新、バイパス権限、秘密情報の置き場。便利な設定ほど、無人にした瞬間に確認待ちか穴になる。

設計への意味

サブスク版の全部入りには、ボードはスナップショット型にする・ルーティンはバイパス権限のないアカウントで作る・起票は構成案と明記する、を足した。無人化の設計は「人が居なくなったら何が変わるか」を一つずつ潰す作業になる。

10. イベントに本文が入っていない。設計が一行で崩れる型

問い

GitHub Actions の @claude 起動を、AWS の Code シリーズで再現できる?

最初の見立て

CodeCommit の「PR にコメント」イベントを EventBridge で拾い、本文に @claude があれば CodeBuild を起動すればいい。

原典で確かめたこと

  • CodeCommit のコメントイベント(Comment on Pull Request)には、コメント ID・PR ID・前後のコミット ID・投稿者の ARN は入るが、コメントの本文が入らない。EventBridge のルールだけでは @claude を絞れず、起動した側が GetComment で本文を取って判定する必要がある。
  • 同じ型が他にもあった。CODEBUILD_WEBHOOK_TRIGGER は Webhook 起動のビルドでだけ使えると明記されている(他の WEBHOOK_* も Webhook 前提の変数で、スケジュール起動での値は文書に明記がない)。SNS → Lambda は「少なくとも1回」届く方式で重複しうる。ビルド自身の投稿で再起動するループは、自前で防ぐ必要がある。

ひっくり返った点

構成図は正しく見えるのに、イベントの「中身の形」を見ていないと一行で崩れる。図に矢印を引く前に、その矢印に何が乗っているかを文書で確かめる、という当たり前のことが一番効いた。

設計への意味

本編の Code シリーズ構成案では、起動後に本文を取りに行く段を足し、ループ防止と重複排除を注記した。AWS 公式に「Claude Code を Code シリーズで」の手順はないので、全体を構成案と明記している。

全体から残ったこと

  1. 機能の差はモデルの差ではなく、「誰のサーバーで何を預かるか」の差。Anthropic が会話を預かる前提の機能(同期・公開・自動レビュー)は、預からない設計(Bedrock の既定、ZDR の契約)には来ない。Bedrock と ZDR は別の仕組みで、使えない機能の一覧も同じではない。
  2. 「最新モデル」と「国内処理」、「便利機能」と「記録を残さない」は、それぞれ一本の軸の両端。どちらを取るかを先に決めると、残りの設計はほぼ自動で決まる。
  3. 探せないことと読めないことは違う。WebSearch がなくても WebFetch で原典に当たれる。失うのは「当たり先を知らなくてよい便利さ」で、それは規律(スキル)で補える。
  4. 守る層は3段(道具・操作・振る舞い)。どの層で守っているかを言えないものは、守っていない。
  5. 無人化は「人が居なくなったら何が変わるか」を一つずつ潰す作業。便利な共有設定・バイパス権限・環境変数は、人がいる前提の安全装置。
  6. 修正は新しい文を書く行為なので、同じ確率で誤りが入る。監査役の引用も原典で grep する。2周目は儀式ではなく、1周目の修正を検証する工程。
  7. 矢印を引く前に、その矢印に何が乗っているかを確かめる。イベントに本文がない、変数が空、重複して届く。構成図はここで崩れる。

できる・できないの一覧、構成図、雛形は本編 Amazon Bedrock で Claude を使う にあります。