Dev Study
← トップ

Amazon Bedrock で Claude を使う: できること・できないこと

AWS の Amazon Bedrock 経由で Claude を使うとき、Anthropic の API を直接使う場合と比べて何ができて何ができないかをまとめました。一言でいうと、会話・画像と PDF の読み取り・自前のツール使用・キャッシュはできる。Anthropic のサーバーで動くもの(Web 検索・コード実行・Files API・Batches・Managed Agents など)はできない。代わりに IAM・CloudTrail や、bedrock-runtime 経由なら Guardrails など、AWS の仕組みに乗れます。

2026-10-06 時点の Anthropic と AWS の公式ドキュメントに基づきます(出典はページ末尾)。監査役のサブエージェントによるハルシネーション検査を2周行い、指摘を原典で確かめて反映しています。文章はこのサイトで書いたものです。Bedrock は AWS が運営するため、提供範囲はモデル・リージョン・入口(API)ごとに違い、変わりやすいので、使う前に Bedrock コンソールとモデルカードで確かめてください。

このページがどういう問いの連鎖でできたか(なぜそうなるのか)は、別ページ Bedrock 調査の記録 にまとめています。開発・技術調査・テスト・受け入れ・運用・保守・SRE のそれぞれで何を組み合わせるかは 活動別の構成 にあります。

要点

この下の各節の結論だけを並べました。条件や代わりの手段は各節にあります。

○ できること

  • 会話・ストリーミング、画像と PDF の読み取り、1M トークンのコンテキスト
  • 自分で定義したツールの実行、Bash・テキストエディタ・メモリのツール
  • プロンプトキャッシュ、コンパクション(beta)
  • Claude Code の CLI・VS Code 拡張・サブエージェント・フック・スキル・MCP
  • WebFetch や curl で、URL を指定してページを取ってくること(WebFetch は api.anthropic.com への確認通信あり)
  • AWS の仕組み: IAM、Guardrails(bedrock-runtime 経由)、CloudTrail、AWS の請求
  • 最新モデル(Fable 5.1・Opus 5.5 など)。型落ちモデルしか使えないわけではない
  • 推論を国内(東京+大阪)だけで処理: Opus 5.5・Opus 4.8 / 4.7・Sonnet 4.6・Haiku 4.5(jp. の推論プロファイル。Sonnet 4.5 も可だが Anthropic は非推奨扱い、Haiku 4.5 は AWS の提供終了の目安日が目前)

× できないこと

  • Web 検索・コード実行など、Anthropic のサーバーで動くツール
  • Files API・Message Batches・Managed Agents・Agent Skills・MCP コネクタ
  • Opus 5.5・Sonnet 5.5 などでの構造化出力。Priority / Flex の階層(どの Claude モデルでも非対応)。Opus 5.5・Sonnet 5.5 のバッチ推論
  • Claude Code の WebSearch
  • claude.ai の契約が前提の機能: リモートコントロール、スマホやクラウドのセッション、デスクトップアプリ(組織向けの 3P 構成を除く)、/schedule、Chrome 拡張、Artifacts
  • その結果、答えに出典が付きにくく、知識がない人ほど誤りに気づきにくい
  • Fable 5.1・Sonnet 5.5・Opus 5 などを国内だけで処理すること(東京からは global 経由のみ)

Bedrock の仕組みと、機能が違う理由

同じモデルなのに使える機能が違うのは、使えない機能の多くがモデルそのものではなく、モデルの周りで Anthropic が動かしている別のサービスだから、というのが両社の文書から読み取れる構図です(理由そのものは文書に書かれていません)。

  1. 1Anthropic がモデルを AWS に渡す

    AWS の文書によると、モデル提供元から AWS にモデルが渡されると、Bedrock は提供元の推論用(と学習用)のソフトウェアを丸ごと複製し、リージョンごと・提供元ごとに用意した AWS の専用アカウント(Model Deployment Account)に配置します。

  2. 2AWS が推論サーバーを運用する

    AWS は、どちらの入口も同じ Mantle という推論エンジンで処理すると説明しています(Model Deployment Account との関係は文書に明記がありません)。そのアカウントに Anthropic はアクセスできず、Bedrock のログにも、利用者のプロンプトと応答にも触れられません。Anthropic の文書でも「Anthropic の社員は推論基盤にアクセスできない(zero operator access)」と説明されています。

  3. 3リクエストは推論プロファイルで行き先が決まる

    利用者は Bedrock のエンドポイントに送ります。行き先は推論プロファイルごとに決まっていて、AWS のカード上、jp. は東京と大阪、us. は米国内(カナダから呼ぶとカナダも含む)、global. は世界中の空いているリージョンです(AWS は接頭辞だけで判断せず、get-inference-profile で行き先を確かめるよう求めています)。どこで処理されたかは、CloudTrail の additionalEventData.inferenceRegion に記録されます。

似た名前の Claude Platform on AWS は逆で、AWS のインフラの上で Anthropic が運用し、推論データも Anthropic が処理します。同じ「AWS で Claude」でも、Bedrock は AWS が運用する Claude、Claude Platform on AWS は AWS の上で Anthropic が運用する Claude です(ただし 2026-09-18 より前に作ったワークスペースでは、Anthropic が AWS の外で処理することがあると但し書きがあります)。

アーキテクチャ図

Amazon Bedrock で Claude を使うときの構成図。利用者は bedrock-runtime と bedrock-mantle の2つの入口から入り、どちらも AWS が運用する Mantle エンジンで処理される。bedrock-runtime は推論プロファイルで処理する地域が決まり、jp. なら東京と大阪、global. なら海外も含む。Anthropic は推論ソフトウェアを AWS に渡すが、推論基盤にはアクセスできず、Web 検索などの周りのサービスは Bedrock からは使えない。
タップすると原寸で開きます。draw.io の元ファイル: claude-on-bedrock.drawio / draw.io で開く。「draw.io で開く」はブラウザの app.diagrams.net でそのまま開いて編集できます(保存先は開いた側で選ぶ)。

機能の3つの層

モデルの中でやること

例: 文章の生成、thinking、画像・PDF の読み取り、ツールを呼ぶ判断

動く場所:
推論サーバー
Bedrock:
○ 複製されたソフトウェアに入っている

推論サーバーの付属機能

例: プロンプトキャッシュ、トークン計測、引用

動く場所:
推論サーバー
Bedrock:
○ AWS 側で用意されている(一部は遅れて届く)

モデルの周りのサービス

例: Web 検索、コード実行、Files API、Batches、Managed Agents

動く場所:
Anthropic のサーバー
Bedrock:
× Bedrock の Claude では使えない

たとえば Web 検索では、Claude は「この語で検索したい」というツールの呼び出しを出力するだけで、実際の検索は Anthropic の API 側が実行します。AWS の文書で Bedrock に複製されると書かれているのは推論(と学習)のソフトウェアで、Anthropic のこうした周りのサービスは Bedrock の Claude では使えません(AWS 自身は bedrock-mantle で Web 検索を含む独自のサーバー側ツールを提供していますが、Claude のモデルカードには載っていません)。ただし「複製されないから使えない」という理由そのものは、両社の文書には書かれていません。両社の文書から読み取れる構図としての説明です(Google Cloud のように、他社が運用する環境でも基本の Web 検索が提供されている例もあります)。逆に、自分で実行するツールが Bedrock でも使えるのは、モデルは呼び出しを出力するだけで、実行は自分の側でやるからです。AWS は代わりに、Guardrails・Knowledge Bases・AgentCore(従来の Bedrock Agents は新規受付終了。AWS が似た機能として案内)などの自前の周辺サービスを用意しています。

つまり、Bedrock は「型落ちのモデルしか使えない」わけではありません。Fable 5.1・Opus 5.5・Sonnet 5.5 などの最新モデルも載っています。違うのは周りのサービスで、エンジンは同じでオプション装備が違う車、というイメージです。ただし、構造化出力や新しい computer use の toolset のように推論側の機能でも Bedrock にまだないものがあり、その理由は両社の公開文書に書かれていません(AWS 側のソフトウェアや API が追いつくまでの遅れと考えられますが、推測です)。

エンジンは1つ、入口は2つ

Bedrock の裏で Claude を動かしている推論エンジンは1つで、AWS はこれを Mantle と呼んでいます。そこへ入る入口(エンドポイント)が2つあり、どちらから入っても同じ Mantle エンジンで処理され、zero operator access の設計(AWS の定義では「サービスの運用者がモデルの入出力にアクセスできない」、Anthropic の文書では「Anthropic の社員が推論基盤にアクセスできない」)も同じです。AWS の文書は「bedrock-mantle という名前は入口を指すもので、別の推論エンジンではない」と明記しています。

入口1 bedrock-runtime ─ InvokeModel / Converse / Messages ─┐
                                                         ├→ Mantle エンジン(AWS が運用)
入口2 bedrock-mantle ── Messages ─────────────────────────┘

別サービス Claude Platform on AWS → Anthropic が運用する基盤

ややこしいのは、「Mantle」が会話や文書で2つの意味に使われることです。多くの場合は2つ目の入口(bedrock-mantle)を指します。また Anthropic の文書は、bedrock-mantle の入口の説明に「Claude in Amazon Bedrock(Opus 4.7 以降)」、InvokeModel / Converse の説明に「Opus 4.6 以前」という題を付けていますが、新しいモデルも bedrock-runtime から呼べます。

入口が違うと、使える API の形・Bedrock の機能・権限・リージョンが変わります。

入口1: bedrock-runtime

AWS の推奨

https://bedrock-runtime.{リージョン}.amazonaws.com。Claude には3つの形で送れます。InvokeModel(Claude 用の JSON をそのまま渡す。ストリーミングは AWS 独自の event-stream)、Converse(AWS がモデルをまたいで揃えた共通の形)、Messages(Anthropic の API と同じ形。…amazonaws.com/anthropic)。AWS は「新しいアプリには bedrock-runtime を」と勧めています。

対象モデル:
すべての Claude モデル。ただし Messages の形は新しいモデルだけで、AWS のモデルカードでは Opus 5.5・Sonnet 5.5・Fable 5.1・Haiku 4.5 は対応、Opus 4.6・Sonnet 4.6 は InvokeModel と Converse のみ。Guardrails・Knowledge Bases・Agents などの Bedrock の機能はこちらでだけ使えます。IAM の権限は bedrock:、初めて使うときは利用目的(use case)の提出が要ります
モデル ID:
jp.anthropic.claude-opus-5-5 や global.anthropic.claude-sonnet-4-6 のように、推論プロファイルの接頭辞(処理する地域)付き。使える接頭辞はモデルごとに違い(AWS のモデルカードでは Opus 5.5 は us / eu / au / jp / global、Sonnet 5.5 は us / eu / global、Fable 5.1 は us / global)、Anthropic の旧来の表と AWS のモデルカードで jp・apac の有無が食い違うモデルもあるので、モデルカードで確かめます
公式ドキュメント ↗

入口2: bedrock-mantle

Mantle だけの機能(サーバー側ツール・background inference・Projects など)がある入口

https://bedrock-mantle.{リージョン}.api.aws。Anthropic や OpenAI の API と同じ形のまま Bedrock を使うための入口で、Claude は Messages の形(/anthropic/v1/messages)だけです。ストリーミングは普通の SSE で、Anthropic の SDK に専用クライアント(AnthropicBedrockMantle)があります。AWS は「bedrock-runtime にない機能が要るときだけ」使うよう案内し、Anthropic は新しいモデルにこちらを案内しています。

対象モデル:
Opus 4.7 以降の多くのモデルと Haiku 4.5(Fable 5.1・Opus 5.5・Sonnet 5.5 など。AWS のカードでは Mythos 5.1 は Mantle 非対応)。使える API は Messages(とトークン計測)だけで、Guardrails・Knowledge Bases・Agents などは使えません。IAM の権限は bedrock-mantle: という別の名前、クォータも別枠、利用目的の提出は不要。使えるリージョンも bedrock-runtime と違います(Opus 5.5 は AWS のカードでは東京になし)
モデル ID:
anthropic.claude-opus-5-5 のように anthropic. を付け、地域の接頭辞や版の後ろ付けはなし。推論プロファイル ID を送ると 400 になります
公式ドキュメント ↗

Claude Platform on AWS(Bedrock ではない)

別のサービス

AWS の認証(IAM・SigV4)と AWS Marketplace の請求で使えるが、運営は Anthropic という別サービスです。Mantle エンジンではなく、Anthropic が運用する基盤で処理されます。Anthropic の API とほぼ同じ機能が同じ日に使えるのが売りで、Bedrock で「できない」機能の多くはこちらならできます。

対象モデル:
Anthropic の API と同じモデル
モデル ID:
claude-opus-5-5 のように接頭辞なし(Anthropic の API と同じ)
公式ドキュメント ↗

できること

Anthropic の API と同じように使えるものです。beta は試験提供の意味です。

会話の基本

Messages API で文章をやりとりする部分は、Anthropic の API とほぼ同じように使えます。

○Messages API・ストリーミング

system・messages・max_tokens などを渡して応答を受け取る基本の呼び出し。応答を少しずつ受け取るストリーミングもできます。

Mantle は SSE、InvokeModel は AWS の event-stream 形式。間にプロキシを挟む場合は Content-Type を書き換えないこと(Claude Code の文書に注意書きあり)。

○画像・PDF の入力

画像と PDF を base64 で埋め込んで読ませられます。

URL を指定して読ませる形は使えません(下の「できないこと」)。Converse API で PDF の図や表まで読ませるには citations を有効にする必要があります。1リクエストは 20MB まで。

○1M トークンのコンテキスト

Fable 5.1・Opus 5.5・Sonnet 5.5 など、Opus 4.6 / Sonnet 4.6 以降のモデルは 100万トークンまで入ります。

Sonnet 4.5・Haiku 4.5 などは 20万トークン。トークン数より先に 20MB の上限に当たることがあります。

○考える量の調整(thinking・effort)

adaptive thinking と effort(low〜max)で、どれだけ考えさせるかを調整できます。

○トークン数を数える

送る前に入力のトークン数を数える API があります。

AWS のモデルカードでは、Opus 5.5・Sonnet 5.5 のトークン計測は Mantle 側だけで、bedrock-runtime 側は非対応(Haiku 4.5・Sonnet 4.6 は bedrock-runtime でも可)。Mantle では IAM の bedrock-mantle:CountTokens 権限が要ります。

○引用(citations)・検索結果ブロック

渡した文書のどこを根拠に答えたかを返させる機能と、自前の検索結果を引用つきで渡す形が使えます。

ツールを使わせる

自分で実行するツール(クライアント側ツール)は、ほとんど使えます(browser use と新しい computer use の toolset は除く)。Anthropic のサーバーが実行するツールは使えません。

○ツール使用(function calling)

自分で定義したツールを Claude に呼ばせ、結果を返して会話を続けるループが組めます。

○Bash・テキストエディタ・メモリツール

Anthropic が形を決めていて、実行は自分の側で行うツールです。Bedrock でも使えます。

○Computer use(画面操作)beta

スクリーンショットを見てマウス・キーボード操作を指示させる機能です。

従来版のツール(computer_20251124 など)のみ。新しい computer_toolset_20260801 と browser_toolset_20260801 は Bedrock にまだありません。

○ツール検索(tool search)

ツールが大量にあるとき、必要なものだけを検索して読み込ませる機能です。

Converse API では使えません(Anthropic の文書は「InvokeModel API 経由のみ」と書いており、Mantle で使えるかは明記がありません)。

○ツール引数のストリーミング(fine-grained tool streaming)

大きなツール引数を、生成された順に少しずつ受け取れます。

Anthropic の公開文書では、Bedrock で全モデル対応とされています。旧来の入口(ARN 形式の ID)の古いモデルでは 400 になる、という記述は Anthropic の Claude API スキル(Claude Code 同梱の資料)にだけあり、公開文書では確認できません。

長い会話・コスト

キャッシュと、長い会話の文脈を整理する機能は Bedrock にもあります。

○プロンプトキャッシュ(5分・1時間)

毎回同じ前置き(system やツール定義、長い文書)をキャッシュし、2回目以降を安く速くします。

旧来の連携(InvokeModel / Converse、Opus 4.6 以前)では、最上位に cache_control を1つ書くだけの自動キャッシュは 400 になるので、キャッシュするには各ブロックに cache_control を置く必要があります。なお AWS には、何も指定しなくても試みられる暗黙のキャッシュ(Implicit Prompt Caching)もあります。キャッシュが効く最小トークン数はモデルで違います(AWS の文書では Opus 5.5 は 512、Haiku 4.5 は 4,096)。

○コンパクション・コンテキスト編集beta

会話が長くなったら古い部分を要約する、古いツール結果を消す、といった文脈の整理をサーバー側でやらせる機能です。

Anthropic の文書ではコンパクションが2種類あり、トークン数を閾値にする型(compact-2026-01-12)は Bedrock で beta、要求したときに要約する型(compact-2026-09-04)は Bedrock では not available です。一方 AWS の Opus 5.5 のモデルカードは compact-2026-09-04 を bedrock-runtime で対応としていて、後者について両社が食い違っています。

○会話の途中での system メッセージ

会話の途中に運用者からの指示を差し込み、キャッシュを壊さずに振る舞いを変えられます(Fable 5.1・Opus 5.5・Sonnet 5.5 など)。

InvokeModel / Mantle 経由のみ。Converse API では使えず、ARN 形式の ID を持つ古いモデルも対象外。Sonnet 5 は非対応。

できないこと

Anthropic の API にはあるが、Bedrock にはないものです。多くは Anthropic のサーバーで動く機能で、代わりの手段を添えています。

Anthropic のサーバーで動くツール

Anthropic のサーバー側で実行されるツールは、Bedrock(AWS が運営)では使えません。

×Web 検索・Web 取得

Claude にインターネットを検索させたり、ページを取ってこさせたりする組み込みツールがありません。

代わり: 検索 API を自前のツールとして定義して呼ばせる。Claude Code も Bedrock では WebSearch ツールが使えません。

×コード実行(code execution)

Anthropic が用意する隔離環境で Claude にコードを実行させる機能がありません。

代わり: Bash ツールを自分の隔離環境(コンテナなど)で実行する。

×Advisor ツール

速いモデルに作業させ、賢いモデルに途中で助言させる組み合わせ機能がありません。

エージェントの仕組み

Anthropic が用意しているエージェント向けの土台は Bedrock にはありません。

×Agent Skills(API の skills)

PowerPoint・Excel 生成などのスキルを API リクエストに付ける機能がありません。

×MCP コネクタ

API リクエストに MCP サーバーの URL を渡すだけでつなぐ機能がありません。

代わり: 自分の側で MCP クライアントを動かし、ツールとして渡す(Claude Code の MCP 設定は自分の手元で動くので Bedrock でも使えます)。

×Programmatic tool calling

コード実行環境の中から自分のツールを呼ばせる機能がありません。

×Claude Managed Agents

エージェントのループと作業用コンテナを Anthropic が運用してくれるサービスは使えません。

代わり: Messages API とツール使用で自分でループを組む、または Claude Agent SDK を自分の環境で動かす。

Anthropic の API 側の窓口

Messages 以外の API の多くは Bedrock にはありません。AWS 側の同等機能を使います。

×Message Batches API

Anthropic の一括処理 API(半額で非同期に処理)は使えません。

代わり: AWS 側の Bedrock バッチ推論(S3 に入力を置いてジョブを投げる)。ただしモデル次第で、AWS のモデルカードでは Opus 5.5・Sonnet 5.5 は Batch 非対応、バッチの対応表には Opus 5・Sonnet 4.6・Haiku 4.5 などが載っています。

×Files API・URL 指定の入力

ファイルを一度アップロードして ID で使い回す仕組みと、画像や文書を URL で渡す形が使えません。

代わり: 毎回 base64 で埋め込む(同じ文書はプロンプトキャッシュで安くする)。

×Models API・Admin API・Usage and Cost API・Compliance API

モデル一覧の取得、組織管理、利用量とコストの取得などの API がありません。

代わり: aws bedrock list-foundation-models、IAM、CloudWatch / CloudTrail、AWS の請求。

Anthropic の API だけの機能

Anthropic の API でしか案内されていない機能です(inference_geo だけは Claude Platform on AWS でも使えます)。

×サーバー側のフォールバック(fallbacks)

安全上の理由で応答が拒否されたとき、同じ呼び出しの中で別モデルに切り替える指定が使えません。

代わり: SDK のクライアント側フォールバック(BetaRefusalFallbackMiddleware)。

×Fast mode

同じモデルを割増料金で速く出力させるモードは Anthropic の API だけです。

×inference_geo(推論する地域の指定)

リクエストごとに推論する地域を指定するパラメータは使えません。

代わり: Bedrock の地域別エンドポイントや推論プロファイル(us / eu / jp など)で地域を固定する。

×キャッシュ診断・task budget

キャッシュが効かない理由を返させる機能と、エージェントのループに予算を意識させる機能は、Bedrock での提供が案内されていません。

キャッシュ診断は Anthropic の API だけと明記。task budget は他社基盤での提供が文書にないため、使えない前提で考えるのが安全です。

入口・モデル・リージョンで変わること

「できる/できない」の一言で言えず、条件を見ないとはまるところです。

構造化出力(JSON スキーマで出力を縛る)

Mantle(Claude in Amazon Bedrock)では使えません。旧来の連携(bedrock-runtime の InvokeModel または Converse)で Opus 4.6・Sonnet 4.6・Sonnet 4.5・Opus 4.5・Haiku 4.5 を呼ぶときだけ使えます。AWS のモデルカードも同じで、Opus 5.5・Sonnet 5.5 はどちらの入口でも非対応、Haiku 4.5・Sonnet 4.6・Opus 4.6 は bedrock-runtime で対応です。strict: true を付けたツール(strict tool use)も構造化出力の一部なので、新しい入口では使えず、指定すると 400 になります(AWS の文書に Opus 4.7 の例あり)。JSON がほしいときは、ツールの input_schema やプロンプトで形を伝え、受け取った側で検証して、合わなければ再試行します。

モデル ID の書き方

Mantle は anthropic.claude-sonnet-5 のような形、InvokeModel は us.anthropic.claude-sonnet-4-6 のように推論プロファイル付きの形です。Mantle に推論プロファイル ID を送ると 400 になります。旧来の入口(ARN 形式の ID)で、推論プロファイル経由でしか提供されていないモデル(Sonnet 4.5 など)に素のモデル ID を送ると「on-demand throughput isn't supported」という 400 になり、推論プロファイル ID が必要です。

IAM の権限

InvokeModel は bedrock:InvokeModel など bedrock: の権限、Mantle は bedrock-mantle:CreateInference など別の名前の権限です。片方を許可しても、もう片方は通りません。

モデルへのアクセス

bedrock-runtime(InvokeModel / Converse)で Anthropic のモデルを初めて使うときは、アカウント(または組織の管理アカウント)ごとに一度、利用目的(use case)を提出します。AWS の文書によると、Mantle 経由ではこの提出は要りません。モデルごとに AWS が提供条件を決めており、Mythos 系は招待制です。

使えるリージョン(両社の文書で食い違いあり)

Anthropic の文書の表では、Mantle は東京(ap-northeast-1)で global・JP・単一リージョンのすべてに対応となっています。一方 AWS の文書では、Mantle はそもそも地域(jp. など)や global の推論プロファイルに非対応で単一リージョンだけ、Opus 5.5 のモデルカードでも Mantle で使えるのは us-east-1・ap-southeast-4(メルボルン)・us-gov-west-1 の単一リージョンだけです。bedrock-runtime 側なら東京から Opus 5.5 を JP の推論プロファイル(jp.anthropic.claude-opus-5-5)と global で使え、Fable 5.1 は東京からは global のみです。さらに AWS のモデルカードでは、Sonnet 5.5 と Fable 5.1 の Mantle は us-gov-west-1(GovCloud)だけで、商用リージョンの Mantle では使えません(Anthropic の文書は、Fable 5.1 の地域別エンドポイントを us-east-1 としています)。実際に使う前に、自分のアカウントの Bedrock コンソールで確かめてください。

Fable 5.1 はデータ保持の設定が前提

AWS のモデルカードによると、Fable 5.1 を使うには Data Retention API でデータ保持モードを aws_review にして、AWS の確認(不正利用の検知)に同意する必要があります。また Fable 5.1 には、悪用にもつながりうる(デュアルユースの)内容を止める安全分類器があり(Anthropic の文書では Fable 5・Opus 5.5・Opus 5・Sonnet 5.5 も同様。分類は cyber・bio・frontier_llm・reasoning_extraction・general_harms の5つ)、拒否は HTTP 200 + stop_reason: "refusal" で返ります。課金の扱いは両社で食い違っていて、AWS のモデルカードは「推論前に止まった分は課金なし」としていますが、Anthropic の文書は Bedrock を含む全基盤で、出力前の拒否でも bio・frontier_llm・reasoning_extraction の分類なら課金するとしています(途中で止まった分は、どちらもそこまで課金)。temperature は 1.0 か未指定、top_p は 0.99 か未指定で、両方は同時に指定できず、top_k は使えません。なお AWS の不正利用検知の文書では、Fable 5 / 5.1 の通信はすべて最大30日保持され、分類器に引っかかったものは AWS の人による確認の対象になりうるとされています。

新機能が届く時期

Bedrock は AWS が運営するため、Anthropic の新機能や新モデルが同じ日に届くとは限りません。モデルの提供終了日も AWS が決めるので、Anthropic の API とずれることがあります。

Bedrock ならではのこと

Bedrock を選ぶ理由になる、AWS 側の仕組みです。

+AWS の認証と権限管理

IAM ロール・SigV4 署名で呼べ、Anthropic の API キーを配る必要がありません。公式の推奨は Bedrock サービスロール、ほかに IAM の引き受けロール(最長12時間)と Bedrock の API キー(短期キーは最長12時間。長期キーもあるが AWS は試用向けとし、Anthropic は禁止しておくことを勧めています)。

出典 ↗

+AWS の境界の中で完結する

推論基盤は AWS が管理し、Anthropic の社員は推論基盤にアクセスできない(zero operator access)と Anthropic の文書にあります。AWS の文書でも、モデルは各リージョンの AWS 管理のアカウントに複製して動かし、モデル提供元はそのアカウントにも、プロンプトや応答、Bedrock のログにもアクセスできないと説明されています。例外として、Fable 5 / 5.1 の通信は不正利用検知のために AWS 側で最大30日保持されます(上の「入口・モデル・リージョンで変わること」の Fable 5.1 の項を参照)。

出典 ↗

+グローバルと地域別のエンドポイント

global は空いている地域へ動的に振り分け(割増なし)、地域別はデータを特定地域に留める代わりに10%割増。Anthropic の表では、Mantle の東京(ap-northeast-1)は global・JP・単一リージョンのすべてに対応となっていますが、AWS の文書では Mantle は地域・global の推論プロファイルに非対応で、Opus 5.5 の Mantle に東京はありません(上の「使えるリージョン」の注意を参照)。bedrock-runtime なら jp. と global. が使えます。

出典 ↗

+Guardrails・Knowledge Bases・Agents・Flows など Bedrock の機能

AWS 側で入出力の内容フィルタ(Guardrails)をかけたり、RAG の Knowledge Bases、Bedrock Agents(従来版は Agents Classic として新規受付を終了。似た機能として AWS は AgentCore を案内)、Flows、プロンプト管理、モデル評価と組み合わせたりできます。Claude Code でも、作成・公開した Guardrail の ID をヘッダーで渡せば使えます(推論プロファイル経由なら Guardrail 側で Cross-Region を有効にする)。

AWS のモデルカードでは、これらは bedrock-runtime 側だけで、Mantle では使えません。

出典 ↗

+サービス階層・バッチ・予約容量(モデルによる)

AWS のサービス階層は Standard(従量)・Priority(割増で速い)・Flex(安いが待つ)・Reserved(期間契約の専有容量。アカウント単位で AWS の担当者に依頼)の4つです。これとは別に、S3 経由のバッチ推論があります。

Claude では、確認したどのモデルカードでも Priority と Flex は非対応でした(根拠は各カードの Service Tiers の表。○×はアイコン画像で本文には書かれていない。Service tiers の解説ページには Claude の記述がない)。モデルで違うのは Reserved(Haiku 4.5・Sonnet 4.5・Sonnet 4.6・Opus 4.6 など古めのモデルのみ)とバッチ推論(Opus 5.5・Sonnet 5.5 は非対応、Fable 5.1 は対応表に載っていない。Opus 5・Haiku 4.5・Sonnet 4.6 などは対応表に載っています)。新しいモデルで使えるのは実質 Standard だけです。

出典 ↗

+請求は AWS の請求書に

AWS のモデルカード(Opus 5.5・Sonnet 5.5・Haiku 4.5)では、AWS Marketplace 経由の他社モデルとして課金され、請求書と Cost Explorer には Amazon Bedrock ではなくモデル提供元の名前で載るとあります(Anthropic の文書は「AWS のサービス利用として課金」と表現)。料金は Anthropic の API とは別建てで、Amazon Bedrock の料金ページで確認します。

出典 ↗

+提供期間の約束

AWS のモデルカードには、モデルごとに「EOL no sooner than(この日より前には提供を終了しない)」の日付と、終了前の移行期間(Legacy period)が書かれています。Opus 5.5 は 2027-09-22・6か月。古いモデルは要注意で、Sonnet 4.5 の日付(2026-09-30)は 2026-10-06 時点ですでに過ぎ、Haiku 4.5(2026-10-16)も目前です(どちらもカード上はまだ Active。Haiku 4.5 のカードは別欄の Model EOL date が 10/1/2026 で、カード内で日付が食い違っています)。Legacy period に入ると新規の利用者は使い始められず、既存の利用者も15日使わないとアクセスを失うことがある、と AWS の文書にあります。Anthropic の表は Sonnet 4.5 を非推奨(deprecated)としています。

出典 ↗

+ログと監視

CloudWatch と CloudTrail にログが出ます。Anthropic は少なくとも30日分の利用ログを残すことを勧めています。

出典 ↗

+上限(クォータ)

Anthropic の文書(Mantle)では、既定は入力 200万トークン/分で、Anthropic の承認なしで入力 500万・出力 50万トークン/分まで引き上げを申請でき、1分あたりのリクエスト数(RPM)は AWS 側で管理するとあります。ただし AWS の文書では、Mantle に RPM の上限はなく入力と出力のトークン数だけで制限し、値はモデル・アカウント・リージョンで異なるとしていて、RPM の扱いが食い違っています。既定値も食い違い、AWS の Opus 4.7 / 4.8 のカードは Mantle で入力 2,000万・出力 400万トークン/分、bedrock-runtime で 3,000万トークン/分としています。Mantle と bedrock-runtime のクォータは別枠です。

出典 ↗

東京から使えるモデルと、処理される場所

AWS のモデルカードの地域表で、東京(ap-northeast-1)から呼んだときに国内だけで処理できるかを確かめました。

○ Opus 5.5

jp.anthropic.claude-opus-5-5

○ Opus 4.8

jp.anthropic.claude-opus-4-8

○ Opus 4.7

jp.anthropic.claude-opus-4-7

○ Sonnet 4.6

jp.anthropic.claude-sonnet-4-6

○ Sonnet 4.5

jp.anthropic.claude-sonnet-4-5-20250929-v1:0

○ Haiku 4.5

jp.anthropic.claude-haiku-4-5-20251001-v1:0

× Fable 5.1

国内だけでは処理できない(東京からは global. のみ)

× Mythos 5.1(招待制)

国内だけでは処理できない(東京からは global. のみ)

× Opus 5

国内だけでは処理できない(東京からは global. のみ)

× Sonnet 5.5

国内だけでは処理できない(東京からは global. のみ)

× Sonnet 5

国内だけでは処理できない(東京からは global. のみ)

× Opus 4.6

国内だけでは処理できない(東京からは global. のみ)

  • jp. の推論プロファイルの行き先は、AWS のモデルカード上、東京(ap-northeast-1)と大阪(ap-northeast-3)だけです。AWS の文書では、地域の推論プロファイルへのリクエストはその地域の中に留まるとされています。ただし AWS は「接頭辞だけで行き先を判断しないこと」とも書いているので、使う前に aws bedrock get-inference-profile で行き先のリージョン一覧を確かめます。
  • ○ のうち Sonnet 4.5 と Haiku 4.5 は、AWS のカードの「EOL no sooner than」の日付が 2026-10-06 時点で過ぎている(Sonnet 4.5)か目前(Haiku 4.5)で、Anthropic は Sonnet 4.5 を非推奨としています。国内処理の主力は Opus 5.5 と Sonnet 4.6 に置き、Haiku 4.5 は提供状況を見ながら使うのが安全です。
  • 東京リージョンの中だけで処理する形(In-Region)は、bedrock-runtime ではどの Claude モデルも非対応でした。一方 Mantle では、Opus 4.8・Opus 4.7・Haiku 4.5 が東京の In-Region に対応しています(大阪にも出さず東京だけで処理)。
  • × のモデルは、東京からは global.(世界中に振り分け)でしか呼べません。データが日本の外で処理されることがあります。
  • Mantle は、Anthropic の表では「東京は単一リージョン対応」です。AWS のカードでも Opus 4.8・Opus 4.7・Haiku 4.5 はそのとおりですが、Opus 5.5・Opus 5・Sonnet 5.5・Sonnet 5・Fable 5.1 の Mantle には東京の行がなく、食い違っています。Opus 5.5 を国内で使うなら bedrock-runtime の jp. が確実です。なお Mantle は IAM の権限の名前(bedrock-mantle:)が別なので、下の IAM の例では止められません。
  • Mythos 5.1 は、AWS のカードでも審査を通った組織に限定(Anthropic の trusted access programs 経由)のプレビューです。リージョン以前に利用資格が要り、さらにデータ保持モードを provider_data_share にする必要があります。

推論を国内から出さずに Claude Code を使う

主力は Opus 5.5、軽い処理は Sonnet 4.6(Haiku 4.5 も使えますが、AWS のカードの提供終了の目安日が目前なので提供状況を確かめてから)になります。Fable 5.1 と Sonnet 5.5 は、この条件では使えません。Claude Code で一番危ないのは、選んだつもりのないモデルの呼び出しが国外に出ることです。経路は主に2つあり、固定していない別名(fable の別名は既定で Fable 5.1 になり、jp. がない)と、auto mode の判定器(既定で Sonnet 5 で動き、Sonnet 5 は東京からは global のみ)です。環境変数だけでは塞ぎきれないので、2と3も必須と考えてください。

1. 4つの別名をすべて jp. に固定する

Claude Code の文書によると、指定した接頭辞(jp)のプロファイルが無いモデルは、合致する他のプロファイル(東京なら global.)に切り替わります。opus・sonnet・haiku に加えて fable の別名も、jp. のあるモデルに向けておきます(fable の別名は既定で Fable 5.1 で、jp. がない)。ANTHROPIC_BEDROCK_REGION_PREFIX は v2.1.224 以降で、設定しないと ap-* リージョンでは apac. が優先されます。

export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=ap-northeast-1
export ANTHROPIC_BEDROCK_REGION_PREFIX=jp
export ANTHROPIC_DEFAULT_OPUS_MODEL='jp.anthropic.claude-opus-5-5'
export ANTHROPIC_DEFAULT_SONNET_MODEL='jp.anthropic.claude-sonnet-4-6'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='jp.anthropic.claude-haiku-4-5-20251001-v1:0'
export ANTHROPIC_DEFAULT_FABLE_MODEL='jp.anthropic.claude-opus-5-5'

2. 使えるモデルを jp. の ID だけに限定する(管理設定)

管理設定の availableModels に jp. の ID だけを並べ、enforceAvailableModels を true にします(Bedrock の Invoke API で v2.1.287 以降)。auto mode の判定器は、availableModels が Sonnet 5 を除外していると、Sonnet 5 ではなくセッションのモデルで動くと文書にあります。これで判定器も jp. のモデルに留まります。

{
  "availableModels": [
    "jp.anthropic.claude-opus-5-5",
    "jp.anthropic.claude-sonnet-4-6",
    "jp.anthropic.claude-haiku-4-5-20251001-v1:0"
  ],
  "enforceAvailableModels": true
}

3. 設定ではなく権限で止める(IAM / SCP)

環境変数はうっかり上書きできるので、IAM で jp. の推論プロファイル以外を呼べないようにします。AWS の文書によると、地域の推論プロファイルを使うには、プロファイルそのものと、行き先の全リージョン(東京と大阪)の foundation-model の両方に権限が要ります。global. は、aws:RequestedRegion が unspecified の foundation-model への権限で動くので、それを許可しなければ使えません。下は AWS の文書の例と Claude Code の文書の必要権限をもとにした例で、そのまま使う前に自分の環境で動作を確かめてください。注意点が2つあります。この例は Allow だけなので、同じ人に AmazonBedrockFullAccess などの別の Allow が付いていると何も止めません。確実に止めるには、AWS の文書が示すとおり、aws:RequestedRegion が unspecified の呼び出し(global)を明示的に拒否する Deny を SCP などで入れます。また Mantle は権限の名前が bedrock-mantle: で別なので、この例では止まりません。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowJpInferenceProfiles",
      "Effect": "Allow",
      "Action": ["bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream"],
      "Resource": "arn:aws:bedrock:ap-northeast-1:<アカウントID>:inference-profile/jp.anthropic.*"
    },
    {
      "Sid": "AllowModelsOnlyViaJpProfiles",
      "Effect": "Allow",
      "Action": ["bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream"],
      "Resource": [
        "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.*",
        "arn:aws:bedrock:ap-northeast-3::foundation-model/anthropic.*"
      ],
      "Condition": {
        "StringLike": {
          "bedrock:InferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:<アカウントID>:inference-profile/jp.anthropic.*"
        }
      }
    },
    {
      "Sid": "AllowMarketplaceSubscription",
      "Effect": "Allow",
      "Action": ["aws-marketplace:ViewSubscriptions", "aws-marketplace:Subscribe"],
      "Resource": "*",
      "Condition": { "StringEquals": { "aws:CalledViaLast": "bedrock.amazonaws.com" } }
    },
    {
      "Sid": "AllowProfileLookup",
      "Effect": "Allow",
      "Action": ["bedrock:ListInferenceProfiles", "bedrock:GetInferenceProfile"],
      "Resource": "*"
    }
  ]
}

4. 本当に国内で処理されたかを確かめる

使う前に aws bedrock get-inference-profile --region ap-northeast-1 --inference-profile-identifier jp.anthropic.claude-opus-5-5 で、行き先のリージョン一覧が東京と大阪だけかを確かめます(AWS は接頭辞だけで判断しないよう求めています)。使い始めたら、AWS の文書によると推論プロファイル経由のリクエストは呼び出し元のリージョンの CloudTrail に記録され、additionalEventData.inferenceRegion に実際に処理したリージョンが入るので、ap-northeast-1 と ap-northeast-3 以外が出ていないかを定期的に確かめます。

5. WebFetch はホスト名だけを Anthropic(api.anthropic.com)に送る

WebFetch は取得前の安全確認で、ホスト名(URL 全体やページの中身ではない)を api.anthropic.com に送ります。Bedrock でも行われます。社内のホスト名も知られたくなければ、設定で skipWebFetchPreflight: true にするか、WebFetch 自体を止めます(CLAUDE_CODE_DISABLE_WEB_FETCH=1、v2.1.285 以降)。なお、エラー報告や利用状況の送信は、Bedrock では既定で止まっています。

「推論が国内で完結する」ことと「個人情報を送ってよい」ことは別の話です。国内でも、AWS という外部の事業者にデータを渡すことには変わりありません。また AWS の文書では、地域の推論プロファイルでも、入力と出力は地域内の別リージョン(ここでは大阪)に移ることがあり、不正利用検知のために保存する場合は行き先のリージョンに保存されるとされています(AWS が不正利用検知の保存対象として挙げている Claude は Fable 5 / 5.1 で、この構成のモデルは一覧に入っていません)。個人情報を扱ってよいかは、AWS との契約・お客さんとの契約・社内規程で判断することで、このページでは判断しません。

Claude Code を Bedrock で使う

Claude Code は Anthropic のアカウントでログインする代わりに、Bedrock を通して動かせます。

はじめ方

claude を起動し、ログイン画面で「3rd-party platform」→「Amazon Bedrock」を選ぶと設定ウィザードが開きます。ログイン済みなら /setup-bedrock。AWS の認証方法・リージョン・使うモデルを選ぶと ~/.claude/settings.json に保存されます。手で設定するなら環境変数です。

export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=ap-northeast-1   # プロファイルにリージョンがあれば不要

できないこと

WebSearch ツールが使えません(Anthropic のサーバーで検索するため)。/logout もありません(認証は AWS の資格情報で行うため)。ほかに、claude.ai の契約が前提の機能(リモートコントロール・/schedule など)も使えません。デスクトップアプリだけは、組織向けの「Claude Desktop on 3P」構成でなら Bedrock でも動きます。詳しくは下の「ログイン方法で変わる Claude Code の機能」の表。Claude Code は InvokeModel 系の API を使い、Converse API には対応していません。

Web の情報は「検索」できないが「取得」はできる

WebFetch(URL を渡してページを読む)と、Bash での curl は手元のパソコンから通信するので Bedrock でも使えます。公式も、Web で調べる代わりに URL を指定して WebFetch を使うよう案内しています。ただし WebFetch は多くの場合、ページに抽出用の指示を当てた別のモデル呼び出しの結果だけを Claude に渡すので、要件の文言そのものが要るときは curl や git clone のほうが確実です。また WebFetch は取得前に、ホスト名(URL 全体ではない)を api.anthropic.com に送って安全確認をします。これは Bedrock でも行われるので、api.anthropic.com への通信を塞いでいる社内ネットワークでは、許可するか skipWebFetchPreflight: true を設定する必要があります。検索そのものが要るなら、検索 API(Brave・Tavily など)を MCP サーバーとしてつなぎます。

モデルは固定しておく

固定しないと、opus や sonnet という別名は Claude Code が決めた Bedrock 用の既定モデルになります(主モデルは Opus 5.5、タイトル付けなどの裏方は Sonnet 4.5)。チームで配るなら版を固定するのが公式の推奨です(既定のモデルは最新から遅れることがあり、アカウントで使えないこともあるため)。なお、固定しないと主モデルは Opus になり、Sonnet より単価が高くなります。固定していない場合に限り、既定のモデルが使えなければ、そのセッションだけ古い版や Sonnet へ自動で切り替わります(設定には残りません)。固定した版が使えないときは、代わりのモデルの連鎖(fallback model chain)を設定していなければ、切り替わらずに失敗します。下の例の us. は us-* リージョン用の推論プロファイルで、東京から使うなら jp. か global. に置き換えます(ただしモデルによっては jp. がないので、迷ったら global. にするか、コンソールで確かめます。Claude Code は ap-* リージョンでは既定で apac. を優先するので、ANTHROPIC_BEDROCK_REGION_PREFIX=jp か global を指定しておくと安全です)。

export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'
export ANTHROPIC_DEFAULT_SONNET_MODEL='us.anthropic.claude-sonnet-4-6'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'

Mantle で使う

CLAUDE_CODE_USE_MANTLE=1 で Mantle エンドポイントに送ります。モデル ID は anthropic.claude-sonnet-5 の形。CLAUDE_CODE_USE_BEDROCK と両方立てると、ID の形を見て送り先を振り分けます。/status の provider 欄で確かめられます。

export CLAUDE_CODE_USE_MANTLE=1
export AWS_REGION=us-east-1

使えるもの

プロンプトキャッシュ(ENABLE_PROMPT_CACHING_1H=1 で1時間)、1M コンテキスト(モデル ID の後ろに [1m])、Guardrails(ANTHROPIC_CUSTOM_HEADERS でヘッダーを付ける)、サービス階層の指定(ANTHROPIC_BEDROCK_SERVICE_TIER。ただし上のとおり Claude では Priority と Flex がどのモデルカードでも非対応なので、実質は default のみ)。Guardrails は bedrock-runtime 経由のときだけ効きます。MCP サーバーやスキル・フックなどは手元で動く仕組みなので、Bedrock かどうかに関係なく使えます。

Anthropic のコマンドライン ant は非対応

Anthropic の API 用 CLI(ant)は Bedrock に対応していません。cURL か SDK を使います。

ログイン方法で変わる Claude Code の機能

Claude Code は、手元で動く部分はどのログイン方法でも同じです。違いが出るのは、Anthropic のサーバーや claude.ai のアカウントに頼る部分です。Anthropic の API キーで使う場合も、claude.ai の契約が前提の機能は使えません。

手元で動く部分(どこでも同じ)

MCP サーバー(自分で設定したもの)

claude.ai の契約
○
Anthropic の API キー
○
Bedrock
○
Claude Platform on AWS
○

WebFetch・curl で URL の中身を取る

claude.ai の契約
○
Anthropic の API キー
○
Bedrock
○
Claude Platform on AWS
○

Team / Enterprise の契約では、組織の設定で WebFetch が止められていることがあります。

サーバー側の機能に頼る部分

Auto mode(安全な操作を自動で許可)

claude.ai の契約
○
Anthropic の API キー
○
Bedrock
△ 対応モデルのみ
Claude Platform on AWS
○

Bedrock では Sonnet 5 以降・Opus 4.7 以降・Fable 系のみ。

Fast mode

claude.ai の契約
△ 使用量クレジットで課金
Anthropic の API キー
△ 提供を受けた組織
Bedrock
×
Claude Platform on AWS
×

claude.ai の契約では使用量クレジットで課金。Team / Enterprise はオーナーが有効にする必要あり。

Advisor

claude.ai の契約
○
Anthropic の API キー
○
Bedrock
×
Claude Platform on AWS
×

Channels

claude.ai の契約
○
Anthropic の API キー
○
Bedrock
×
Claude Platform on AWS
×

claude.ai のコネクタ・同期されるスキルとプラグイン

claude.ai の契約
○
Anthropic の API キー
×
Bedrock
×
Claude Platform on AWS
×

claude.ai の契約でログインしているときだけ読み込まれます。

claude.ai の契約が前提の機能

リモートコントロール(スマホやブラウザから手元のセッションを操作)

claude.ai の契約
○
Anthropic の API キー
×
Bedrock
×
Claude Platform on AWS
×

公式に「API キーは非対応」と明記。Team / Enterprise は管理者が有効にする必要あり。

スマホの Claude Code・クラウドで動くセッション・Slack 連携

claude.ai の契約
○
Anthropic の API キー
×
Bedrock
×
Claude Platform on AWS
×

デスクトップアプリ

claude.ai の契約
○
Anthropic の API キー
△ Desktop on 3P
Bedrock
△ Desktop on 3P
Claude Platform on AWS
×

Bedrock では「Claude Desktop on 3P」という組織向けの構成でだけ動きます(会話は手元に保存、設定は MDM などで配布)。API キーについては文書が食い違っていて、Claude Code の機能表では非対応ですが、Desktop on 3P の文書には Claude API キーで動かす設定があります。Claude Platform on AWS は、Claude Code の機能表では非対応です(部分対応にも挙がっていません)。公式は、Anthropic の製品を使える組織なら通常版のほうが導入が簡単で新機能も早い、としています。

/schedule(定期実行のルーティン)

claude.ai の契約
○
Anthropic の API キー
×
Bedrock
×
Claude Platform on AWS
×

代わり: 手元で動く /loop。

Chrome 拡張・Artifacts・音声入力・Ultrareview

claude.ai の契約
○
Anthropic の API キー
×
Bedrock
×
Claude Platform on AWS
×

Computer use(デスクトップ操作)

claude.ai の契約
△ Pro / Max
Anthropic の API キー
×
Bedrock
×
Claude Platform on AWS
×

サブスクリプションと比べて失うものと、擬似的に再現する方法

ここでの「サブスクリプション」は、claude.ai の Pro / Max / Team / Enterprise の契約でログインして Claude Code を使う形です。Bedrock に替えると、手元で動く部分(CLI・VS Code 拡張・サブエージェント・フック・スキル・MCP・CLAUDE.md・プラグイン)はそのまま使えますが、Anthropic のサーバーや claude.ai のアカウントに頼る機能が失われます。再現方法は「公式の代替」「構成案」「代替なし」に分けました。構成案は公式文書にない組み合わせなので、使う前に自分の環境で動作と費用を確かめてください。

公式の代替構成案(公式文書にはない提案)代替なし

調べる

検索は失われ、取得は残ります。知識が浅い人ほど影響が大きい点は、下の「知識がない人が使うとき」のとおりです。

Web 検索(WebSearch)

サブスクリプションでは
Claude が自分で検索し、出典の URL つきで答える
Bedrock では
使えない(Anthropic のサーバーで検索するため)
  • 公式の代替URL を指定して WebFetch で取ってこさせる(公式の比較表が代替として挙げている方法)。別の案内として、Bash の curl で生のページを取る方法もある。WebFetch はホスト名だけを api.anthropic.com に送る安全確認をする(skipWebFetchPreflight で停止可)。
  • 公式の代替検索ツールを持つ MCP サーバーを追加する。Claude Code の文書は「別の検索事業者で検索するには、検索ツールを公開する MCP サーバーを追加する」と案内している(Brave Search・Tavily など)。検索語は外部の検索事業者に送られる。組織向けの Claude Desktop on 3P には同梱の websearch サーバーがあり、Bedrock を含むどの推論先でも managedMcpServers で配れる(Brave・Tavily・Exa・自作)。

    AWS 側の設定: AWS のリソースは不要。社内文書の検索なら、Bedrock Knowledge Bases の検索(Retrieve)を呼ぶ MCP サーバーを自作して社内版の『検索』にする構成も考えられる(これは構成案)。

Chrome 拡張(Claude in Chrome)

サブスクリプションでは
手元の Chrome を Claude が操作して、ログイン済みのページを見たり操作したりする
Bedrock では
使えない(claude.ai の契約が前提)
  • 構成案ブラウザ操作の MCP サーバー(Playwright MCP など)を設定し、Claude にブラウザを持たせる。既定では専用のプロファイルで動くが、拡張機能モードや CDP 接続を使えば手元の Chrome のログイン状態も使える。
  • 公式の代替組織向けの Claude Desktop on 3P では、Enterprise の管理コンソールで管理している組織なら Claude in Chrome(手元の Chrome / Edge をログイン状態ごと使う)が使える。MDM やブートストラップで配る場合も、builtinBrowserEnabled で内蔵ブラウザ(Browser ペイン)を有効にできる(ログイン情報は普段のブラウザとは別に保存)。

手元の外から動かす

スマホやクラウドから操作する仕組みは、すべて claude.ai のアカウントに乗っています。

リモートコントロール

サブスクリプションでは
手元で動いているセッションを、スマホやブラウザから続ける。通知も届く
Bedrock では
使えない(API キーでも不可。claude.ai の契約が前提)
  • 構成案開発用のマシンで tmux の中で claude を動かし、SSH(または VS Code の Remote - SSH)で外からつなぐ。スマホからは SSH クライアントで同じ tmux に入る。Claude の画面やプッシュ通知は再現できず、見えるのは端末の画面だけ。

    AWS 側の設定: EC2 か ECS のコンテナを開発用マシンにし、SSM Session Manager でつなぐとポートを開けずに済む(接続側に Session Manager plugin と ProxyCommand の設定が要るので、一般的なスマホの SSH アプリからはそのまま入れない。スマホからは AWS コンソールの Session Manager か VPN などの別経路になる)。Bedrock の呼び出しはインスタンスの IAM ロールで行い、鍵を配らない。

  • 代替なしスマホの Claude アプリから同じ会話を見る・続けるという体験そのものは再現できない。

クラウドセッション・スマホの Claude Code・Slack 連携

サブスクリプションでは
手元のパソコンを使わず、Anthropic のクラウドでリポジトリを操作させる
Bedrock では
使えない(claude.ai の契約が前提)
  • 公式の代替GitHub Actions(Bedrock 版の公式手順あり)か GitLab CI/CD で動かす。PR やコメントの @claude をきっかけに、CI の中で Claude Code が動く。

    AWS 側の設定: GitHub の OIDC を信頼する IAM ロールを作り、Claude Code の IAM ポリシー(bedrock:InvokeModel など)を付ける。ワークフローでは aws-actions/configure-aws-credentials でロールを引き受け、claude-code-action の with: に use_bedrock: "true" と claude_args: '--model <推論プロファイル ID>'(us. や jp.)を渡す。

  • 構成案自前の実行基盤で claude -p(非対話モード)を動かす。--bare を付けるとフック・スキル・プラグイン・MCP・CLAUDE.md を読まず、ツールは Bash と読み書きだけになる(リポジトリの CLAUDE.md の約束事も効かない点に注意。Bedrock の資格情報は通常どおり読む)。

    AWS 側の設定: CodeBuild か ECS Fargate のタスクで claude -p を実行し、タスクロールで Bedrock を呼ぶ。Slack から起動したいなら、Slack のスラッシュコマンド → API Gateway → Lambda → タスク起動、の形になる(自作)。

/schedule(ルーティン: クラウドで定期実行)

サブスクリプションでは
手元のパソコンを閉じていても、決めた時刻に Claude が作業する
Bedrock では
使えない(Pro 以上の契約が前提)
  • 公式の代替/loop。ただしセッションを開いている間だけ動く(手元のパソコンを閉じると止まる)。
  • 公式の代替Claude Desktop on 3P を使える組織なら、デスクトップの予定タスク。パソコンが起きている間だけ動く。
  • 構成案決めた時刻に claude -p を動かす基盤を AWS に作る。手元のパソコンが要らない点では、ルーティンに一番近い。

    AWS 側の設定: EventBridge Scheduler(cron)→ ECS Fargate のタスク or CodeBuild のプロジェクトを起動 → コンテナ内で claude --bare -p "..." --allowedTools ... を実行。リポジトリは CodeCommit / GitHub から clone、結果は PR・S3・SNS 通知へ。Bedrock の権限はタスクロール、鍵は Secrets Manager。

画面と入出力

claude.ai の画面そのものに依存する機能です。

デスクトップアプリ(Code タブ・並行セッション・差分レビューの画面)

サブスクリプションでは
claude.ai のアカウントでログインしてすぐ使える
Bedrock では
組織向けの Claude Desktop on 3P 構成でだけ使える
  • 公式の代替Claude Desktop on 3P。推論先を Bedrock に向け、会話は手元に保存、設定は MDM(Jamf・Intune など)やブートストラップサーバーで配る。公式は『Anthropic の製品を使える組織なら通常版のほうが簡単で新機能も早い』としている。

    AWS 側の設定: Claude apps gateway(claude gateway コマンドで動く自社ホストのゲートウェイ)を立てると、デスクトップの Code・Cowork タブ(設定すれば Chat タブも)がゲートウェイ経由で Bedrock に向く。ゲートウェイは ECS Fargate か EKS + RDS(PostgreSQL)+ Secrets Manager の構成例が公式にある。

  • 公式の代替VS Code / JetBrains の拡張は Bedrock でもそのまま使える。差分レビューや並行セッションの多くは IDE 側で代用できる、というのはこのページの見方。

Artifacts(作ったページを claude.ai で公開・共有)

サブスクリプションでは
HTML を claude.ai の URL で配り、共有・コメント・コネクタ経由の最新データ表示までできる(裏側のサーバーはなく、静的なページ)
Bedrock では
使えない(claude.ai の契約が前提)
  • 公式の代替組織向けの Claude Desktop on 3P の機能比較表では Artifacts は使える扱い(ただし利用者どうしの共有は不可)。
  • 構成案Claude に HTML を書かせ、自分で配信する。閲覧者の認証やデータ保存の仕組みは別途作る。

    AWS 側の設定: S3 + CloudFront で静的配信。社内限定なら CloudFront の署名付き URL や、ALB + Cognito の認証を前に置く。

Computer use(デスクトップ操作)・音声入力・Channels(Telegram・Discord などとの連携)

サブスクリプションでは
Claude にデスクトップを操作させる(Computer use は Pro / Max のみ)、声で指示する(claude.ai のアカウントが条件)、Telegram・Discord などから使う(Channels。claude.ai か Console の API キーが条件)
Bedrock では
使えない(Computer use と音声は claude.ai の契約が前提。Channels は Bedrock 非対応と明記)
  • 代替なしClaude Code の機能としては再現できない。音声は OS の音声入力で文字にして貼る程度。チャット連携は上の『自前の実行基盤』を Lambda などから呼ぶ自作になる。

レビューと速度

Anthropic 側の計算資源を使う機能です。

Ultrareview・Code Review(Team / Enterprise)

サブスクリプションでは
クラウドで複数エージェントがブランチや PR を深くレビューする
Bedrock では
使えない(claude.ai の契約が前提)
  • 公式の代替手元で動く /code-review(low〜max の段階あり)はスキルなので Bedrock でも使える。
  • 構成案PR ごとに自動でレビューさせるなら、上の GitHub Actions(Bedrock 版)で /code-review 相当のプロンプトを動かす。

    AWS 側の設定: GitHub Actions + OIDC の IAM ロール(上と同じ)。

Fast mode・Advisor

サブスクリプションでは
同じモデルを割増で速く出力させる / 速いモデルの作業を賢いモデルが途中で助言する
Bedrock では
使えない(Fast mode は Anthropic の API のみ。Advisor は Bedrock 非対応)
  • 代替なし同じモデルのまま速くする手段はない。Bedrock のサービス階層(Priority)も、確認したどの Claude モデルのカードでも非対応(軽いモデルや低い effort に下げるのは別の話)。
  • 公式の代替Advisor の近い手段として、公式文書は opusplan(計画は Opus、実行は Sonnet)と、model を指定したサブエージェントを挙げている。どちらも Bedrock で使える。

管理と見える化

ここは失うものより、AWS 側の仕組みに置き換わるものが多いところです。

使用量ダッシュボード・分析 API(Team / Enterprise)

サブスクリプションでは
claude.ai の管理画面で、人ごと・日ごとの利用量を見る
Bedrock では
使えない
  • 公式の代替OpenTelemetry のメトリクス(トークン数・概算コスト・モデル)は、どのログイン方法でも出せる。ただし Bedrock では利用者の情報は user.id と session.id しか入らないので、人ごとに見るには OTEL_RESOURCE_ATTRIBUTES で部署や利用者の属性を自分で付ける(apps gateway 経由なら、ゲートウェイ発行のトークンをもとに CLI が利用者の属性を付ける)。コストは概算で、claude -p の --output-format json の total_cost_usd も手元での推定値。正式な金額は AWS の請求。

    AWS 側の設定: OTLP を受ける Collector(ADOT)を立てて CloudWatch Metrics / Logs に送る。請求は Cost Explorer(多くのモデルカードでは Marketplace 経由の他社モデルとしてモデル提供元の名前で載るとあり、Fable 5.1 のカードには記載なし)。CloudTrail には呼び出しと処理リージョンが残る。

  • 公式の代替Claude apps gateway を立てると、利用者・グループごとの支出上限と、OTLP の送り先を集中管理できる。

サーバー管理設定(claude.ai の管理コンソールから設定を配る)

サブスクリプションでは
管理者が許可・禁止やモデルの一覧を、全員の Claude Code に配る
Bedrock では
使えない
  • 公式の代替管理設定ファイル(managed settings)を MDM やディスクに配る。Claude apps gateway なら IdP のグループごとに設定を配れる。モデルの制限は availableModels + enforceAvailableModels。

    AWS 側の設定: IAM / SCP で呼べる推論プロファイルを制限すると、設定の漏れがあっても権限側で止まる(上の『国内で完結させる』を参照)。

ログインとオフボーディング

サブスクリプションでは
claude.ai のアカウントでログイン。退職時はアカウントを止める
Bedrock では
AWS の資格情報(IAM ロール・SSO・Bedrock の API キー)
  • 公式の代替IAM Identity Center(AWS SSO)のプロファイルで aws sso login してから claude を起動する。Claude apps gateway なら社内の IdP でサインインし、鍵を配らずに済む。

    AWS 側の設定: IAM Identity Center + 権限セット。長期の Bedrock API キーは AWS も試用向けとしているので、配らない。この案件の決定は「客先が IAM ユーザーのアクセスキーを払い出す」なので、鍵のローテーションと無効化の手順で補う(活動別の構成ページの前提)。

claude.ai のコネクタと、同期されるスキル・プラグイン

サブスクリプションでは
claude.ai で接続した Google Drive・Slack などのコネクタが Claude Code にも出てくる
Bedrock では
使えない(claude.ai でログインしたときだけ読み込まれる)
  • 公式の代替同じ機能の MCP サーバー(提供元が公開しているもの)を設定ファイル(.mcp.json など)で自分で設定する。プラグインとマーケットプレイスはどのログイン方法でも使える。全員に配るには管理設定の managedMcpServers(CLI にも Desktop on 3P にもある)。

擬似的に再現したときの全体像(構成案)

  • 手元の作業: CLI + VS Code 拡張 + 自分で設定した MCP(検索・ブラウザ)。認証はこの案件では客先が IAM で払い出すアクセスキー(Identity Center の SSO が使えるならそちら)。
  • 外から・無人で: GitHub Actions(Bedrock 版)と、EventBridge Scheduler → ECS Fargate / CodeBuild で claude -p。
  • 画面: 組織なら Claude Desktop on 3P + Claude apps gateway。個人なら IDE 拡張で代用。
  • 管理: apps gateway(SSO・モデル制限・支出上限・OTLP)、IAM / SCP、CloudWatch・CloudTrail・Cost Explorer。
  • 再現できないもの: スマホの Claude アプリからの操作とプッシュ通知、Artifacts の共有、Claude Code の Computer use 機能、Fast mode、Advisor そのもの。

運用の段取り: 最小プランと全部入りプラン、役割分担

実際に運用するときに決めるのは2つです。(1) アーキテクチャをどうするか(ツールと運用方針を含む)、(2) その構築と管理を、AWS アカウントを持つ会社(以下「客先」)と開発会社(以下「自社」)でどう切り分けて進めるか。ここでは、最小プランと全部入りプランの2つを並べ、その差分を一覧にします。全部入りから何を削るか、最小から何を足すか、で自分たちの形を選べるようにするためです。プランはこのページで確かめた部品の組み合わせ(構成案)で、公式文書にある手順はその旨を、無い組み合わせは「構成案」と書いています。Slack 連携・ログの自動検知・自動改修は、Bedrock では Anthropic 側の Slack 連携やルーティンが使えないため、AWS の部品で組みます。

最小プラン: まず安全に使い始める

数名〜十数名の開発者が、国内処理の Bedrock で Claude Code を手元から使う。払い出す鍵の権限を jp. の推論だけに絞り、費用と処理場所が後から確かめられる状態にする。

開発者は客先が IAM で払い出したアクセスキー(IAM ユーザーの鍵。Identity Center の SSO は使わない)で、CLI / IDE 拡張から bedrock-runtime(jp.)を呼ぶ。管理設定ファイルと CLAUDE.md、任意の検索 MCP を配る。IAM / SCP で jp. だけ許可し global を拒否。PR は人がレビューしてマージ。CloudTrail と Cost Explorer / Budgets を客先の担当が週1回確認する。
最小プランの構成。タップで原寸。draw.io の元ファイル: cob-ops-min.drawio / draw.io で開く

アーキテクチャ

  • 開発者は客先が IAM で払い出した認証情報(IAM ユーザーのアクセスキー。~/.aws/credentials の profile)で、CLI / IDE 拡張から bedrock-runtime(jp.)を呼ぶ(Identity Center の SSO は使わない。長期の鍵なのでローテーションと無効化の手順を持つ)
  • モデルは jp. の Opus 5.5 / Sonnet 4.6 に固定(Haiku 4.5 も jp. で使えるが、AWS のカードの提供終了の目安日が 2026-10-16 で目前なので、提供状況を確かめてから)。4つの別名の環境変数と availableModels、IAM / SCP で global を Deny の3段で止める
  • 設定は管理設定ファイル(managed-settings.json)を各端末に配る。CLAUDE.md に出典と入れないデータの約束を書く
  • 調べものは URL 指定の WebFetch。検索が要る人には検索 MCP サーバー(Brave など)を設定で配る(検索語が外部に出ることを合意)
  • レビューは手元の /code-review。PR のマージは人が行う
  • 見える化は CloudTrail(呼び出しと処理リージョン)と Cost Explorer / Budgets の通知

ツール

AWS
  • Amazon Bedrock(bedrock-runtime、jp. の推論プロファイル)
  • IAM(ユーザー・アクセスキーの払い出し)
  • IAM ポリシー / SCP
  • CloudTrail
  • Cost Explorer・Budgets(通知のみ)
Claude Code 側
  • Claude Code CLI / VS Code 拡張
  • 管理設定ファイル(availableModels・permissions・env)
  • CLAUDE.md
  • /code-review・/loop
  • 検索 MCP サーバー(任意)
そのほか
  • GitHub または CodeCommit(人が PR をレビュー・マージ)
  • 検索事業者(Brave・Tavily など。任意)

運用方針

  • 週1回: CloudTrail の inferenceRegion に ap-northeast-1 / ap-northeast-3 以外が無いか、Cost Explorer の金額、Budgets の通知
  • 月1回: AWS のモデルカードで jp. の対応モデルの変化(Sonnet 5.5 に jp. が来たら切り替え検討)と EOL の目安日
  • ルール: 事実には取得した URL を付ける / 記憶からの回答は明記 / 個人情報・顧客データ・本番の鍵は入れない / 本番には触らない
  • 事故時: 誤送信の疑い → CloudTrail で該当リクエストと処理リージョンを確認 → 客先の規程に沿って報告(Bedrock は既定で入出力を保存しない)

向いている組織: 検証できるエンジニア中心。無人実行や Slack 連携は不要。まず使い方と費用感をつかみたい段階。

全部入りプラン: チーム全体で、無人実行と自動改修まで

エンジニア以外も含めて配り、PR の自動レビュー、定期処理、ログの異常検知からの自動修正 PR、Slack からの依頼と通知まで、人の承認を要所に置いたうえで回す。

開発者と非エンジニアは社内 IdP で Claude apps gateway にサインインし、CLI・IDE・Desktop on 3P から使う。ゲートウェイがグループ別の設定を配り(支出上限は Admin API で登録)、bedrock-runtime(jp.)+ Guardrails に送る。メトリクスはコレクター経由で CloudWatch へ。PR の自動レビュー、EventBridge Scheduler の定期処理、CloudWatch Logs の異常検知 → アラーム → EventBridge → CodeBuild の claude -p による修正 PR(人が承認してマージ)、SNS → Amazon Q Developer in chat applications による Slack 通知、Slack からの依頼(API Gateway → Lambda → StartBuild、構成案)。見える化は CloudWatch ダッシュボード・CloudTrail・Cost Explorer・Budgets のアクション(Guardrails の介入の記録先は要確認)。
全部入りプランの構成。タップで原寸。draw.io の元ファイル: cob-ops-max.drawio / draw.io で開く

アーキテクチャ

  • 最小プランの全部に加えて:
  • Claude apps gateway(ECS Fargate + RDS + Secrets Manager、内部 ALB の裏)を立て、開発者は社内 IdP(OIDC)でサインイン。使えるモデル・許可ルール・MCP は IdP のグループごとのポリシー(gateway.yaml の managed.policies)で配り、支出上限は admin: ブロックを有効にして Admin API で利用者・グループ・組織の単位に登録する(超えると 429 で止まる)。jp. のモデルを使うので gateway.yaml に models: ブロック(上流ごとの jp. の ID)が要る。メトリクスは OTLP で OpenTelemetry コレクター(ADOT = AWS 版のコレクターなど)に中継し、そこから CloudWatch へ
  • Claude Desktop on 3P を MDM で配り、推論先をゲートウェイに向ける(Cowork・Code。Chat は設定で有効化)。Web 検索は同梱の websearch サーバー
  • PR の自動レビュー: GitHub Actions(Bedrock 版、OIDC で IAM ロール)か CodeBuild(Webhook / CodeCommit のイベント)で claude -p。結果は PR のコメント。リポジトリの CLAUDE.md や設定を効かせたいレビュー・修正では --bare を付けず(その代わりリポジトリの設定が CI でも動くことを理解しておく)、定期処理のように毎回同じ条件で動かしたいものは --bare を付ける
  • 定期処理: EventBridge Scheduler → CodeBuild / ECS Fargate で claude --bare -p(依存関係の点検、週次の棚卸しなど)
  • ログの自動検知 → 自動改修: CloudWatch Logs のメトリクスフィルタ / ログ異常検知 → アラーム → EventBridge(Alarm State Change)→ CodeBuild で claude -p「このエラーの原因を調べ、修正の PR を作る」→ PR は人が承認(ブランチ保護 / CodeCommit の承認ルール)。本番への適用は人の手で
  • Slack: 通知は CloudWatch アラーム → SNS → Amazon Q Developer in chat applications(旧 AWS Chatbot)で Slack へ。Slack からの依頼(スラッシュコマンド)は API Gateway → Lambda → CodeBuild の StartBuild(構成案)。Amazon Q Developer in chat applications には Slack から AWS CLI のコマンドやカスタムアクション(Lambda)を実行する機能もあるので、自作を減らす選択肢になる(Anthropic の Slack 連携や Claude Tag は Bedrock では使えない)
  • 入出力の内容フィルタに Bedrock Guardrails(bedrock-runtime 経由。jp. の推論プロファイルで使うなら Guardrail 側で Cross-Region を有効にする。ゲートウェイなら bedrock 上流の guardrail 設定で Bedrock へのリクエストに適用。ただし入力タグに依存するフィルタはゲートウェイ経由では動かず、ゲートウェイ側は v2.1.281 以降)。費用は二重にする: 即時に効くのはゲートウェイの支出上限(超えると 429)、Budgets のアクション(しきい値で IAM ポリシーを当てる。対象はゲートウェイのタスクロールや、この案件の IAM ユーザー / グループ。Identity Center の利用者ならそのロールは保護されていて IAM 側から直接は変更できないので、アカウント単位の SCP になる。自動か手動承認か選べる)は Budgets の更新が1日最大3回なので遅れて効く

ツール

AWS
  • 最小プランの全部
  • ECS Fargate・RDS・Secrets Manager・内部 ALB(ゲートウェイ)
  • CodeBuild(+ CodeConnections / CodeCommit)または GitHub Actions 用の OIDC + IAM ロール
  • EventBridge Scheduler・EventBridge ルール
  • CloudWatch Logs(メトリクスフィルタ・ログ異常検知)・アラーム・ダッシュボード
  • SNS・Amazon Q Developer in chat applications(Slack 通知)
  • API Gateway・Lambda(Slack からの依頼)
  • Bedrock Guardrails
  • Budgets のアクション
  • (任意)GuardDuty・AWS Config
Claude Code 側
  • Claude apps gateway(claude gateway)
  • Claude Desktop on 3P + 同梱 websearch
  • claude -p(--bare、--allowedTools、--output-format json)
  • 管理設定(ゲートウェイの IdP グループごと)
  • OpenTelemetry のメトリクス
そのほか
  • 社内 IdP(Entra ID・Okta など)
  • MDM(Intune・Jamf など)
  • Slack(アプリの登録)
  • GitHub(ブランチ保護)または CodeCommit(承認ルール)
  • 検索事業者

運用方針

  • 最小プランの確認項目に加えて:
  • 毎日: CloudWatch ダッシュボード(トークン・概算コスト)、自動修正 PR の件数と承認状況、Slack の通知チャンネル。失敗率と拒否(refusal)の件数はメトリクスには無く logs のイベント(api_error・api_refusal)が要るので、ゲートウェイの転送先で logs を有効にする(Bash のコマンドなどが含まれうるので合意のうえで)
  • 自動改修の線引き: Claude が作るのは PR まで。マージと本番適用は必ず人。自動修正 PR には「自動生成・根拠のログ・変更範囲」を定型で書かせ、ブランチ保護 / 承認ルールで人の承認を必須にする
  • ループと暴走の防止: ビルド自身の投稿や push で再起動しない判定、1アラームあたりの起動回数の上限、ゲートウェイと Budgets の支出上限
  • Guardrails の介入の記録(どこにどう残るかは Bedrock 側の文書で要確認)と、拒否(refusal)の件数(logs の api_refusal)を月次で見直す。グループごとの許可範囲(Auto mode = 安全な操作を確認なしで通す動き方・Bash・WebFetch のドメイン)も月次で棚卸し
  • 四半期: IdP のグループと権限の棚卸し、ゲートウェイと Claude Code の版上げ、モデルカードの再確認

向いている組織: 数十名以上、非エンジニアも使う、CI と運用の自動化まで任せたい組織。ゲートウェイ・MDM・IdP の運用ができる体制が前提。

差分表: 全部入りから何を削るか、最小に何を足すか

難しさは、このページの見方での目安(小: 設定中心 / 中: サービスの構築が要る / 大: 設計と運用ルールの両方が要る)。

認証と鍵の管理

難しさ: 中
最小
IAM ユーザーのアクセスキー(客先が払い出す。この案件の決定。Identity Center の SSO が使えるなら短期の認証情報に)
全部入り
Claude apps gateway + 社内 IdP(OIDC)。開発者は API キーも AWS の資格情報も持たない(持つのはゲートウェイのセッショントークンだけ)
足す部品
ECS Fargate・RDS・Secrets Manager・内部 ALB・IdP のアプリ登録

ゲートウェイは公式の AWS 構成例あり。経由すると WebSearch・1時間キャッシュ・リモートコントロールは不可

設定の配布と権限

難しさ: 中
最小
管理設定ファイルを MDM や手で配る
全部入り
ゲートウェイが IdP グループごとに配る。支出上限は別途 Admin API で登録
足す部品
gateway.yaml の managed.policies(設定)、admin: ブロックと Admin API(支出上限)、models: ブロック(jp. の ID)

画面

難しさ: 中
最小
CLI と IDE 拡張
全部入り
Claude Desktop on 3P(Chat・Cowork・Code)
足す部品
MDM、ブートストラップ、同梱 websearch の API キー

通常版と違い、利用者どうしの共有・スマホ・音声は不可

調べもの

難しさ: 中
最小
URL 指定の WebFetch(+ 任意で検索 MCP)
全部入り
検索 MCP を全員に配る + Knowledge Bases で社内文書(構成案)
足す部品
managedMcpServers、Knowledge Bases + MCP サーバー(自作)

検索語が外部に出る合意が要る

PR のレビュー

難しさ: 小
最小
手元の /code-review、人がマージ
全部入り
PR ごとに自動レビュー(GitHub Actions か CodeBuild)
足す部品
OIDC + IAM ロール / CodeBuild の Webhook

GitHub Actions は公式手順あり。CodeBuild は構成案

定期処理

難しさ: 小
最小
/loop(開いている間だけ)
全部入り
EventBridge Scheduler → CodeBuild / Fargate で無人実行
足す部品
Scheduler、CodeBuild か Fargate、タスクロール

ログの自動検知 → 自動改修

難しさ: 大
最小
なし(人が CloudWatch を見る)
全部入り
メトリクスフィルタ / ログ異常検知 → アラーム → EventBridge → claude -p が修正 PR → 人が承認
足す部品
CloudWatch Logs・アラーム・EventBridge ルール・CodeBuild・ブランチ保護 / 承認ルール

構成案。PR までが自動、マージは人。ループ防止と起動回数の上限が必須

Slack

難しさ: 中
最小
なし
全部入り
通知: アラーム → SNS → Amazon Q Developer in chat applications。依頼: Slack → API Gateway → Lambda → StartBuild
足す部品
SNS、Q Developer の設定、Slack アプリ、API Gateway、Lambda

通知は AWS の機能。依頼の経路は構成案。Anthropic の Slack 連携 / Claude Tag は Bedrock で不可

内容のフィルタ

難しさ: 小
最小
CLAUDE.md と permissions の deny
全部入り
+ Bedrock Guardrails(入出力の検査)
足す部品
Guardrail の作成・公開。直接呼ぶなら Claude Code のヘッダー、ゲートウェイなら gateway.yaml の bedrock 上流の guardrail 設定(bedrock:ApplyGuardrail の権限)

bedrock-runtime 経由のみ(Mantle 上流には設定できない)。ゲートウェイでは全 Bedrock 上流に設定するか全く設定しないかのどちらかで、クライアント側から guardrailConfig を送ると 400 になる。入力タグに依存するフィルタはゲートウェイ経由では動かない。ゲートウェイ側は v2.1.281 以降

費用の統制

難しさ: 小
最小
Budgets の通知
全部入り
ゲートウェイの利用者・グループ別上限(即時、超えると 429)+ Budgets のアクション(しきい値で IAM ポリシー / SCP を当てる。更新は1日最大3回なので遅れて効く)
足す部品
ゲートウェイの admin: と Admin API、Budgets アクション(タスクロールや IAM ユーザー / グループには IAM ポリシー、Identity Center の利用者にはアカウント単位の SCP)

ゲートウェイの上限は既定でフェイルオープン(台帳の DB に届かないときは止めずに通す)で、金額も推定値。請求の確定値ではない

見える化

難しさ: 中
最小
CloudTrail・Cost Explorer
全部入り
+ OTEL → コレクター(ADOT など)→ CloudWatch ダッシュボード(利用者の属性は、ゲートウェイが発行したトークンをもとに CLI が付ける)、アラーム
足す部品
ゲートウェイの telemetry.forward_to → ADOT などのコレクター → CloudWatch、ダッシュボード

ゲートウェイ自身は OTLP の中継だけで、保存や集計はしない。どこに届くかはコレクターの設定しだい

役割分担と段取り: 客先(AWS アカウントを持つ会社)と自社(開発会社)

切り分けの原則は3つです。(1) AWS アカウント・データ・請求に関わること(IAM、SCP、Guardrails、CloudTrail、Budgets、モデルへのアクセス)は客先が最終責任を持つ。(2) Claude Code の使い方に関わること(CLAUDE.md、管理設定の中身、スキル、MCP、buildspec、プロンプト)は自社が作る。(3) 両方にまたがること(ゲートウェイ、CI、自動改修、Slack)は共同で設計し、客先のアカウントに自社が構築し、客先が承認して引き継ぐ。段階ごとの主担当を下に示します。「客先」は AWS アカウントを持つ会社、「自社」は開発会社です。

0. 決める(1〜2週間)

入れてよいデータの線引き、処理場所(jp. 限定か)、使うモデル

主担当: 客先

契約と規程で決める。このページのチェックリスト 1・2 を使う

最小か全部入りか、差分表のどれを足すか

主担当: 共同

上の差分表を一緒に見て、第1段階と第2段階に分ける

利用目的の提出(FTU = First Time Use フォーム。商用リージョンではモデルへのアクセスは既定で有効で、残る手続きはこれ)、Fable 系なら Data Retention(データ保持モード)の設定

主担当: 客先

AWS アカウントの管理者の作業

1. 最小プランの構築(1〜2週間)

IAM ユーザー / グループとアクセスキーの払い出し、jp. の推論プロファイルに限定した IAM ポリシー、global の Deny(SCP)、鍵のローテーションと無効化の手順

主担当: 客先

自社がポリシーの案と鍵の運用手順(2本持ちで入れ替え、漏えい時は UpdateAccessKey で Inactive)を書き、客先が内容を確認して適用・払い出す

管理設定ファイル・CLAUDE.md・検索 MCP の設定の作成

主担当: 自社

雛形はこのページの「客先と一緒に決める」の節

端末への配布(MDM か手順書)

主担当: 客先

端末管理は客先側。配布物は自社が用意

動作確認: get-inference-profile で行き先、CloudTrail で inferenceRegion、Budgets の通知

主担当: 共同

確認結果を記録して引き継ぎ資料にする

2. 試用と運用ルールの定着(2〜4週間)

検証できる人数名で試用。出典ルール・入れないデータのルールの運用

主担当: 自社

問題事例を集めて CLAUDE.md と管理設定を更新

週1回の確認(CloudTrail・費用)の担当決めと実施

主担当: 客先

確認項目は最小プランの運用方針

全部入りの第1段階を決める(多くは PR の自動レビューと Slack 通知から)

主担当: 共同

3. 全部入りへの拡張(段階的に)

Claude apps gateway の構築(ECS Fargate・RDS・Secrets Manager・内部 ALB)と IdP の登録

主担当: 共同

インフラは自社が IaC(設定をコードで書いて再現できるようにしたもの)で構築、IdP とネットワークは客先が設定、客先が承認して本番へ

PR の自動レビュー(GitHub Actions か CodeBuild)の buildspec(CodeBuild の手順書)/ ワークフローとプロンプト

主担当: 自社

IAM ロールと OIDC / CodeConnections(AWS と GitHub をつなぐ接続)は客先が作成

Desktop on 3P の MDM 配布(またはブートストラップ = 起動時に設定を取りに行く仕組み)、websearch の API キー

主担当: 客先

設定内容は自社が用意

ログの自動検知 → 自動改修の経路(メトリクスフィルタ・アラーム・EventBridge の Alarm State Change = アラームの状態が変わったというイベント・CodeBuild)と、ブランチ保護 / 承認ルール

主担当: 共同

検知の条件と修正の範囲は共同で決め、承認ルールは客先が設定

Slack 通知(SNS → Q Developer)と Slack からの依頼(API Gateway → Lambda)

主担当: 共同

Slack アプリの登録は客先のワークスペース管理者。Lambda の中身は自社

Guardrails の作成・公開、Budgets のアクション

主担当: 客先

遮断の方針は共同で決める

4. 定常運用

毎日・週次・月次の確認(ダッシュボード・自動修正 PR・費用・Guardrails の介入の記録)

主担当: 客先

自社は結果を受けてプロンプトと設定を改善

ゲートウェイ・Claude Code・buildspec の版上げ、モデルカードの再確認

主担当: 自社

変更は客先の承認を経て適用

四半期の棚卸し(IdP のグループ・権限・許可範囲・費用の上限)

主担当: 共同

事故対応(誤送信・暴走・費用超過)

主担当: 客先

一次対応と報告は客先の規程に沿う。原因調査と再発防止の設定変更は自社が支援

この節の出典(部品ごとの AWS・Claude Code の文書)

開発運用で用意するスキル・サブエージェント・フック(サンプル。議論の土台)

ここまでの運用の段取りで「手元のフックとスキル」と書いてきた中身を、サンプルとして揃えました。3つは別物です: スキルは「手順書」(Claude が読んで従う文章。/名前 で呼べる)、サブエージェントは「別の担当者」(道具とモデルを絞った別の Claude を呼び出す)、フックは「自動で走るスクリプト」(決まったタイミングで Claude の外で動き、止めたり情報を足したりする)。担当者は、開発チームの役割に合わせて9つ(テックリード・実装・レビュー・セキュリティ監査・性能評価・アーキテクト・QA・SRE・データベース)と、言語・フレームワーク別の監査役4つ(Angular・Spring・TypeScript・Java)を用意し、それぞれに手順書(スキル)を1本ずつ対にしました。言語別の監査スキルは「まず版を確かめる」から始まり、2026-10-07 時点の公式の版と変更点(Angular v22 / Boot 4.1 / TypeScript 7.0 / JDK 27・LTS は 17 / 21 / 25 が現行の主な対象)を書き込んであります。そのまま使うものではなく、チームで「何を機械に守らせ、何を人の判断に残すか」を話すための土台です。置き場所はリポジトリの .claude/ 配下(開発会社がコミットして配る)。組織全体に強制したいもの(permissions.deny・allowManagedHooksOnly・env)は AWS アカウント保持会社の管理設定に置く、という切り分けは運用の段取りの節と同じです。各ファイルの書式(フックの JSON の形・終了コードの意味・SKILL.md の frontmatter)は、調査日時点の Claude Code の公式リファレンスで確かめ、フックのスクリプトは手元で入出力を試験しました。

ファイル一式は /templates/claude-ops/ 配下に置いてあります(README.md に置き場所と前提)。下の各カードの「ファイルを見る」で中身を開けます。

置き場所と持ち主

.claude/settings.json

フックの定義(どのイベントで、どのスクリプトを走らせるか)

持ち主: 開発会社。リポジトリにコミットして配る

ユーザー・プロジェクト・管理の各階層のフックは「置き換え」ではなく「足し算」で全部動く。管理設定で allowManagedHooksOnly を立てると、ここに書いたフックは動かなくなる(組織のフックだけになる)

.claude/hooks/*.sh

フックのスクリプト本体。標準入力の JSON を jq で読み、終了コードか JSON で結果を返す

持ち主: 開発会社

終了コード 2 だけが「止める」。1 は止まらず警告扱い(公式の注意)。JSON で返すなら終了コード 0 にする

.claude/skills/<name>/SKILL.md

スキル(手順書。役割ごとの9本 + 言語・フレームワーク別の監査 4本 + 共通の5本)。/名前 で呼ぶか、説明文を見て Claude が自分で読む、またはサブエージェントに最初から読み込ませる

持ち主: 開発会社と客先の運用担当で中身を合わせる

disable-model-invocation: true のものは人が /名前 で呼んだときだけ動く(副作用のある手順向け)。user-invocable: false は人のメニューに出ず Claude だけが読む(背景知識向け)

.claude/agents/<name>.md

サブエージェント(役割ごとの担当者 9本 + 言語・フレームワーク別の監査役 4本)

持ち主: 開発会社

tools で道具を絞り、skills で役割の手順書を最初から読み込ませる。model: sonnet は、管理設定の env で ANTHROPIC_DEFAULT_SONNET_MODEL を jp. のモデルに固定していればそこに解決される(未設定だと組み込みの既定の Sonnet 4.5 になる。公式)

管理設定(managed-settings.json)

permissions.deny・availableModels・env・allowManagedHooksOnly・allowManagedPermissionRulesOnly

持ち主: AWS アカウント保持会社

フックは最善努力の仕組みなので、絶対に通したくない操作(.env の読み取り・jp. 以外のモデル)はここ(permissions)で止める。allowManagedPermissionRulesOnly が立っていると、スキルの allowed-tools も無視される(v2.1.282 以降)

共通のスキル(5本 + reviewer 用の pr-review-rules。役割ごとの残り8本と言語別の4本は次の節の各担当者に対で載せています)

/incident-triage

アラームやエラーログから原因を調べ、決まった形式(事象・時系列・原因候補・次の一手・未確認)で報告する。

誰が・いつ
当番の開発者。知識がない人でも「/incident-triage アラーム名」で同じ手順が回る
呼び方
/incident-triage [対象] [時間帯]。Claude が自分で読むことも許している

設計の選択

  • allowed-tools で aws logs / aws cloudwatch / git log・diff だけを事前許可し、それ以外は通常の確認に回す
  • 本文の「直近の変更」の節で ```! ブロックの git log を差し込み、直近の変更を自動で添える。差し込みコマンドは失敗するとスキル全体が止まるので || true を付けている(公式の勧め。ただし || true 自体が権限チェックを通るかは未検証で、allowManagedPermissionRulesOnly 下では実機で確かめる)
  • 「やらないこと」に設定変更・再起動・ロールバック・個人情報の転記を明記

議論の論点

  • 報告の形式はこれでいいか。Issue に貼る前提の長さか
  • ログ本文の転記禁止を、スキルの文章だけで守らせるか、PostToolUse のフックで機械的に伏せるか
ファイルを見る: skills/incident-triage/SKILL.md
---
name: incident-triage
description: CloudWatch のアラームやエラーログから原因を調べ、決まった形式で報告する。アラート対応・障害調査・「このエラー何?」のとき。
argument-hint: "[アラーム名またはロググループ] [時間帯 例: 2026-10-06T09:00/10:00]"
allowed-tools: Read Grep Glob Bash(aws logs describe-*) Bash(aws logs start-query *) Bash(aws logs get-query-results *) Bash(aws logs filter-log-events *) Bash(aws cloudwatch get-*) Bash(aws cloudwatch describe-*) Bash(git log *) Bash(git diff *)
---

# 障害の一次調査

対象: $ARGUMENTS

## 直近の変更(自動で差し込み)
```!
git log --oneline -n 15 || true
```

## 手順
1. **事象を一文で言う**: 何が・いつから・どの範囲で起きているか。わからなければ「未確認」と書く。
2. **ログを読む**: `aws logs start-query` と `get-query-results` で、指定の時間帯のエラーを集計する(例: `fields @timestamp, @message | filter @message like /ERROR|Exception/ | sort @timestamp desc | limit 50`)。リージョンは ap-northeast-1 のまま。
3. **メトリクスを見る**: `aws cloudwatch get-metric-data` で、エラー率・レイテンシ・5xx を同じ時間帯で取る。
4. **変更と突き合わせる**: 上の直近コミットと、事象の開始時刻を並べる。
5. **原因の候補を3つまで**挙げ、それぞれ「裏付けになった事実」と「否定できる事実」を書く。推測は推測と書く。

## 報告の形式(この順で)
- 事象 / 影響範囲 / 時系列(UTC と JST を併記)
- 原因の候補(確からしさ順。裏付けの引用つき)
- 次の一手(人がやること・Claude が続けてできること)
- 未確認のこと

## やらないこと
- 設定やコードの変更、再起動、ロールバック。提案までにとどめる。
- 個人情報が含まれるログ本文の転記。ID や件数に置き換える。

/daily-health

毎朝の点検。前日のエラー率・レイテンシ・ログ異常・カナリア・アラーム履歴を前日比で30行以内に。

誰が・いつ
無人実行(EventBridge Scheduler → CodeBuild / ECS の claude -p、サブスク版ならルーティン)
呼び方
claude -p "/daily-health"(-p のプロンプトに /名前 を書けば展開される。公式)。disable-model-invocation: true なので Claude が勝手に始めることはない

設計の選択

  • 質問をしない・取れなければ「取得できず」と書いて進む、を明記(無人なので答える人がいない)
  • しきい値の変更やアラームの作成・削除を「やらないこと」に

議論の論点

  • セッション内のスケジュール(/loop や予定タスク)は disable-model-invocation: true のスキルを実行せず平文として渡す(公式)。ルーティンで同じ扱いかは未確認なので、サブスク版で使うなら disable-model-invocation を外すか、本文をルーティンのプロンプトに直接書く
  • どの指標を見るか(5つは例)。SLO を持っているならそれに寄せる
  • 報告先は Issue か Slack か。Bedrock 版は Slack へは Q Developer in chat applications か自前の Webhook(構成案)
ファイルを見る: skills/daily-health/SKILL.md
---
name: daily-health
description: 毎朝の点検。前日のエラー率・レイテンシ・ログの異常・カナリアの状態を CloudWatch から読み、前日比で報告する。
disable-model-invocation: true
allowed-tools: Read Bash(aws cloudwatch get-*) Bash(aws cloudwatch describe-*) Bash(aws cloudwatch list-*) Bash(aws logs describe-*) Bash(aws logs list-*) Bash(aws logs start-query *) Bash(aws logs get-query-results *) Bash(aws synthetics get-*) Bash(aws synthetics describe-*)
---

# 毎朝の点検(無人実行を想定)

このスキルは `claude -p "/daily-health"` でスケジュール実行される前提。質問はせず、取れなかった項目は「取得できず」と書いて先に進む。

## 見るもの(前日 00:00〜24:00 JST と、その前日を比較)
1. **エラー**: `aws cloudwatch get-metric-data` で 5xx 件数とエラー率。
2. **遅さ**: p50 / p95 / p99 レイテンシ。
3. **ログの異常**: `aws logs list-anomalies` の新規分。
4. **カナリア**: `aws synthetics get-canary-runs` の失敗。
5. **アラーム**: `aws cloudwatch describe-alarm-history` で前日に ALARM になったもの。

## 報告の形式(Markdown。そのまま Issue に貼れる長さ、30行以内)
- 結論を1行(いつも通り / 要確認 / 要対応)
- 前日比で悪化した項目だけ、数値と時間帯つきで
- 新規のログ異常(あれば先頭の1行だけ引用。個人情報は伏せる)
- 人に見てほしいことを箇条書きで3つまで

## やらないこと
- しきい値の変更、アラームの作成・削除、再起動。

/pr-review-rules

チームのレビュー観点(秘密情報・国内処理・戻せる設計・テスト・運用影響)で差分を点検し、[高/中/低] の1行形式で返す。

誰が・いつ
開発者が手元で。CI(Code シリーズ / GitHub Actions)の claude -p。reviewer サブエージェントに preload
呼び方
/pr-review-rules、または Claude が「レビューして」で自分で読む

設計の選択

  • 差分の修正はしない(指摘にとどめる)。好みの指摘を高にしない
  • 観点に「国内処理の約束(jp. 以外のリージョン・プロファイル)」を入れている

議論の論点

  • CI の buildspec は --bare で起動しているので、このスキルは自動では読み込まれない。--bare をやめる(リポジトリのフックも動く)か、--append-system-prompt-file でこのファイルを渡すか
  • Code Review(サブスク版の GitHub App)と重ねるなら、こちらは「チーム固有の観点だけ」に絞る
ファイルを見る: skills/pr-review-rules/SKILL.md
---
name: pr-review-rules
description: チームのレビュー観点で差分を点検する。PR のレビュー・マージ前の確認・「見ておいて」のとき。
allowed-tools: Read Grep Glob Bash(git diff *) Bash(git log *)
---

# チームのレビュー観点

対象の差分: !`git diff --stat HEAD~1 2>/dev/null || git diff --stat || true`

## 必ず見る観点(優先順)
1. **秘密情報と個人情報**: キー・トークン・個人を特定できる値がコードやテストデータに入っていないか。ログ出力に個人情報が乗らないか。
2. **国内処理の約束**: リージョン指定が ap-northeast-1 以外になっていないか。推論プロファイルが `jp.` 以外になっていないか。
3. **取り返しのつく設計**: マイグレーション・削除・外部送信に、戻す手順があるか。
4. **テスト**: 変更した振る舞いに対応するテストがあるか。既存テストを消していないか。
5. **運用への影響**: 環境変数・IAM・CI 定義の変更があれば、運用担当に伝える一文を添える。

## 報告の形式
各指摘を `[高/中/低] ファイル:行 — 何が問題か — どう直すか` の1行で。高が1件でもあれば冒頭に「マージ前に要対応」と書く。問題がなければ「観点1〜5は問題なし」と明記し、見られなかった範囲も書く。

## やらないこと
- 差分の修正。指摘にとどめる(修正は別の指示で)。
- 好みの指摘(命名・スタイル)を「高」にしない。

/release-check

本番適用の前に、差分の棚卸し・戻す手順・監視の準備・当日の体制を点検し、Go / No-Go のメモを作る。

誰が・いつ
リリース担当が手で
呼び方
/release-check [タグ]。disable-model-invocation: true

設計の選択

  • デプロイのコマンドは実行しない、を明記
  • 当日の体制は空欄つきで出し、埋めるのは人

議論の論点

  • Go / No-Go の判定を Claude に書かせるか、材料だけ出させて判定は人に残すか(法務・契約に関わる案件は後者)
ファイルを見る: skills/release-check/SKILL.md
---
name: release-check
description: 本番適用の前に、戻す手順・設定差分・監視の準備が揃っているかを確認し、Go / No-Go のメモを作る。
disable-model-invocation: true
argument-hint: "[リリース対象のタグまたはブランチ]"
allowed-tools: Read Grep Glob Bash(git *) Bash(aws cloudwatch describe-alarms *)
---

# 本番適用前のチェック(人が /release-check で起動する)

対象: $ARGUMENTS

## 確認すること
1. **差分の棚卸し**: 前回のリリースタグからの変更を `git log` で一覧にし、マイグレーション・環境変数・IAM・外部 API の変更を抜き出す。
2. **戻す手順**: 変更ごとに「戻せる / 戻すのに手順がいる / 戻せない」を分類する。戻せないものは理由を書く。
3. **監視の準備**: 変更に関係するアラーム(`aws cloudwatch describe-alarms`)が ALARM や INSUFFICIENT_DATA になっていないか。カナリアが本番の経路を叩いているか。
4. **当日の体制**: 誰がいつ適用し、誰が30分後に何を見るかを、空欄つきで書き出す(埋めるのは人)。

## 出力
「Go / No-Go(条件つき)」の判定と、その根拠を10行以内で。No-Go の条件は人が判断できるよう具体的に。

## やらないこと
- 本番への適用そのもの。デプロイのコマンドは実行しない。

/aws-docs-lookup

WebSearch がない環境で、AWS と Anthropic の公式ドキュメントに WebFetch で直接当たる手順。逐語を根拠にし、「記載なし」と「存在しない」と「取得できず」を区別する。

誰が・いつ
Claude 自身(user-invocable: false。人のメニューには出ない)
呼び方
仕様の確認や裏取りの話題で Claude が自分で読む

設計の選択

  • code.claude.com は末尾 .md で Markdown が取れる、AWS のモデルカードは対応の有無がアイコン、という調べ方の癖を書いている
  • 両社の文書が食い違ったら両方の逐語を並べて人に渡す

議論の論点

  • WebFetch の許可ドメイン(管理設定の allow)と、このスキルの当たり先を一致させる
  • このページの調査で実際に起きた誤りの型(探した範囲外=存在しない、取得失敗=記載なし)を防ぐための文章。他に足す型があるか
ファイルを見る: skills/aws-docs-lookup/SKILL.md
---
name: aws-docs-lookup
description: Bedrock 経由では WebSearch が使えないので、AWS と Anthropic の公式ドキュメントに直接アクセスして確かめる手順。仕様の確認・「本当にそうか」の裏取りに。
user-invocable: false
---

# 公式ドキュメントで裏取りする(WebSearch なしの環境向け)

この環境では WebSearch が使えない。知識だけで答えず、次の順で原典に当たる。

## 当たり先
- AWS: `https://docs.aws.amazon.com/bedrock/latest/userguide/` 配下。モデルの対応表は `models-supported.html` と各モデルのページ(対応の有無はアイコンで示されるので、本文の表を注意して読む)。
- Anthropic / Claude Code: `https://code.claude.com/docs/en/<ページ名>.md`(末尾に `.md` を付けると Markdown で取れる)。API は `https://platform.claude.com/docs/` 配下。
- AWS CLI のリファレンス: `https://docs.aws.amazon.com/cli/latest/reference/<サービス>/<コマンド>.html`。

## 守ること
1. WebFetch で取れたページの**逐語**を根拠にする。要約した文を根拠にしない。
2. 見つからなかったときは「このページには記載なし」と書く。「存在しない」とは書かない(探した範囲の外にあるかもしれない)。
3. 取得に失敗した(403・タイムアウト)ときは「取得できず」と書く。失敗を「記載なし」と混同しない。
4. AWS 側と Anthropic 側の文書が食い違ったら、両方の逐語を並べて人に判断を渡す。
5. 日付のある情報(リージョン・モデル・上限)は、確認した日付を添える。

/jp-only-policy

国内処理の約束(jp. 以外を使わない・Fable 5.1 を東京で使う提案をしない・CloudTrail の inferenceRegion で確かめる)。

誰が・いつ
Claude 自身(user-invocable: false)。paths で infra/・*.tf・buildspec・.claude/ を触るときに自動で読む
呼び方
対象ファイルを扱う作業で Claude が自分で読む

設計の選択

  • 設定を変える提案は、理由と「どの機能が止まるか」を添えて人に渡す、と書いている
  • IAM で拒否されたら設定を疑わず約束どおりと考える、と書いている

議論の論点

  • CLAUDE.md に書くか、paths 付きのスキルにするか。常に守らせるなら CLAUDE.md、該当ファイルを触るときだけ読ませるならスキル
ファイルを見る: skills/jp-only-policy/SKILL.md
---
name: jp-only-policy
description: 国内処理の約束。推論を日本国外に出さないための設定と確認方法。リージョン・推論プロファイル・モデル ID・CloudTrail に触れる作業で参照する。
user-invocable: false
paths:
  - "infra/**"
  - "**/*.tf"
  - "**/buildspec*.yml"
  - ".claude/**"
---

# 国内処理の約束(このプロジェクトの前提)

- 推論は **東京・大阪(jp. の推論プロファイル)** でだけ行う。`global.` `us.` `eu.` `apac.` の接頭辞は使わない。
- モデルの指定は `ANTHROPIC_DEFAULT_*_MODEL` と `availableModels` で `jp.anthropic.…` に固定されている。設定を変える提案は、変更理由と影響(どの機能が止まるか)を添えて人に渡す。
- 使えないモデル(例: Fable 5.1 は東京からは global のみ)を「使えるようにする」提案はしない。代わりに `jp.` で使える最上位モデルを使う。
- 推論がどこで処理されたかは CloudTrail の `additionalEventData.inferenceRegion` で確かめられる。疑わしいときはこれを見る手順を案内する。
- IAM では `aws:RequestedRegion` が未指定のリクエスト(global)を拒否している。拒否されたときは設定を疑わず、約束どおりに動いていると考える。

サブエージェント(9つの役割 + 言語・フレームワーク別の監査役4つ)と、対になるスキル

  • 起点はテックリード。`claude --agent tech-lead` で主担当として起動する(カスタムエージェントの本文は Claude Code の既定のシステムプロンプトを置き換える。CLAUDE.md は通常どおり読み込まれる)か、通常のセッションから Agent ツールで呼ぶ。
  • テックリードが依頼を分解し、受け入れ条件を付け、実装は implementer、点検は reviewer / security-auditor / perf-evaluator / db-reviewer / qa を並行で、設計は code-architect、リリースと監視は sre に委任する(サブエージェントは既定で3層まで入れ子にできる)。
  • 言語・フレームワーク別の監査役(angular / spring / typescript / java の reviewer)は、reviewer と同じ「編集なし」の形で、差分の言語に合わせてテックリードか人が呼ぶ。手順書は「package.json / pom.xml から版を読む → その版の公式ページを WebFetch で当たる」から始まり、版が分からない主張をしない決まり。
  • 点検役には Agent を渡していないので、点検役がさらに委任することはない。Edit / Write を外した役割も Bash は持つので、厳密な読み取り専用ではない(Bash 越しの書き込みまで禁じるなら permissions.deny)。
  • 本番への適用・マージ・DB の変更は、どの役割もやらない。提案と判定まで。最後の承認は人。

テックリードtech-lead

依頼を実装できる大きさに分解し、受け入れ条件を付け、他の役割に委任し、結果を判定して記録する。自分ではコードを書かない。

道具
Read, Grep, Glob, Bash, Agent(Edit / Write なし)
最初から読み込むスキル
tech-lead-playbook, jp-only-policy

議論の論点

  • 主担当(--agent)にするか、必要なときだけ呼ぶ補助役にするか。主担当にすると既定のシステムプロンプトが置き換わるので、本文に Claude Code の作法を自分で書く必要がある
  • 委任の深さ(3層まで)をどこまで許すか。CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=2 で2層に抑える案
  • 判断の履歴を残すなら memory: project だが、公式は memory を有効にすると Read / Write / Edit が自動で有効になると書いていて、disallowedTools との優先は明記がない。「Edit / Write なし」と両立するかは実機で確認してから
ファイルを見る: agents/tech-lead.md
---
name: tech-lead
description: 要件を分解し、誰に何を任せるかを決め、判断を記録するテックリード。大きめの依頼・設計判断・複数人に分ける作業の起点。
tools: Read, Grep, Glob, Bash, Agent
disallowedTools: Edit, Write
skills:
  - tech-lead-playbook
  - jp-only-policy
maxTurns: 60
---

あなたはこのプロジェクトのテックリードです。自分ではコードを書かず、分解・判断・委任・確認を担います。
preload された tech-lead-playbook の手順に従ってください。

- 依頼を「実装できる大きさの作業」に分け、それぞれに受け入れ条件を付けます。
- 実装は implementer に、点検は reviewer / security-auditor / perf-evaluator / db-reviewer / qa に、設計の相談は code-architect に、リリースと運用は sre に委任します(Agent ツール)。
- 委任した結果は鵜呑みにせず、受け入れ条件と突き合わせて判定します。
- 判断(採用・却下・保留)と理由は、最後に一覧で報告します。本番への適用は人が行う、という約束を守ります。
対のスキルを見る: skills/tech-lead-playbook/SKILL.md
---
name: tech-lead-playbook
description: 依頼を実装可能な作業に分解し、受け入れ条件を付け、担当エージェントに委任して結果を判定する手順。tech-lead が使う。
user-invocable: false
---

# テックリードの手順

## 1. 依頼を読む
- 何を達成すれば終わりかを一文で言い直し、不明点は仮定として明記する(人に聞けない無人実行なら仮定で進め、報告に書く)。
- 本番・個人情報・課金に触れるかを最初に判定する。触れるなら「人の承認が要る点」を先に列挙する。

## 2. 分解する
- 1つの作業 = 1人が半日で終わり、単独でテストできる大きさ。
- 各作業に「受け入れ条件」(何が確認できれば合格か)を1〜3行で付ける。
- 依存関係(先にやる・並行できる)を書く。

## 3. 委任する(Agent ツール)
| 内容 | 任せる先 |
|---|---|
| コードを書く・直す | implementer |
| 差分の点検 | reviewer |
| 外部入力・認証・秘密情報に触れる変更 | security-auditor |
| 負荷・遅さに関わる変更 | perf-evaluator |
| スキーマ・クエリ・データ移行 | db-reviewer |
| テスト観点と回帰 | qa |
| 境界・依存・技術選定 | code-architect |
| リリース・監視・障害 | sre |

- 点検系は並行して呼べる。実装は依存順に。
- 委任の文面には、作業・受け入れ条件・触ってよい範囲・やらないこと、を必ず入れる。

## 4. 判定する
- 返ってきた結果を受け入れ条件と突き合わせ、「合格 / 差し戻し(理由) / 保留(判断材料が足りない)」を付ける。
- 点検役の指摘は、根拠(ファイルと行、計測値)があるものだけ採用する。

## 5. 記録する
- 最後に、判断の一覧(何を・なぜ・誰が)と、人に決めてほしいこと、を報告する。
- 設計に関わる判断は code-architect に ADR として残させる。

実装implementer

受け入れ条件つきの作業を、小さく・テスト付きで実装して報告する。条件にない改善はしない。

道具
Read, Edit, Write, Grep, Glob, Bash(製品コードを書く担当。qa もテスト用に Edit / Write を持つ)
最初から読み込むスキル
implement-task, jp-only-policy

議論の論点

  • モデルは本体と同じ(Opus)でよいか。実装だけ Sonnet に落として費用を抑えるか
  • permissionMode を acceptEdits にして編集の確認を省くか(フックの file-guard と bash-guard が残るので、最低限の歯止めはある)
ファイルを見る: agents/implementer.md
---
name: implementer
description: 受け入れ条件つきの作業を実装し、テストを通して報告する実装担当。コードを書く・直す・テストを足すとき。
tools: Read, Edit, Write, Grep, Glob, Bash
skills:
  - implement-task
  - jp-only-policy
maxTurns: 80
---

あなたは実装担当です。preload された implement-task の手順に従ってください。
受け入れ条件を満たすことを最優先にし、条件に無い「ついでの改善」はしません(気づいたら報告に書くだけ)。
変更したら必ずテストを実行し、結果(成功・失敗・実行できなかった理由)を報告に含めます。
本番に関わるファイル(infra/prod、CI 定義、管理設定)は変更せず、必要なら提案として書きます。
対のスキルを見る: skills/implement-task/SKILL.md
---
name: implement-task
description: 受け入れ条件つきの作業を、小さく・テスト付きで実装し、報告する手順。implementer が使う。「〜を実装して」「〜を直して」のとき。
allowed-tools: Read Edit Write Grep Glob Bash(npm test *) Bash(npm run *) Bash(npm ci) Bash(git status *) Bash(git diff *) Bash(git log *)
---

# 実装の手順

対象: $ARGUMENTS

## 始める前に
1. 受け入れ条件を自分の言葉で言い直す。無ければ「この作業の受け入れ条件は不明」と書いて、最小の解釈で進める。
2. 触る範囲を決める(ファイル・モジュール)。範囲外に手を入れたくなったら、報告に「別作業として」と書くだけにする。
3. 既存のテストの走らせ方を確認する(package.json の scripts、README)。

## 実装
- 1つの変更 = 1つの意図。まとめて直さない。
- 既存の書き方(命名・構造・コメントの密度)に合わせる。新しいライブラリは入れない(必要なら提案として報告)。
- 秘密情報・個人情報をコードやテストデータに入れない。リージョンや推論プロファイルの指定を変えない。

## 確認
- テストを実行する。失敗したら直す。直せなければ、失敗のまま報告する(通ったことにしない)。
- `git diff` を見て、意図しない変更が混ざっていないか確かめる。

## 報告の形式
- 何を変えたか(ファイルごとに1行)
- テストの結果(コマンドと結果。実行できなかった場合はその理由)
- 受け入れ条件との対応(条件ごとに 満たした / 一部 / 未)
- 気づいたが触らなかったこと

レビューreviewer

差分をチームのレビュー観点で点検し、[高/中/低] の1行形式で返す。コードは変更しない。

道具
Read, Grep, Glob, Bash(Edit / Write / Agent なし)。model: sonnet
最初から読み込むスキル
pr-review-rules

議論の論点

  • Code Review(サブスク版の GitHub App)や CI の claude -p と役割が重なる。手元の reviewer は「チーム固有の観点」に絞るか
ファイルを見る: agents/reviewer.md
---
name: reviewer
description: 差分をチームのレビュー観点で点検する、編集ツールを持たないレビュー担当。PR のレビューや「見ておいて」で使う。
tools: Read, Grep, Glob, Bash
disallowedTools: Edit, Write, Agent
model: sonnet
skills:
  - pr-review-rules
maxTurns: 30
---

あなたはチームのレビュー担当です。コードは変更せず、指摘だけを返します。Bash は git diff / git log の読み取りにだけ使い、ファイルを書き換えるコマンド(sed -i、リダイレクト、git commit など)は使いません。
preload された pr-review-rules の観点と形式に従ってください。
根拠のない指摘はしないでください。差分の中に根拠(ファイルと行)があるものだけを挙げてください。
対のスキルを見る: skills/pr-review-rules/SKILL.md
---
name: pr-review-rules
description: チームのレビュー観点で差分を点検する。PR のレビュー・マージ前の確認・「見ておいて」のとき。
allowed-tools: Read Grep Glob Bash(git diff *) Bash(git log *)
---

# チームのレビュー観点

対象の差分: !`git diff --stat HEAD~1 2>/dev/null || git diff --stat || true`

## 必ず見る観点(優先順)
1. **秘密情報と個人情報**: キー・トークン・個人を特定できる値がコードやテストデータに入っていないか。ログ出力に個人情報が乗らないか。
2. **国内処理の約束**: リージョン指定が ap-northeast-1 以外になっていないか。推論プロファイルが `jp.` 以外になっていないか。
3. **取り返しのつく設計**: マイグレーション・削除・外部送信に、戻す手順があるか。
4. **テスト**: 変更した振る舞いに対応するテストがあるか。既存テストを消していないか。
5. **運用への影響**: 環境変数・IAM・CI 定義の変更があれば、運用担当に伝える一文を添える。

## 報告の形式
各指摘を `[高/中/低] ファイル:行 — 何が問題か — どう直すか` の1行で。高が1件でもあれば冒頭に「マージ前に要対応」と書く。問題がなければ「観点1〜5は問題なし」と明記し、見られなかった範囲も書く。

## やらないこと
- 差分の修正。指摘にとどめる(修正は別の指示で)。
- 好みの指摘(命名・スタイル)を「高」にしない。

セキュリティ監査security-auditor

秘密情報・入力検証・認可・依存の脆弱性・ログの個人情報を、到達経路つきで点検する。再現できる根拠があるものだけ「高」。

道具
Read, Grep, Glob, Bash, WebFetch。model: sonnet。確認なしで取れるのは allowed-tools の owasp.org・cheatsheetseries.owasp.org・docs.aws.amazon.com・code.claude.com・platform.claude.com だけで、他のドメインは都度確認(限定ではない。限定するなら permissions の deny と allow)
最初から読み込むスキル
security-audit, aws-docs-lookup

議論の論点

  • WebSearch がないので OWASP の参照は WebFetch で直接当たる。許可ドメインを管理設定と揃える
  • npm audit などの依存チェックは閉じたネットワークで動かないことがある。CI 側で別に回すか
ファイルを見る: agents/security-auditor.md
---
name: security-auditor
description: 秘密情報・入力検証・認可・依存の脆弱性・ログの個人情報を点検するセキュリティ監査役。リリース前、外部入力を扱う変更、認証まわりの変更のとき。
tools: Read, Grep, Glob, Bash, WebFetch
disallowedTools: Edit, Write, Agent
model: sonnet
skills:
  - security-audit
  - aws-docs-lookup
maxTurns: 40
---

あなたはセキュリティ監査役です。コードは変更せず、指摘と根拠だけを返します。
preload された security-audit の観点と形式に従ってください。
「脆弱性の可能性がある」と「脆弱性がある」を区別し、再現できる根拠(入力例と到達経路)があるものだけを「高」にします。
攻撃手順の詳細は書かず、何を直せば防げるかを書きます。
対のスキルを見る: skills/security-audit/SKILL.md
---
name: security-audit
description: 秘密情報・入力検証・認可・依存の脆弱性・ログの個人情報を、根拠つきで点検する手順。security-auditor が使う。リリース前や外部入力・認証の変更時に。
allowed-tools: Read Grep Glob Bash(npm audit) Bash(npm audit --json) Bash(git diff *) Bash(git log *) WebFetch(domain:owasp.org) WebFetch(domain:cheatsheetseries.owasp.org) WebFetch(domain:docs.aws.amazon.com) WebFetch(domain:code.claude.com) WebFetch(domain:platform.claude.com)
---

# セキュリティ点検の手順

対象: $ARGUMENTS(指定がなければ直近の差分)

## 観点(この順で)
1. **秘密情報**: キー・トークン・パスワード・接続文字列がコード・設定・テストデータ・ログ出力に無いか(`grep` で AKIA / ASIA / password / secret / token / BEGIN PRIVATE KEY を当たる)。
2. **入力検証**: 外から来る値(HTTP パラメータ・ヘッダ・ファイル名・環境変数)が、使う前に型と範囲を確かめられているか。SQL・コマンド・パス・HTML に文字列結合で入っていないか。
3. **認可**: 「誰が」その操作をしてよいかの判定が、各エンドポイント・各処理で行われているか。ID を差し替えると他人のデータが見えないか。
4. **依存**: `npm audit` などで既知の脆弱性を確認する(`npm audit fix` は実行しない。ネットワークが閉じていて実行できない場合はその旨を書く)。
5. **ログと個人情報**: ログ・エラーメッセージ・監視の送信先に個人情報や秘密情報が乗らないか。
6. **設定**: CORS・Cookie 属性・TLS・デバッグフラグ・デフォルト認証情報。

## 根拠の取り方
- WebSearch は使えない前提。参照は OWASP(owasp.org / cheatsheetseries.owasp.org)と AWS の公式ドキュメントを WebFetch で直接当たり、逐語を引く。見つからなければ「参照なし」と書く(存在しないとは書かない)。

## 報告の形式
- `[高/中/低] ファイル:行 — 何が問題か — 到達経路(どの入力がどこへ届くか) — 直し方`
- 高は「再現できる根拠(入力例と経路)がある」ものだけ。可能性にとどまるものは中以下。
- 攻撃の手順書にはしない。何を直せば防げるかを書く。
- 最後に「見た範囲 / 見ていない範囲」を明記する。

性能評価perf-evaluator

計測を先に取り(CloudWatch か手元の3回計測)、ボトルネックを数字で特定し、改善候補を効果順に並べる。

道具
Read, Grep, Glob, Bash(Edit / Write なし)。model: sonnet
最初から読み込むスキル
perf-review

議論の論点

  • 本番の計測値を読む権限(cloudwatch:GetMetricData)を誰の IAM で渡すか
  • 改善の実装は implementer に戻す運用でよいか
ファイルを見る: agents/perf-evaluator.md
---
name: perf-evaluator
description: 計測をもとに性能の問題を特定し、改善候補を効果順に並べる性能評価役。「遅い」と言われたとき、負荷が増える変更の前、DB クエリや画面の重さを見るとき。
tools: Read, Grep, Glob, Bash
disallowedTools: Edit, Write, Agent
model: sonnet
skills:
  - perf-review
maxTurns: 40
---

あなたは性能評価役です。コードは変更せず、計測結果と改善候補を返します。
preload された perf-review の手順に従ってください。
推測で「遅そう」と言わず、計測(時間・件数・クエリ回数)を先に取り、その数字と一緒に報告します。計測できない項目は「未計測」と書きます。
対のスキルを見る: skills/perf-review/SKILL.md
---
name: perf-review
description: 計測を先に取り、性能の問題を数字で特定して改善候補を効果順に並べる手順。perf-evaluator が使う。「遅い」「負荷が増える」のとき。
allowed-tools: Read Grep Glob Bash(npm test *) Bash(npm run *) Bash(aws cloudwatch get-*) Bash(aws cloudwatch describe-*) Bash(aws logs start-query *) Bash(aws logs get-query-results *) Bash(git diff *)
---

# 性能評価の手順

対象: $ARGUMENTS

## 1. まず計測(推測で始めない)
- 本番の実測があるなら CloudWatch から取る(p50 / p95 / p99、エラー率、対象の時間帯)。
- 手元で再現できるなら、同じ入力で3回測って中央値を使う。1回の値を一般則にしない。
- 計測できないものは「未計測」と書き、代わりに「何を測れば分かるか」を書く。

## 2. よくある型を当たる
- N+1(ループの中の DB / API 呼び出し)
- 必要以上に広い取得(SELECT *、全件取得してからの絞り込み)
- 同期的な待ち(直列にした独立な I/O)
- 画面: バンドルサイズ、画像の最適化なし、再描画の連鎖
- キャッシュの不在、または効いていないキャッシュ

## 3. 改善候補を並べる
- 候補ごとに「期待される効果(数字の見込み)」「変更の大きさ」「副作用(整合性・メモリ・複雑さ)」を書く。
- 効果の見込みは根拠(計測値や件数)つきで。根拠がなければ「推定」と書く。

## 報告の形式
- 計測結果(何を・どう・いくつ)
- ボトルネックの特定(ファイル:行 と、そう言える根拠)
- 改善候補(効果順。期待値・大きさ・副作用)
- 未計測・未確認のこと

コードアーキテクトcode-architect

境界・依存の向き・変更の広がりを点検し、選択肢を比べ、設計判断を ADR(docs/adr/)に残す。実装コードは触らない。

道具
Read, Grep, Glob, Bash, Write(Edit なし)
最初から読み込むスキル
architecture-review(allowed-tools は Edit(docs/adr/**) で ADR の場所だけ事前許可)

議論の論点

  • Write を docs/adr/ に限定しているのは本文の約束と allowed-tools の事前許可(Edit(docs/adr/**)。Edit の規則は Write にも効く)で、他の場所への Write は通常の確認に回る。機械で止めるなら permissions.deny に Edit(src/**) を置く形
  • ADR の形式と置き場所をチームの既存の決め方に合わせる
ファイルを見る: agents/code-architect.md
---
name: code-architect
description: 境界・依存の向き・変更のしやすさを点検し、設計判断を ADR として残すアーキテクト役。新機能の設計、モジュール分割、技術選定、大きなリファクタの前に。
tools: Read, Grep, Glob, Bash, Write
disallowedTools: Edit, Agent
skills:
  - architecture-review
maxTurns: 40
---

あなたはコードアーキテクトです。実装コードは変更せず、設計の判断と記録を担います。
preload された architecture-review の手順に従ってください。
Write は docs/adr/ 配下の ADR(設計判断の記録)を書くためだけに使います。それ以外のファイルは書きません。
選択肢を比べるときは、採用しない案も「なぜ採らないか」まで書きます。
対のスキルを見る: skills/architecture-review/SKILL.md
---
name: architecture-review
description: 境界・依存の向き・変更のしやすさを点検し、設計判断を ADR(docs/adr/)に残す手順。code-architect が使う。新機能の設計・分割・技術選定・大きなリファクタの前に。
allowed-tools: Read Grep Glob Bash(git log *) Bash(git diff *) Edit(docs/adr/**)
---

# 設計点検と ADR の手順

対象: $ARGUMENTS

## 1. 現状を地図にする
- モジュール(ディレクトリ)と、その間の依存の向きを列挙する。循環があれば印を付ける。
- 外部との境界(HTTP・DB・キュー・外部 API・ファイル)がどこに集まっているかを見る。

## 2. 変更のしやすさで見る
- 今回の変更は、何個のモジュールに手が入るか。1つで済むなら境界は妥当、3つ以上なら境界を疑う。
- 「変わりやすいもの(外部 API の形・画面)」と「変わりにくいもの(業務の規則)」が同じ場所に居ないか。
- テストしやすいか(境界を差し替えずに単体で試せるか)。

## 3. 選択肢を比べる
- 候補は2〜3個。それぞれ「利点 / 欠点 / 戻しやすさ / 今のチームで運用できるか」を書く。
- 採用しない案も「なぜ採らないか」まで書く。

## 4. ADR を書く(docs/adr/NNNN-短い題.md)
```
# NNNN: 題
日付: YYYY-MM-DD / 状態: 提案 | 採用 | 却下 | 置き換え(→NNNN)
## 文脈(何が問題か・制約は何か)
## 決定(何をどうするか。一文)
## 選択肢と比較
## 結果(良くなること・悪くなること・見直す条件)
```
- 国内処理・記録を残さない等の契約上の制約は「文脈」に必ず書く。

## 報告の形式
- 依存の地図(箇条書きで可)
- 指摘(境界・循環・変更の広がり)と根拠
- 書いた ADR のパスと「決定」の一文。人に決めてほしい点があればそれも

QAqa

受け入れ条件から正常・境界・異常の観点を洗い出し、足りないテストを書いて実行し、「何を確かめ、何を確かめていないか」を報告する。製品コードは触らない。

道具
Read, Edit, Write, Grep, Glob, Bash(Agent なし)
最初から読み込むスキル
qa-test-plan

議論の論点

  • テストコードだけを書く、は文章の約束。機械で守るなら permissions で Edit(src/**) を deny し、Edit(tests/**) を allow
  • E2E(Playwright 等)をどこで動かすか。手元か CI か
ファイルを見る: agents/qa.md
---
name: qa
description: 受け入れ条件からテスト観点を洗い出し、足りないテストを書き、実行して結果を報告する QA 役。機能の完成前、リリース前の回帰確認、不具合の再現のとき。
tools: Read, Edit, Write, Grep, Glob, Bash
disallowedTools: Agent
skills:
  - qa-test-plan
maxTurns: 60
---

あなたは QA 役です。preload された qa-test-plan の手順に従ってください。
テストコードとテストデータだけを書き、製品コードは変更しません(直すべき点は不具合として報告します)。
「テストが通った」だけでなく「何を確かめたか・何は確かめていないか」を報告します。
対のスキルを見る: skills/qa-test-plan/SKILL.md
---
name: qa-test-plan
description: 受け入れ条件からテスト観点を洗い出し、足りないテストを書き、実行して「何を確かめ、何を確かめていないか」を報告する手順。qa が使う。
allowed-tools: Read Edit Write Grep Glob Bash(npm test *) Bash(npm run *) Bash(npx playwright test *) Bash(git diff *)
---

# QA の手順

対象: $ARGUMENTS

## 1. 観点を洗い出す
- 受け入れ条件ごとに「正常 / 境界(0・1・最大・空・NULL) / 異常(型違い・権限なし・タイムアウト)」の3列で表にする。
- 既存のテストで既に覆われている観点に印を付け、足りない観点だけを書く。
- 回帰: 今回の変更で壊れうる既存機能を、依存関係から3つまで挙げる。

## 2. テストを書く
- 製品コードは変更しない。直すべき点は不具合として報告する。
- テストデータに個人情報を使わない(架空の値)。外部サービスは差し替える。
- 1テスト = 1観点。失敗したときに何が壊れたか分かる名前にする。

## 3. 実行する
- 全体を実行し、結果をそのまま報告する(落ちたものを消したり skip にしたりしない)。
- 不安定なテスト(実行ごとに結果が変わる)は、安定化せずに「不安定」と報告する。

## 報告の形式
- 観点の表(覆った / 新規に追加 / 未)
- 実行結果(コマンド・成功数・失敗数・失敗の内容)
- 不具合として報告するもの(再現手順つき)
- 確かめていないこと(理由つき)

SREsre

変更の影響・監視とアラートの妥当性・戻す手順・ランブックを点検し、アラートの調査と毎朝の点検も担う。AWS は読み取りだけ。

道具
Read, Grep, Glob, Bash(Edit / Write なし)
最初から読み込むスキル
sre-ops-review, incident-triage, jp-only-policy(daily-health は disable-model-invocation: true なので preload されない。公式)

議論の論点

  • 読み取り専用の IAM ロールを用意し、describe / get / list / start-query だけに絞る。スキルの allowed-tools も同じ形(aws cloudwatch describe-* など)に揃え、aws logs * のような末尾ワイルドカードは使わない(delete-log-group まで確認なしで通る)。bash-guard のフックが delete 系を ask にするのは三重目の保険
  • 毎朝の点検(daily-health)は無人実行(EventBridge → CodeBuild の claude -p)に寄せ、sre は異常時の深掘りに使う分担。sre に毎朝の点検もさせたいなら daily-health の disable-model-invocation を外す
ファイルを見る: agents/sre.md
---
name: sre
description: 監視・アラート・リリースの安全性・障害対応を担う SRE 役。アラートの調査、毎朝の点検、リリース前の確認、ランブックの整備のとき。
tools: Read, Grep, Glob, Bash
disallowedTools: Edit, Write, Agent
skills:
  - sre-ops-review
  - incident-triage
  - jp-only-policy
maxTurns: 40
---

あなたは SRE 役です。設定やコードは変更せず、調査・判定・提案を返します。
preload された sre-ops-review・incident-triage の手順に従ってください(毎朝の点検 daily-health は人の意図なしに動かない設定なので、スケジュール実行の claude -p から呼ばれます。あなたはその結果の深掘りを担います)。
AWS の操作は読み取り(describe / get / list / start-query)だけ。変更・削除・再起動はしません。本番への適用は人が行います。
対のスキルを見る: skills/sre-ops-review/SKILL.md
---
name: sre-ops-review
description: リリースの安全性・監視とアラートの妥当性・ランブック・戻す手順を点検する手順。sre が使う。リリース前・アラート設計・障害後の見直しに。
allowed-tools: Read Grep Glob Bash(aws cloudwatch describe-*) Bash(aws cloudwatch get-*) Bash(aws cloudwatch list-*) Bash(aws logs describe-*) Bash(aws logs start-query *) Bash(aws logs get-query-results *) Bash(aws synthetics get-*) Bash(git log *)
---

# SRE の点検手順

対象: $ARGUMENTS

## 1. この変更で何が変わるか
- 増える・変わる外部依存、設定、環境変数、権限、データ量。
- 失敗したときの影響範囲(全員 / 一部 / 内部だけ)と、気づく手段(どのアラームが鳴るか)。

## 2. 監視とアラート
- 変更に関係する指標に、アラームとしきい値があるか(`describe-alarms`)。無ければ「何を・いくつで」の案を書く。
- 鳴りすぎていないか(直近の履歴で ALARM の回数)。鳴っても誰も動かないアラームは削除候補。
- カナリアが本番の経路を叩いているか。

## 3. 戻す手順
- 変更ごとに「戻せる(手順は?) / 戻すのに準備が要る / 戻せない(理由)」。
- データのマイグレーションを伴う場合は db-reviewer の点検を要求する。

## 4. ランブック
- アラートが鳴ったとき、当番が最初に見る3つ(ダッシュボード・ログのクエリ・直近のデプロイ)が書かれているか。
- 連絡先と判断基準(誰に、いつエスカレーションするか)があるか。

## 守ること
- AWS は読み取りだけ。変更・削除・再起動は提案にとどめる。本番への適用は人が行う。
- リージョンは ap-northeast-1 のまま。

## 報告の形式
- 変更の影響(箇条書き)
- 監視の判定(足りている / 追加案 / 削除候補)
- 戻す手順の分類
- 人に決めてほしいこと

データベースdb-reviewer

マイグレーションの後方互換とロック、インデックス、クエリ計画、個人情報の列、バックアップと容量を点検する。本番・ステージングには接続しない。

道具
Read, Grep, Glob, Bash(Edit / Write なし)。model: sonnet
最初から読み込むスキル
db-review

議論の論点

  • EXPLAIN を誰がどこで取るか(ローカル DB の用意、または人が本番で取って貼る)
  • expand → 移行 → contract の3段を、チームのリリース手順に組み込めるか
ファイルを見る: agents/db-reviewer.md
---
name: db-reviewer
description: マイグレーションの安全性・インデックス・クエリ計画・バックアップを点検するデータベース役。スキーマ変更、遅いクエリ、データ移行、容量の相談のとき。
tools: Read, Grep, Glob, Bash
disallowedTools: Edit, Write, Agent
model: sonnet
skills:
  - db-review
maxTurns: 40
---

あなたはデータベース担当です。スキーマやデータは変更せず、点検結果と修正案を返します。
preload された db-review の手順に従ってください。
本番やステージングの DB には接続しません。クエリ計画(EXPLAIN)が必要なら、ローカルの DB で取るか、人に取ってもらう手順を書きます。
対のスキルを見る: skills/db-review/SKILL.md
---
name: db-review
description: マイグレーションの安全性(ロック・後方互換)、インデックス、クエリ計画、バックアップを点検する手順。db-reviewer が使う。スキーマ変更・遅いクエリ・データ移行のとき。
allowed-tools: Read Grep Glob Bash(git diff *) Bash(git log *)
---

# データベース点検の手順

対象: $ARGUMENTS

## 1. マイグレーション
- 後方互換か: 古いアプリと新しいアプリが同時に動く時間帯に壊れないか(列の削除・改名・NOT NULL 追加は危険。expand → 移行 → contract の3段に分ける)。
- ロックか: 大きなテーブルへの ALTER、インデックス作成(同時実行オプションの有無)、全件 UPDATE。実行時間の見積もりと、業務時間外にやるかを書く。
- 戻せるか: down の手順があるか。データを消す操作に戻し方があるか。

## 2. インデックスとクエリ
- 新しいクエリの WHERE / JOIN / ORDER BY の列にインデックスがあるか。
- EXPLAIN が必要なら、ローカル DB で取る手順か、人に取ってもらうクエリを書く(本番・ステージングには接続しない)。
- N+1 や全件取得は perf-evaluator と重なるので、見つけたら引き継ぐ。

## 3. データ
- 個人情報の列が増えるなら、暗号化・マスキング・保持期間・削除の手順を確認する。
- テストデータや seed に実データが混ざっていないか。

## 4. 運用
- バックアップの方式と復元の試験日。PITR(時点復元)が有効か。
- 容量の見込み(行数 × 行サイズ × 保持期間)。

## 報告の形式
- `[高/中/低] 対象 — 何が問題か — 直し方(expand/contract の段取りなど)`
- 実行時間・ロックの見込み(根拠つき。無ければ「見積もり」と明記)
- 人に取ってもらうもの(EXPLAIN、本番の行数など)

Angular 監査angular-reviewer

package.json の版を読み(2026-10-07 時点: v22 が Active、v21・v20 が LTS、v19 以前はサポート外)、standalone 既定(v19〜)・zoneless 既定(v21〜)・inject() 推奨・@if / @for・provideHttpClient・bypassSecurityTrust* の根拠・CSP / Trusted Types・AOT を点検する。

道具
Read, Grep, Glob, Bash, WebFetch(angular.dev と GitHub の raw は確認なし)。model: sonnet
最初から読み込むスキル
angular-audit, aws-docs-lookup

議論の論点

  • angular.dev は SPA で取れないことがあるので、手順書は GitHub の angular/angular の adev/src/content を代替にしている。許可ドメインを管理設定と揃える
  • 「古い書き方」を低にとどめ、公式が非推奨・削除予定と書いたものだけ中以上にする線引きでよいか
ファイルを見る: agents/angular-reviewer.md
---
name: angular-reviewer
description: Angular のコードを、現行の公式の書き方(standalone・signals・zoneless・inject・制御フロー)とセキュリティの観点で監査する。Angular の PR レビュー、古い書き方の棚卸し、バージョン更新の前に。
tools: Read, Grep, Glob, Bash, WebFetch
disallowedTools: Edit, Write, Agent
model: sonnet
skills:
  - angular-audit
  - aws-docs-lookup
maxTurns: 40
---

あなたは Angular の監査役です。コードは変更せず、指摘と根拠を返します。
preload された angular-audit の手順に従ってください。
まず package.json から @angular/core の版を読み、その版の公式ドキュメント(angular.dev)を根拠にします。版が分からない主張はしません。
「古い書き方」は、動くなら「低」、公式が非推奨・削除予定と書いているものだけ「中」以上にします。
対のスキルを見る: skills/angular-audit/SKILL.md
---
name: angular-audit
description: Angular のコードを現行の公式の書き方とセキュリティの観点で監査する手順。angular-reviewer が使う。Angular の PR レビュー・古い書き方の棚卸し・更新前に。
allowed-tools: Read Grep Glob Bash(git diff *) Bash(git log *) Bash(npx ng version) WebFetch(domain:angular.dev) WebFetch(domain:next.angular.dev) WebFetch(domain:raw.githubusercontent.com)
---

# Angular 監査の手順

対象: $ARGUMENTS(指定がなければ直近の差分)

## 0. 版を確かめる(ここを飛ばさない)
- package.json の `@angular/core` の版を読む。2026-10-07 時点の公式のサポート表: **v22 が Active(2026-06-03〜)、v21・v20 が LTS、v19 以前はサポート外**。サポート外の版なら、それ自体を「高」で報告する(セキュリティ修正が来ない)。
- 版ごとの差は angular.dev の Update guide で確かめる。WebSearch は無いので、angular.dev のページを WebFetch で直接当たる(取れなければ GitHub の angular/angular の `adev/src/content/` 配下の Markdown を raw.githubusercontent.com から読む。URL のパスとファイルの場所は一致しないことがある。例: angular.dev/best-practices/security の本文は `guide/security.md`)。

## 1. 構造(公式のスタイルガイドと現行の既定)
- **standalone**: v19 以降は `standalone` が既定で true。NgModule は「既存コードを理解するための案内」で、公式は新規コードには standalone を推奨。NgModule が新規に増えていたら「低〜中」。
- **DI**: 公式スタイルガイドはコンストラクタ注入より `inject()` 関数を推奨。混在は「低」。
- **変更検知**: v21 以降は zoneless が既定。`provideZoneChangeDetection` で上書きしていないか、`NgZone.onMicrotaskEmpty` / `onStable` / `isStable` に依存していないか(zoneless では動かない。公式が削除を求めている)。v20 なら `provideZonelessChangeDetection()` を入れているか。
- **テンプレート**: 制御フローは `@if` / `@for` / `@switch`。`ngClass` / `ngStyle` より `[class.x]` / `[style.x]` を推奨(スタイルガイド)。テンプレートに複雑なロジックを置かない。
- **メンバー**: テンプレートからだけ使うメンバーは `protected`、変えない値は `readonly`(スタイルガイド)。
- **HTTP**: `provideHttpClient(...)` で設定し、インターセプタは `withInterceptors`。
- **状態**: signals(`signal` / `computed` / `linkedSignal` / `resource`)と RxJS の境界が整理されているか。購読の解除漏れ(`takeUntilDestroyed` や `toSignal`)。

## 2. セキュリティ(公式の Security ガイド)
- `bypassSecurityTrustHtml` などの `bypassSecurityTrust*` の使用箇所をすべて列挙し、入力が信頼できる根拠を確認する。根拠がなければ「高」。
- `innerHTML` への直接代入(公式ガイドの論点)。加えて監査側の観点として、`ElementRef.nativeElement` 経由の DOM 操作と `document.write` の有無。
- CSP(nonce か `autoCsp` のハッシュ)と Trusted Types の設定の有無。
- AOT でビルドしているか(公式: AOT のテンプレートコンパイラは「テンプレートインジェクション」という脆弱性の一群を防ぐ。ユーザー入力を含むテンプレートを動的に組み立ててコンパイルするのはアンチパターン)。
- ルーティングのガードで認可が漏れていないか。トークンを localStorage に置いていないか(置いているなら設計判断として記録)。

## 3. 性能(気になるときだけ)
- `OnPush` でない大きなコンポーネント、`@for` の `track` の指定、重い `computed`、画像の `NgOptimizedImage`。

## 報告の形式
- `[高/中/低] ファイル:行 — 何が問題か — 公式のどこに基づくか(ページ名) — 直し方`
- 高: サポート外の版・`bypassSecurityTrust*` の根拠なし・認可漏れ。中: 公式が非推奨・削除予定と明記しているもの。低: スタイルガイドとの差。
- 最後に「版」「見た範囲 / 見ていない範囲」「確認できなかった公式ページ」を書く。

## 確認する公式ページ
- https://angular.dev/reference/releases (サポート表)
- https://angular.dev/update-guide
- https://angular.dev/style-guide
- https://angular.dev/guide/zoneless
- https://angular.dev/guide/signals
- https://angular.dev/best-practices/security
- https://angular.dev/guide/ngmodules/overview (NgModule の位置づけ)
- https://angular.dev/guide/http/setup

Spring 監査spring-reviewer

pom / gradle から Boot と Java の版を読み(2026-10-07 時点: Boot 4.1.1 が既定。OSS サポートは 3.5.x が 2026-06-30 で終了済み、4.0.x は 2026-12-31 まで。4.0 は Java 17 以上・Jakarta EE 11 / Servlet 6.1・Framework 7.x)、starter の改名(web → webmvc、aop → aspectj)・Jackson 3(tools.jackson)・Undertow 削除・JSpecify・@Transactional の境界・Actuator の公開範囲・ddl-auto・RestClient / HTTP Service Clients・仮想スレッドを点検する。

道具
Read, Grep, Glob, Bash(ビルドは可、起動と DB 接続は不可), WebFetch。model: sonnet
最初から読み込むスキル
spring-audit, aws-docs-lookup

議論の論点

  • Boot 3 → 4 の移行の観点を監査スキルに持たせるか、別の移行スキルに分けるか
  • Actuator 無認証と ddl-auto=update を「高」にする線引きでよいか
ファイルを見る: agents/spring-reviewer.md
---
name: spring-reviewer
description: Spring Boot / Spring Framework のコードを、現行の版(Boot 4.x・Framework 7.x)の公式の書き方と、設定・トランザクション・セキュリティの観点で監査する。Spring の PR レビュー、Boot 3 → 4 の移行、設定の棚卸しに。
tools: Read, Grep, Glob, Bash, WebFetch
disallowedTools: Edit, Write, Agent
model: sonnet
skills:
  - spring-audit
  - aws-docs-lookup
maxTurns: 40
---

あなたは Spring の監査役です。コードは変更せず、指摘と根拠を返します。
preload された spring-audit の手順に従ってください。
まず pom.xml / build.gradle から Spring Boot と Java の版を読み、その版の公式ドキュメント(docs.spring.io と GitHub wiki の移行ガイド)を根拠にします。
ビルドは実行してよいが、アプリの起動・DB 接続・外部呼び出しはしません。
対のスキルを見る: skills/spring-audit/SKILL.md
---
name: spring-audit
description: Spring Boot / Framework のコードを、現行の版(Boot 4.x・Framework 7.x)の公式の書き方と設定・トランザクション・セキュリティの観点で監査する手順。spring-reviewer が使う。
allowed-tools: Read Grep Glob Bash(git diff *) Bash(git log *) Bash(./mvnw -q dependency:tree *) Bash(./mvnw -q compile *) Bash(./gradlew dependencies *) Bash(./gradlew compileJava *) WebFetch(domain:docs.spring.io) WebFetch(domain:github.com) WebFetch(domain:raw.githubusercontent.com) WebFetch(domain:spring.io)
---

# Spring 監査の手順

対象: $ARGUMENTS(指定がなければ直近の差分)

## 0. 版を確かめる
- pom.xml / build.gradle から Spring Boot・Spring Framework・Java の版を読む。2026-10-07 時点: start.spring.io の既定は **Boot 4.1.1**(4.2 はマイルストーン)。Framework は 7.x。OSS のサポート終了日は api.spring.io/projects/spring-boot/generations(JSON)で確かめる。同日時点で **3.5.x は 2026-06-30 で OSS 終了済み、4.0.x は 2026-12-31 まで、4.1.x は 2027-07-31 まで**。「サポート外」はこの OSS 終了日(商用サポート契約があればその日付)を基準にする。
- Boot 4.0 の要件(移行ガイド): **Java 17 以上(最新 LTS を推奨)、Jakarta EE 11 / Servlet 6.1、Framework 7.x**。Boot 3.x から上げるときは、先に 3.5 の最新に上げてから。
- 版ごとの差は docs.spring.io の reference と、GitHub wiki の Release Notes / Migration Guide を WebFetch で直接当たる。

## 1. Boot 3 → 4 で変わった点(差分にあれば必ず見る)
- **starter の名前**: `spring-boot-starter-web` → `spring-boot-starter-webmvc`、`spring-boot-starter-aop` → `spring-boot-starter-aspectj`(本当に AspectJ が要るかも見直す)。Boot 4 はモジュールが細分化され、技術ごとに `spring-boot-<technology>` と `spring-boot-starter-<technology>(-test)`。starter を使わずに個別の jar を足している構成は見直し対象。
- **Jackson 3**: 既定の JSON ライブラリが Jackson 3 になり、パッケージが `com.fasterxml.jackson` → `tools.jackson`(annotations だけは `com.fasterxml.jackson.annotation` のまま)。import が混在していないか。
- **Undertow は削除**(Servlet 6.1 非対応のため)。Undertow の設定や starter が残っていないか。
- **JSpecify の null 注釈**が Boot 4.0 で入った。Kotlin や null チェッカを使うビルドでは警告・エラーになりうる。`org.springframework.lang` の旧注釈は移行対象。
- Boot 3.x で非推奨だった API は 4.0 で削除済み。

## 2. 設計と設定
- `@Transactional` の境界: private メソッド・同一クラス内呼び出し・チェック例外でロールバックされない点を踏まえているか。読み取りは `readOnly = true` か。
- 設定は `application.yml` と `@ConfigurationProperties` で、秘密情報は環境変数か Secrets Manager から(ファイルに直書きなし)。プロファイルごとの差分が明示されているか。
- HTTP クライアント: `RestTemplate` の新規利用より `RestClient` か HTTP Service Clients(`@HttpExchange` のインターフェース。Boot 4 で自動設定あり)。Boot 4.1 には SSRF 対策の `InetAddressFilter` がある。外部 URL をユーザー入力から組み立てていないか。
- 仮想スレッド: Java 21 以上で `spring.threads.virtual.enabled=true` にしているなら、`synchronized` の長い区間やスレッドローカル前提のコードが無いか。
- Actuator の公開範囲(`management.endpoints.web.exposure.include`)と認証。`/actuator/env` や `/heapdump` が無認証で出ていないか → 「高」。
- Spring Security: 認可ルールが「全部許可してから絞る」になっていないか、CSRF を切っている理由があるか、パスワードのエンコーダ。

## 3. データ
- JPA: N+1(`@OneToMany` の `EAGER`、ループ内の遅延ロード)、`open-in-view` の既定(警告が出る)、マイグレーションは Flyway / Liquibase で、`ddl-auto=update` を本番で使っていないか → 「高」。
- 詳細は db-review に引き継ぐ。

## 報告の形式
- `[高/中/低] ファイル:行 — 何が問題か — 公式のどこに基づくか(ページ名) — 直し方`
- 高: 認証なしの Actuator・`ddl-auto=update`・秘密情報の直書き・サポート外の版。中: 移行ガイドが変更を求めているもの。低: 推奨との差。
- 最後に「版」「見た範囲 / 見ていない範囲」「確認できなかった公式ページ」。

## 確認する公式ページ
- https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide
- https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Release-Notes
- https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.1-Release-Notes
- https://docs.spring.io/spring-boot/ (reference)
- https://docs.spring.io/spring-framework/reference/core/null-safety.html
- https://docs.spring.io/spring-boot/reference/features/task-execution-and-scheduling.html (仮想スレッド)
- https://start.spring.io/metadata/client (現在の版の一覧。JSON)
- https://api.spring.io/projects/spring-boot/generations (OSS / 商用サポートの終了日。JSON)

TypeScript 監査typescript-reviewer

tsc --version と --showConfig で版と有効な設定を読み(2026-10-07 時点: 7.0.2 が latest。6.0 以降は strict / module esnext / noUncheckedSideEffectImports が既定)、any・as・非 null アサーション・外部入力の検証なし・浮いた Promise・6.0 の非推奨を ignoreDeprecations で先送りしていないかを点検する。7.0 にはコンパイラ API が無いので typescript-eslint などは @typescript/typescript6 の並走が公式の案内。

道具
Read, Grep, Glob, Bash(tsc --noEmit は可), WebFetch。model: sonnet
最初から読み込むスキル
typescript-audit

議論の論点

  • Angular プロジェクトでは angular-reviewer と重なる。TS 側は tsconfig と型の厳格さ、Angular 側はフレームワークの書き方、で分けるか
  • 7.0 への更新は別作業(implementer)に回す運用でよいか
ファイルを見る: agents/typescript-reviewer.md
---
name: typescript-reviewer
description: TypeScript のコードを、型の厳格さ・tsconfig の既定(6.0 以降)・7.0 への移行・実行時との食い違いの観点で監査する。TS の PR レビュー、tsconfig の見直し、TS 6 → 7 の更新前に。
tools: Read, Grep, Glob, Bash, WebFetch
disallowedTools: Edit, Write, Agent
model: sonnet
skills:
  - typescript-audit
maxTurns: 40
---

あなたは TypeScript の監査役です。コードは変更せず、指摘と根拠を返します。
preload された typescript-audit の手順に従ってください。
まず package.json と tsconfig.json から typescript の版と有効なオプションを読み、その前提で判断します。`tsc --noEmit` は実行してよいが、ファイルは書き換えません。
対のスキルを見る: skills/typescript-audit/SKILL.md
---
name: typescript-audit
description: TypeScript のコードと tsconfig を、型の厳格さ・6.0 以降の既定・7.0 への移行・実行時との食い違いの観点で監査する手順。typescript-reviewer が使う。
allowed-tools: Read Grep Glob Bash(git diff *) Bash(git log *) Bash(npx tsc --noEmit *) Bash(npx tsc --version) Bash(npx tsc --showConfig *) WebFetch(domain:www.typescriptlang.org) WebFetch(domain:devblogs.microsoft.com) WebFetch(domain:github.com)
---

# TypeScript 監査の手順

対象: $ARGUMENTS(指定がなければ直近の差分)

## 0. 版と設定を確かめる
- `npx tsc --version` と package.json の `typescript`。2026-10-07 時点の npm の latest は **7.0.2**(2026-07-08)。7 は Go で書き直されたネイティブ版で、6.0 の型検査と CLI の挙動に合わせてある。
- `npx tsc --showConfig` で実際に効いているオプションを見る(継承や既定を含めた最終形)。
- **6.0 以降の既定**(7.0 も同じ): `strict` は true、`module` は `esnext`、`target` は 7.0 の記事では「esnext の直前の安定版」(実際の値は `tsc --showConfig` で見る)、`noUncheckedSideEffectImports` は true、`libReplacement` は false。古い tsconfig がこれらを明示的に緩めていないか。
- **7.0 の注意**: 6.0 で非推奨になったフラグや構文は 7.0 ではエラー。`ignoreDeprecations` で先送りしている設定は移行の宿題として報告。7.0 にはコンパイラ API が無い(7.1 で新 API の予定)ので、typescript-eslint などが `typescript` を直接 import する構成では `@typescript/typescript6`(`tsc6`)を npm alias で並走させる(公式の案内)。
- JS ファイルの扱いが 7.0 で変わった: 型の位置に値は書けない(`typeof` を使う)、JSDoc の `@enum` は認識されない。`allowJs` のプロジェクトでは差分を見る。

## 1. 型の厳格さ
- `any` の新規追加(明示・暗黙)。`unknown` + 絞り込みで書けないか。
- `as` の多用、`!`(非 null アサーション)、`@ts-ignore` / `@ts-expect-error` の理由コメントの有無。
- 外部から来る値(HTTP の応答・JSON.parse・環境変数)を検証なしに型だけ付けていないか(型は実行時に何も保証しない)。
- `enum` より `as const` のユニオン、`interface` と `type` の使い分けがプロジェクトの規約と合っているか。
- 戻り値の型が公開 API で明示されているか。

## 2. 実行時との食い違い
- `===` でなく `==`、`Number` と `BigInt` の混在、`Date` のタイムゾーン、`parseInt` の基数。
- 非同期: `await` 忘れ(浮いた Promise)、`Promise.all` での部分失敗、`try/catch` が async を跨いでいない。
- `null` と `undefined` の扱いが API の境界で揃っているか。

## 3. 依存とビルド
- `npm audit` の結果(実行は security-audit に任せ、ここでは結果を読む)。
- `skipLibCheck` に頼って型の不整合を隠していないか(使うなら理由を書く)。

## 報告の形式
- `[高/中/低] ファイル:行 — 何が問題か — 根拠(公式ページ名 or tsc の出力) — 直し方`
- 高: 検証なしの外部入力に型だけ付けている・浮いた Promise で失敗が握りつぶされる。中: 6.0 の非推奨を `ignoreDeprecations` で先送り・`any` の新規追加。低: スタイル。
- 最後に「版と有効な設定」「見た範囲 / 見ていない範囲」。

## 確認する公式ページ
- https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/
- https://www.typescriptlang.org/tsconfig/ (オプションの既定と意味)
- https://www.typescriptlang.org/docs/handbook/release-notes/overview.html
- https://registry.npmjs.org/typescript/latest (現在の版。JSON)

Java 監査java-reviewer

対象 JDK の版を読み(2026-10-07 時点: JDK 27 が GA。Oracle の LTS は 8・11・17・21・25 で、現行の主な対象は 17 / 21 / 25。Oracle JDK 21 は 2026-10 以降の更新が OTN ライセンス提供に変わる案内あり)、その版で使える機能だけを前提に、例外の握りつぶし・try-with-resources・共有可変状態・仮想スレッドと synchronized・Optional の誤用・equals/hashCode・JDK 24 以上での Security Manager(JEP 486: 起動オプションなら JVM が起動せず、setSecurityManager は例外、ポリシーファイルは静かに無効)を点検する。

道具
Read, Grep, Glob, Bash(コンパイルとテストは可), WebFetch(openjdk.org・docs.oracle.com)。model: sonnet
最初から読み込むスキル
java-audit

議論の論点

  • Spring プロジェクトでは spring-reviewer と重なる。Java 側は言語と JDK、Spring 側はフレームワークと設定、で分けるか
  • LTS 外の版(26 / 27)を本番で使う方針のチームでは「中」の扱いを変える。判断の軸は LTS かどうかより、使っている提供元の無償更新が続いているか
ファイルを見る: agents/java-reviewer.md
---
name: java-reviewer
description: Java のコードを、使っている JDK の版(LTS は 17 / 21 / 25 が現行の主な対象)で使える言語機能・例外と資源の扱い・並行処理・null の扱い・依存の脆弱性の観点で監査する。Java の PR レビュー、JDK 更新前、古いコードの棚卸しに。
tools: Read, Grep, Glob, Bash, WebFetch
disallowedTools: Edit, Write, Agent
model: sonnet
skills:
  - java-audit
maxTurns: 40
---

あなたは Java の監査役です。コードは変更せず、指摘と根拠を返します。
preload された java-audit の手順に従ってください。
まず pom.xml / build.gradle / .java-version / Dockerfile から対象の JDK の版を読み、その版で使える機能だけを前提にします(新しい機能を「使え」と言うときは、版を上げる判断が別に要ると書く)。
コンパイルとテストは実行してよいが、ファイルは書き換えません。
対のスキルを見る: skills/java-audit/SKILL.md
---
name: java-audit
description: Java のコードを、対象 JDK の版で使える言語機能・例外と資源・並行処理・null・依存の脆弱性の観点で監査する手順。java-reviewer が使う。
allowed-tools: Read Grep Glob Bash(git diff *) Bash(git log *) Bash(java -version) Bash(./mvnw -q compile *) Bash(./mvnw -q test *) Bash(./gradlew compileJava *) Bash(./gradlew test *) WebFetch(domain:openjdk.org) WebFetch(domain:docs.oracle.com) WebFetch(domain:www.oracle.com) WebFetch(domain:dev.java)
---

# Java 監査の手順

対象: $ARGUMENTS(指定がなければ直近の差分)

## 0. 版を確かめる
- pom.xml の `maven.compiler.release` / build.gradle の `toolchain` / `.java-version` / Dockerfile のベースイメージから、対象 JDK の版を読む。実行環境の版と違うなら両方書く。
- 2026-10-07 時点(openjdk.org): **JDK 27 が GA(2026-09-15)、26(2026-03-17)、25(2025-09-16)**。Oracle のロードマップでは LTS は **8・11・17・21・25**(次は 29、2027-09 予定)。現行の主な対象は 17 / 21 / 25。LTS 外の版(26・27 など)を本番で使っているなら、更新計画の有無を「中」で報告。「LTS かどうか」より「使っている提供元(Oracle / Temurin / Corretto など)の無償更新が続いているか」で判断する。Oracle JDK 21 は 2026-10 の CPU 以降、更新が OTN ライセンスでの提供になると案内されている(無償利用の条件が変わる。他の提供元のビルドは別)。
- 新しい言語機能を勧めるときは「版を上げる判断が別に要る」と書く。版ごとの機能は openjdk.org の JEP で確かめる(WebSearch は無いので URL を直接当たる)。

## 1. 言語と API の使い方(版に応じて)
- 21 以上: record・sealed・switch のパターンマッチ・仮想スレッド(JEP 444)が使える。データの入れ物に可変クラスを新規に書いていないか、`instanceof` + キャストの連鎖が switch で書けないか(勧めるのは「低」)。
- 25 以上: コンパクトなソースファイルと `void main()`(JEP 512)はスクリプト用途。本番コードに混ぜていないか。
- 24 以上: Security Manager は恒久的に無効(JEP 486)。`-Djava.security.manager` の起動オプションがあると JVM が起動しない。`System.setSecurityManager` は呼んだ時点で `UnsupportedOperationException`。ポリシーファイルによる権限制限は**失敗せずに効かなくなる**(静かに保護が消える)ので、それを前提にしていた防御には代替手段が要る → 「高」。
- 非推奨 API(`Thread.stop`、`finalize`、`Date` / `Calendar` の新規利用より `java.time`)。

## 2. 例外と資源
- `catch (Exception e) {}` の握りつぶし、ログだけして続行、`e.printStackTrace()`。
- `try-with-resources` を使っていない `InputStream` / `Connection` / `ExecutorService`。
- 例外メッセージや文字列結合でログに個人情報・秘密情報が乗っていないか。

## 3. 並行処理
- 共有の可変状態(`HashMap` を複数スレッドで更新、`SimpleDateFormat` の共有)。
- 仮想スレッドを使うなら、長い `synchronized` 区間や `ThreadLocal` 前提の設計(スレッド数が増える前提に合わない)。
- `ExecutorService` の shutdown 漏れ、`CompletableFuture` の例外の取りこぼし。

## 4. null と等価性
- `Optional` を引数やフィールドに使っていないか(戻り値用)。`Optional.get()` を確認なしに呼んでいないか。
- `equals` / `hashCode` の対(特に Map / Set のキー)。record なら自動生成される。
- JSpecify などの null 注釈があるプロジェクトでは、注釈と実装が一致しているか。

## 5. 依存
- 既知の脆弱性(OWASP Dependency-Check などの結果があれば読む。実行は CI に任せる)。
- 同じライブラリの版の重複(Maven の `dependency:tree`)。

## 報告の形式
- `[高/中/低] ファイル:行 — 何が問題か — 根拠(JEP 番号 / 公式ページ名 / コンパイラ出力) — 直し方`
- 高: 資源リーク・例外の握りつぶしで失敗が見えない・秘密情報のログ出力・JDK 24 以上で Security Manager のポリシー前提の防御。中: 無償更新が終わった版・共有可変状態。低: 新しい構文への書き換え提案。
- 最後に「対象 JDK の版」「見た範囲 / 見ていない範囲」。

## 確認する公式ページ
- https://openjdk.org/projects/jdk/ (GA 日の一覧)
- https://www.oracle.com/java/technologies/java-se-support-roadmap.html (LTS)
- https://openjdk.org/jeps/444 (仮想スレッド、21)
- https://openjdk.org/jeps/486 (Security Manager の恒久無効化、24)
- https://openjdk.org/jeps/512 (コンパクトなソースファイル、25)

フック(8本)

フックは「イベント(いつ)」「matcher(どの道具のとき)」「スクリプト(何をする)」の3段で書きます。スクリプトは標準入力の JSON を読み、終了コード 2 か JSON の決定で結果を返します。

SessionStartmatcher: startup|resume

起動時に CLAUDE_CODE_USE_BEDROCK=1・接頭辞 jp・AWS_REGION=ap-northeast-1 を確かめ、違えば人に警告。ブランチと未コミット数と「本番適用は人」を Claude に伝える。

結果の返し方: 止められない(SessionStart に決定権はない)。systemMessage で人に、additionalContext で Claude に

議論の論点

  • 環境変数を管理設定の env で配っている場合にこのフックで見えるか(未検証。見えないなら設定ファイルを直接読む形に)
  • 警告だけで足りるか。止めたいなら PreToolUse で Bash を止める形に
ファイルを見る: hooks/session-start.sh
#!/bin/bash
# SessionStart: 実行環境を確かめ、Claude に今の状況を伝える(サンプル)
# - SessionStart は止められない(警告を出すだけ)。止めたい条件は PreToolUse か permissions で。
input=$(cat)

warn=""
[ "$CLAUDE_CODE_USE_BEDROCK" = "1" ] || warn="$warn CLAUDE_CODE_USE_BEDROCK が 1 ではありません。"
[ "$ANTHROPIC_BEDROCK_REGION_PREFIX" = "jp" ] || warn="$warn ANTHROPIC_BEDROCK_REGION_PREFIX が jp ではありません(国内処理の約束)。"
[ "$AWS_REGION" = "ap-northeast-1" ] || warn="$warn AWS_REGION が ap-northeast-1 ではありません。"

branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "(git なし)")
dirty=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')
ctx="現在のブランチ: ${branch}。未コミットの変更: ${dirty} 件。推論先: Bedrock(リージョン ${AWS_REGION:-未設定}、接頭辞 ${ANTHROPIC_BEDROCK_REGION_PREFIX:-未設定})。本番環境への適用は人が行う決まりです。"

# additionalContext は Claude が読む。systemMessage は人に見える警告。
jq -n --arg ctx "$ctx" --arg warn "$warn" '
  {hookSpecificOutput: {hookEventName: "SessionStart", additionalContext: $ctx}}
  + (if $warn != "" then {systemMessage: ("環境の確認:" + $warn)} else {} end)'
exit 0

UserPromptSubmitmatcher: (すべて)

依頼文に 12桁/16桁の番号・メールアドレス3件以上・AKIA/ASIA のアクセスキーらしき文字列があれば送信前に止める。

結果の返し方: decision: block で止め、理由を人に表示。suppressOriginalPrompt で原文を表示しない

議論の論点

  • 誤検知(注文番号・日時)をどこまで許すか。止める代わりに additionalContext で「伏せて扱え」と Claude に伝える弱い形もある
  • @ で添付したファイルと、Claude がツールで読むファイルは検査されない(公式: @ 参照は PreToolUse も発火しない)。ファイル側は permissions.deny と IAM で守る
  • 止めても手元のトランスクリプトには原文が残る(公式の注意)
ファイルを見る: hooks/prompt-guard.sh
#!/bin/bash
# UserPromptSubmit: 個人情報らしき文字列を含む依頼を送る前に止める(サンプル)
# - 正規表現は雑に広く取ってある。誤検知前提で、理由を表示して人に直してもらう。
# - @ で添付したファイルの中身や、Claude がツールで読むファイルは検査しない(別の層で守る)。
# - 止めても手元の履歴やトランスクリプトには残る(公式の注意)。
input=$(cat)
prompt=$(jq -r '.prompt // ""' <<<"$input")

hits=""
if grep -Eq '(^|[^0-9])[0-9]{4}[ -]?[0-9]{4}[ -]?[0-9]{4}[ -]?[0-9]{4}([^0-9]|$)' <<<"$prompt"; then
  hits="$hits カード番号らしき16桁;"
elif grep -Eq '(^|[^0-9])[0-9]{4}[ -]?[0-9]{4}[ -]?[0-9]{4}([^0-9]|$)' <<<"$prompt"; then
  hits="$hits マイナンバーらしき12桁;"
fi
n=$(grep -Eo '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}' <<<"$prompt" | wc -l | tr -d ' ')
[ "$n" -ge 3 ] && hits="$hits メールアドレス ${n} 件;"
grep -Eq '(AKIA|ASIA)[A-Z0-9]{16}' <<<"$prompt" && hits="$hits AWS のアクセスキーらしき文字列;"

if [ -n "$hits" ]; then
  jq -n --arg r "個人情報・秘密情報らしき文字列を検出したため送信を止めました:${hits} 伏せ字にするか ID に置き換えて再送してください。" \
    '{decision: "block", reason: $r,
      hookSpecificOutput: {hookEventName: "UserPromptSubmit", suppressOriginalPrompt: true}}'
fi
exit 0

PreToolUsematcher: Bash

rm -rf・force push・jp. 以外の推論プロファイルは deny。AWS の delete/terminate と東京・大阪以外の --region は ask(人に確認)。

結果の返し方: permissionDecision: deny / ask。ask は auto mode でも黙って通らない

議論の論点

  • deny と ask の線引き。本番は人、の約束に合わせて
  • 判定は最善努力(公式)。絶対に止めたいものは permissions.deny に重ねて書く
ファイルを見る: hooks/bash-guard.sh
#!/bin/bash
# PreToolUse(Bash): 取り返しのつかない操作と、国内処理の約束に反する操作を止める(サンプル)
# - フックの判定は「最善努力」。絶対に通したくないものは permissions.deny に書く(公式の注意)。
# - deny は止める。ask は人に確認を出す(auto mode でも黙って通らない)。
input=$(cat)
cmd=$(jq -r '.tool_input.command // ""' <<<"$input")

deny() { jq -n --arg r "$1" '{hookSpecificOutput: {hookEventName: "PreToolUse", permissionDecision: "deny", permissionDecisionReason: $r}}'; exit 0; }
ask()  { jq -n --arg r "$1" '{hookSpecificOutput: {hookEventName: "PreToolUse", permissionDecision: "ask",  permissionDecisionReason: $r}}'; exit 0; }

# 1. 取り返しのつかない操作
grep -Eq '(^|[;&|[:space:]])rm[[:space:]]+-[a-zA-Z]*(rf|fr)' <<<"$cmd" && deny "rm -rf は使わない決まりです。削除は人が行います。"
grep -Eq 'git[[:space:]]+push[^|;&]*(--force|-f)([[:space:]]|$)' <<<"$cmd" && deny "force push は禁止です。"
grep -Eq 'aws[[:space:]][^|;&]*(delete-|terminate-|deregister-|remove-)' <<<"$cmd" && ask "AWS のリソースを消す操作です。本番は人が行う決まりですが、進めますか。"

# 2. 国内処理の約束(東京・大阪以外のリージョン、jp. 以外の推論プロファイル)
region=$(grep -Eo -- '--region[ =]+[a-z0-9-]+' <<<"$cmd" | head -1 | awk '{print $NF}' | sed 's/.*=//')
if [ -n "$region" ] && [ "$region" != "ap-northeast-1" ] && [ "$region" != "ap-northeast-3" ]; then
  ask "東京・大阪以外のリージョン(${region})を指定しています。国内処理の約束に反しませんか。"
fi
grep -Eq '(^|[^a-z.])(global|us|eu|au|in|apac)\.anthropic\.' <<<"$cmd" && deny "jp. 以外の推論プロファイル(海外で処理)を指定しています。国内処理の約束に反します。"

exit 0

PreToolUsematcher: Edit|Write

ロックファイルの手編集は deny。infra/prod・.github/workflows・buildspec・管理設定の変更は ask。

結果の返し方: permissionDecision: deny / ask。Windows の \ 区切りを / に直してから比べる

議論の論点

  • 守るパスの一覧。IaC の置き場所に合わせる
ファイルを見る: hooks/file-guard.sh
#!/bin/bash
# PreToolUse(Edit|Write): 本番の構成や CI 定義は確認を出し、ロックファイルの手編集は止める(サンプル)
# - file_path は絶対パスで来る。Windows は \ 区切りなので / に直してから比べる(公式の注意)。
input=$(cat)
f=$(jq -r '.tool_input.file_path // ""' <<<"$input")
f="${f//\\//}"

deny() { jq -n --arg r "$1" '{hookSpecificOutput: {hookEventName: "PreToolUse", permissionDecision: "deny", permissionDecisionReason: $r}}'; exit 0; }
ask()  { jq -n --arg r "$1" '{hookSpecificOutput: {hookEventName: "PreToolUse", permissionDecision: "ask",  permissionDecisionReason: $r}}'; exit 0; }

case "$f" in
  */package-lock.json|*/pnpm-lock.yaml|*/yarn.lock)
    deny "ロックファイルは手で編集しません。npm install などのコマンドで更新してください。" ;;
  */infra/prod/*|*/.github/workflows/*|*/buildspec*.yml|*/managed-settings.json)
    ask "本番の構成・CI 定義・管理設定(${f})の変更です。レビュー担当に見せる前提で進めますか。" ;;
esac
exit 0

PostToolUsematcher: Edit|Write

保存した ts/js/json/css/md を prettier で整形。失敗したら additionalContext で Claude に伝える。

結果の返し方: 止められない(実行済み)。整形結果をそのまま反映

議論の論点

  • prettier がないプロジェクトでは何もしない(exit 0)。言語ごとの整形コマンドに置き換える
ファイルを見る: hooks/format.sh
#!/bin/bash
# PostToolUse(Edit|Write): 保存したファイルを整形する。失敗したら Claude に伝える(サンプル)
# - PostToolUse はもう実行済みなので止められない。additionalContext で次の行動を促す。
input=$(cat)
f=$(jq -r '.tool_input.file_path // ""' <<<"$input")
case "$f" in
  *.ts|*.tsx|*.js|*.jsx|*.json|*.css|*.md) ;;
  *) exit 0 ;;
esac
cd "${CLAUDE_PROJECT_DIR:-.}" || exit 0
[ -x node_modules/.bin/prettier ] || exit 0

if ! out=$(node_modules/.bin/prettier --write "$f" 2>&1); then
  jq -n --arg o "$out" '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: ("整形(prettier)に失敗しました。構文を確認してください: " + $o)}}'
fi
exit 0

PostToolUse + Stopmatcher: Bash / (すべて)

テストコマンドが走ったらセッション ID を印として残す(test-marker)。終わろうとしたとき、コードを変えているのに印がなければ1回だけ「テストして結果を報告せよ」と続行させる(stop-check)。

結果の返し方: Stop の decision: block で続行。stop_hook_active が true なら止めない(無限ループ防止。Claude Code 側にも連続8回の上限)

議論の論点

  • 「テストを走らせた」事実だけを見ていて合否は見ていない。合否まで機械で見るなら PostToolUse の tool_response を読む形に
  • CI の claude -p でも動く(リポジトリのフックは -p でも、--bare でなければ動く)。レビューだけの実行では変更がないので止まらない
ファイルを見る: hooks/test-marker.sh
#!/bin/bash
# PostToolUse(Bash): テストコマンドが走ったことを、このセッションの印として残す(サンプル)
# - stop-check.sh と対で使う。記録するのは「走らせた」事実だけで、合否は Claude の報告で確認する。
input=$(cat)
cmd=$(jq -r '.tool_input.command // ""' <<<"$input")
grep -Eq '(^|[;&|[:space:]])((npm|pnpm|yarn)[[:space:]]+(run[[:space:]]+)?test|pytest|go[[:space:]]+test|cargo[[:space:]]+test|mvn[[:space:]]+test|gradle[[:space:]]+test)' <<<"$cmd" || exit 0

dir="${CLAUDE_PROJECT_DIR:-.}/.claude/state"
mkdir -p "$dir"
jq -r '.session_id' <<<"$input" > "$dir/last-test-session"
exit 0
ファイルを見る: hooks/stop-check.sh
#!/bin/bash
# Stop: コードを変えたのにテストを走らせていなければ、1回だけ続行させる(サンプル)
# - stop_hook_active が true のとき(すでにこのフックで続行した後)は止めない。無限ループ防止。
# - Claude Code 側にも連続8回の上限がある。
input=$(cat)
[ "$(jq -r '.stop_hook_active // false' <<<"$input")" = "true" ] && exit 0

root="${CLAUDE_PROJECT_DIR:-.}"
changed=$(cd "$root" && git status --porcelain -- '*.ts' '*.tsx' '*.js' '*.jsx' '*.py' '*.go' '*.java' '*.rs' 2>/dev/null | wc -l | tr -d ' ')
[ "$changed" = "0" ] && exit 0

sid=$(jq -r '.session_id' <<<"$input")
marker="$root/.claude/state/last-test-session"
if [ ! -f "$marker" ] || [ "$(cat "$marker")" != "$sid" ]; then
  jq -n '{decision: "block", reason: "コードを変更していますが、このセッションでテストコマンドが実行されていません。テストを実行して結果(成功・失敗)を報告してから終えてください。実行できない理由があるなら、その理由を報告して終えてください。"}'
fi
exit 0

PostToolUsematcher: (すべて)

いつ・どのセッション(とサブエージェント)が・どの道具で・何を対象にしたかを JSONL で .claude/audit/ に残す。

結果の返し方: async: true で待たせない。.claude/audit/ は .gitignore に

議論の論点

  • 中央集約は OTEL(運用の段取りの節)に任せ、これはリポジトリ単位の記録に留めるか。CloudWatch Logs に送る(構成案)なら aws logs put-log-events を足す
ファイルを見る: hooks/audit-log.sh
#!/bin/bash
# PostToolUse(全ツール): 何をしたかを JSONL で手元に残す(サンプル)
# - 中央集約は OTEL(運用の段取りの節)に任せ、ここはリポジトリ単位の作業記録。
# - .claude/audit/ と .claude/state/ は .gitignore に入れる。
input=$(cat)
dir="${CLAUDE_PROJECT_DIR:-.}/.claude/audit"
mkdir -p "$dir"
jq -c '{
  t: (now | todate),
  session: .session_id,
  agent: (.agent_type // "main"),
  tool: .tool_name,
  target: (.tool_input.command // .tool_input.file_path // .tool_input.url // .tool_input.pattern // null),
  ms: (.duration_ms // null)
}' <<<"$input" >> "$dir/$(date +%Y-%m-%d).jsonl"
exit 0

.claude/settings.json(フックの定義)

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup|resume",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/session-start.sh",
            "args": [],
            "timeout": 10
          }
        ]
      }
    ],
    "UserPromptSubmit": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/prompt-guard.sh",
            "args": [],
            "timeout": 10
          }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/bash-guard.sh",
            "args": [],
            "timeout": 10
          }
        ]
      },
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/file-guard.sh",
            "args": [],
            "timeout": 10
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/format.sh",
            "args": [],
            "timeout": 60
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/test-marker.sh",
            "args": [],
            "timeout": 10
          }
        ]
      },
      {
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/audit-log.sh",
            "args": [],
            "timeout": 10,
            "async": true
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/stop-check.sh",
            "args": [],
            "timeout": 20
          }
        ]
      }
    ]
  }
}

チームで決めること

  • フックで止めるもの(機械)と、確認を出すもの(人)と、CLAUDE.md やスキルの文章で頼むもの(お願い)の3段を、どの操作に当てるか。サンプルは「取り返しのつかない操作と国内処理は機械、本番に近いものは人、形式や観点はお願い」で切っている
  • リポジトリの .claude/ に置く(開発会社が配る)か、管理設定に置く(AWS アカウント保持会社が強制する)か。allowManagedHooksOnly を立てるとリポジトリのフックは全部動かなくなるので、立てるなら組織のフックに必要なものを移す
  • claude -p はフォルダを信頼していなくてもリポジトリの .claude/settings.json のフックを動かす(公式)。CI で他人のリポジトリを回すときは中身を確認するか --bare にする。逆に --bare にするとこのスキル・フックは読まれない
  • スキルの allowed-tools は、管理設定の allowManagedPermissionRulesOnly が立っていると無視される。その場合は管理設定の allow に同じ規則を書く
  • スキルの allowed-tools は「スキルを呼び出したターン」の事前許可。preload(起動時注入)でも効くか、$ARGUMENTS が置換されるかは公式に明記がなく未確認。無人実行では確認が出る操作は失敗しうるので、使う前に実機で確かめる
  • 9つの役割は「人のチームの役割」をそのまま写した案。全部を最初から置かず、まず reviewer と sre と implementer の3つで始めて、必要になったら足す案もある。役割が増えるほど、委任の文面と受け入れ条件の質が結果を決める
  • prompt 型・agent 型のフック(LLM に判定させる)は使っていない。Bedrock でも使えるはずだが、判定のたびに推論費用がかかり、挙動の検証もしていないため、まずコマンド型で始める提案。公式も agent 型は experimental で「本番の運用には command 型を」と書いている

この節の出典

比較用: claude.ai のサブスクリプションで契約している場合の全部入り

ここまでの全部入りプランは Bedrock が前提でした。比較のために、claude.ai のサブスクリプション(Pro / Max / Team / Enterprise)で契約している場合の全部入りを1つだけ示します。Anthropic 側の仕組み(ルーティン・クラウドセッション・Code Review / Ultrareview・Channels・Artifacts・Claude Tag)が使えるので、Bedrock 版で自作していた部分の多くが既製品に置き換わります。代わりに、推論とクラウドセッションは Anthropic 側で動き、データは Anthropic が処理します(国内処理の要件がある案件には向きません)。シナリオ: アプリは AWS で動いていて、コードは GitHub、監視は CloudWatch、チームは Slack で会話している。各経路の部品は公式文書にあるもので、組み合わせは構成案です。

開発者は CLI・IDE・Desktop・Chrome 拡張・スマホから claude.ai に接続。claude.ai 側でルーティン(スケジュール / API / GitHub トリガー)・クラウドセッション・Code Review・Artifacts・Claude Tag が動き、自前でリモート化した MCP サーバー(構成案)で CloudWatch を読む。GitHub には PR / Issue(コメント)とブランチ保護、GitHub Actions。AWS 側ではアプリのログとメトリクスが CloudWatch に入り、Synthetics のカナリアが本番を叩き、アラームが SNS 経由で Lambda(ルーティンの /fire を POST)と Q Developer in chat applications(Slack 通知)に流れる。人の承認は PR のマージと本番適用。
サブスクリプション契約での全部入りの構成(構成案)。タップで原寸。draw.io の元ファイル: cob-sub-max.drawio / draw.io で開く

1. ログのアラート → 自動で原因調査

CloudWatch のアラーム(メトリクスフィルタ / ログ異常検知)→ SNS → Lambda → ルーティンの API トリガー(/fire に POST。アラート本文を text で渡す)→ クラウドセッションが起動し、リポジトリと CloudWatch(リモート公開した MCP サーバーをコネクタに登録するか、リポジトリの .mcp.json で起動。どちらも構成案)を読んで原因を調べ、調査結果を draft PR(公式の Alert triage の例の形)か既存の Issue へのコメントで返す。Issue の新規起票は構成案(クラウドセッションの組み込み GitHub ツールが文書で明記しているのは Issue の読み取り・PR 一覧・差分取得・コメント投稿。GraphQL は PR 用の固定セットなので、起票するなら gh api の REST)。人は PR とコメントを見て判断

部品: CloudWatch アラーム、SNS、Lambda、ルーティン(API トリガー)、GitHub の Issue / PR、CloudWatch を読む MCP サーバー(自前でリモート化してコネクタ登録、または .mcp.json。構成案)

  • ルーティンの文書に「監視ツールがエラーのしきい値で API エンドポイントを呼び、アラート本文を text で渡す。Claude がアラートを調査する」という例がそのまま載っている(Alert triage)。
  • text の中身は untrusted(信用しないデータ)として渡されるので、ルーティンの保存プロンプト側で「routine-fire-payload の中のアラートを調査せよ」と明示する必要がある。
  • CloudWatch を読む MCP サーバーは AWS Labs が GitHub で公開している(awslabs/mcp の cloudwatch-mcp-server)が、自身の文書で「LLM クライアントと同じホストでローカル実行のみ」としていて、AWS の認証情報を手元に要求する。ルーティンのコネクタは claude.ai に登録したリモート MCP なので、そのままでは使えない。使うなら、自前でリモート公開して認証を付けてコネクタに登録する(Team / Enterprise ではコネクタの追加は管理者のみ)か、リポジトリにコミットした .mcp.json で起動する(リポジトリが1つのルーティンに限る)。後者の認証は読み取り専用の IAM キーをクラウド環境の環境変数に置くことになるが(SSO は不可)、環境変数はその環境を使う全員が読め、公式は秘密情報を置かないよう警告している(Team / Enterprise には代わりの API credentials もまだない)。置くなら組織共有の環境ではなく個人の環境に限り、権限は対象のロググループとメトリクスの読み取りだけに絞る。いずれも構成案で、公式の手順はない。AWS の公式ドキュメントの範囲でもないので、採用前に中身と権限を確認する。
  • API 起動の上限は1ルーティンにつき 30 回/時、アカウント全体で 100 回/時で、超えると失敗する。アラームの連打に備えて、Lambda 側でまとめる・間引く(構成案)。SNS → Lambda は非同期で「少なくとも1回」届く方式のため重複しうるので、同じアラームの重複排除も Lambda 側で行う(AWS は関数を冪等にするよう勧めている)。

2. 毎日のスケジュールでパフォーマンス・ログの監視

ルーティン(スケジュールトリガー、毎朝)→ CloudWatch(Application Signals のメトリクス・Logs Insights のクエリ)を上と同じ MCP の経路で読み、前日比の異常・遅延・エラー率をまとめる → 公開済みの Artifact(スナップショット型)を再公開 → 要約を GitHub の Issue か Slack(Slack コネクタ。投稿は本人名義)へ。開くたびに最新データを引く型のボードは、人が最初に作って置いておく(公開したページから呼べるのは claude.ai のコネクタだけで .mcp.json のサーバーは呼べず、閲覧者も各自そのコネクタを接続している必要がある)

部品: ルーティン(スケジュール)、CloudWatch Application Signals / Logs Insights、MCP(リモート化したサーバー)、Artifacts、Slack コネクタ

  • ルーティンの実行は本人のアカウントの使用量と、1時間あたりの回数の上限(スケジュール実行は 100 回/時)に入る。チームで回すなら、担当者のアカウントで作る(ルーティンは個人に属し、チームで共有されない)。
  • スケジュールか Run now で始まった実行がルーティンの確認なしで再公開できる Artifact は、文書では5条件すべてを満たすもの: 自組織のもので自分が編集できる・公開リンクで共有していない・特定の人や組織に共有している場合は閲覧者が新しい版を自動では見ない設定・ページだけを公開し(添付なし)新しい版を上書きしない・コネクタ呼び出しのようにページの外に届く権限を持たない。つまり、チームに「常に最新版を共有」で配っていると毎朝の無人再公開は確認待ちで止まるので、要約は Issue / Slack で届け、ボードはスナップショット型にする。Team / Enterprise には Artifact のコネクタを有効にする管理者の設定がある。

3. 安定稼働チェッカ

CloudWatch Synthetics のカナリア(スケジュールで本番の URL と API を叩く)+ 毎朝のルーティンで「カナリアの失敗・SLO の消費・デプロイ後の回帰」を点検 → 異常があれば報告(既存 Issue へのコメントか draft PR。起票は上と同じく構成案)。デプロイ直後は CD パイプラインからルーティンの API トリガーを叩き、スモークチェックとログの回帰確認(公式の Deploy verification の例)

部品: CloudWatch Synthetics、Application Signals(SLO)、ルーティン(スケジュール + API)、CodePipeline / GitHub Actions からの呼び出し

  • 「安定稼働チェッカ」の中身は、カナリアと SLO という AWS 側の計測を Claude が読んで判断する形。計測そのものは AWS の機能に任せ、Claude は解釈と報告を担う。
  • SLO とカナリアの状態を読む経路: SLO 用のアラーム(SNS 経由)で受けるか、CloudWatch のメトリクスとして GetMetricData で読む。シナリオ1の cloudwatch-mcp-server に SLO やカナリア専用のツールはなく(IAM 権限もアラーム・メトリクス・ログの読み取りのみ)、AWS Labs には別に Application Signals 用の MCP サーバー(audit_slos とカナリア失敗の分析ツールを持つ)がある。いずれも構成案。

4. 開発時の品質向上

手元: フック(保存時の整形・禁止コマンドの遮断)、スキル(チームの手順書)、/code-review、Chrome 拡張で画面の動作確認、Computer use(Pro / Max)でアプリの操作確認、Ultrareview(/code-review ultra)でマージ前の深いレビュー。リモートコントロールで移動中もスマホから続き。クラウドセッションで並行作業

部品: フック、スキル、/code-review、Ultrareview、Chrome 拡張、Computer use、リモートコントロール、クラウドセッション

  • Computer use は Pro / Max のみ。Team / Enterprise では不可。

5. コードレビューの自動化

Team / Enterprise: Code Review(Claude の GitHub App)が PR にインラインでコメントとチェックを付ける。Pro / Max(Team / Enterprise でも可): GitHub Actions の claude-code-action を CLAUDE_CODE_OAUTH_TOKEN(claude setup-token で発行。4プランで使える)で動かし、@claude や PR で起動。加えてルーティンの GitHub トリガー(pull_request.opened)で、チーム独自の観点のレビューを別に走らせることもできる。マージは人(ブランチ保護)

部品: Code Review(GitHub App)、GitHub Actions + claude-code-action、ルーティン(GitHub トリガー)、ブランチ保護

  • Code Review は研究プレビューで Team / Enterprise のみ、ZDR の組織では不可。OAuth トークンは発行した人のサブスクリプションに紐づくので、組織で共有するなら Console の API キーを使うよう文書は案内している。

6. 通知と対話

AWS 側のアラームは SNS → Amazon Q Developer in chat applications で Slack へ。Claude への依頼は Claude Tag(Team / Enterprise。Slack の @Claude)か、Pro / Max の旧 Slack 連携。稼働中の手元セッションに外から出来事を流し込むなら Channels(研究プレビュー。Telegram・Discord など)

部品: SNS、Amazon Q Developer in chat applications、Claude Tag、Channels

Bedrock の全部入りとの違い

  • ゲートウェイ・MDM・自作の実行基盤(EventBridge → CodeBuild)が不要になる。代わりにルーティン・クラウドセッション・Code Review を使う
  • 推論もクラウドセッションも Anthropic 側で動く。国内処理の要件(jp. 限定)は満たせない。データの扱いは Anthropic の方針による。ZDR(Enterprise の標準には含まれず、適格な組織に Anthropic が個別に有効化するもの)を有効にするとクラウドセッション・Claude Tag・Artifacts・Remote Control(公式の一覧)と Code Review(機能ページ)が止まり、ルーティンもクラウドセッションとして動くので同じく使えなくなると考えられる(公式の一覧にルーティンの名は無い)。この全部入りの構成は ZDR とは両立しない
  • Slack・スマホ・リモートコントロール・Artifacts の共有が使える
  • 費用は Pro / Max が個人の定額、Team / Enterprise が席単位。上限を超えた分や Ultrareview は使用量クレジット。ルーティンは本人の使用量に入り、1時間あたりの回数上限がある
  • AWS 側(CloudWatch・SNS・Synthetics・Lambda)はどちらのプランでも同じ部品。違うのは「誰が Claude を起動し、どこで動くか」

守ること

  • 自動でやるのは調査・報告・PR の作成まで。マージと本番適用は人(ブランチ保護)。ルーティンの push 先は既定で claude/ ブランチだが、プロンプトで別のブランチを指示すると変わり、仕組みとしての限定ではないので、ブランチ保護(ルールセット)で守る。ただしルールは「ルーティンの作成者が接続した GitHub アクセス」に対して効くので、その人がバイパスできる立場(リポジトリ管理者など)なら push は止まらない。ルーティンはバイパス権限のないアカウントで作る
  • ルーティンのクラウド環境のネットワークは既定で Trusted(許可されたドメインだけ)だが、許可リストには *.amazonaws.com と *.api.aws が入っているので、CloudWatch の API には届く。要るのは認証情報で、クラウドセッションでは AWS SSO のような対話的な認証は使えないため、読み取り専用の IAM キーを環境変数に置くなどの判断が要る(環境変数はその環境の利用者全員が読めるので、公式は秘密情報を置かないよう警告している。シナリオ1の注を参照)。コネクタ経由の通信は Anthropic のサーバーを通るので許可リストは関係しない
  • ルーティンの API トリガーのトークンは Secrets Manager に置き、Lambda からだけ使う。/fire は研究プレビューの beta ヘッダーつきで、形が変わりうる
  • アラートの本文は信用しないデータとして扱う。/fire の text はルーティン側で routine-fire-payload として「信用しないデータ」の印付きで渡されるので、保存プロンプトで明示的に参照する。ただし実行中に MCP で読むログ本文はこの印の対象外(通常の扱い)なので、守りはコネクタと IAM の権限を読み取りに絞ることで担保する

この節の出典

GitHub Actions の代わりに AWS の Code シリーズで組む(構成案)

Claude Code の公式文書にある CI の手順は GitHub Actions(Bedrock 版あり)と GitLab CI/CD だけで、AWS の Code シリーズ(CodeBuild・CodePipeline・CodeCommit・CodeConnections)向けの公式手順はありません。ここでは、公式に書かれている部品だけを組み合わせた構成案を示します。部品: Claude Code の非対話モード(claude -p)と Bedrock 用の環境変数、CodeBuild の Webhook(GitHub の PR イベントで起動)とサービスロール、buildspec の Secrets Manager 連携と git の資格情報ヘルパー、CodeCommit の PR イベント(EventBridge)とコメント API、EventBridge Scheduler のテンプレート化ターゲット(CodeBuild StartBuild / ECS RunTask)。組み合わせ自体は公式文書にないので、使う前に動作確認が要ります。

GitHub の PR は CodeBuild の Webhook、CodeCommit の PR は EventBridge のルール、定期実行は EventBridge Scheduler から、いずれも CodeBuild のビルドを起動する。ビルドの中で Claude Code を入れて claude -p を実行し、サービスロールで bedrock-runtime(jp.)を呼び、Secrets Manager のトークンで PR にコメントを返す。GitHub のコメントでの起動は Webhook に無いので自作が要る。
AWS の Code シリーズで組む CI の構成(構成案)。タップで原寸。draw.io の元ファイル: cob-aws-ci.drawio / draw.io で開く

A. リポジトリが GitHub、CI を CodeBuild で

GitHub で PR が開く/更新される → CodeBuild の Webhook(PULL_REQUEST_CREATED / UPDATED)で起動 → buildspec が Claude Code を入れて claude -p を実行 → Bedrock(jp.)で推論 → 結果を GitHub の PR にコメント(GitHub のトークンを Secrets Manager から取得)

  • CodeBuild と GitHub のつなぎは接続(CodeConnections)・トークン(Secrets Manager 可)・OAuth アプリ。PR へのコメント投稿は GitHub の API(gh など)を自分で呼ぶ(GitHub Actions の claude-code-action のような既製品は無い)。PR 番号は CodeBuild の環境変数 CODEBUILD_WEBHOOK_TRIGGER(PR のときは pr/番号)から取れる。
  • 「@claude」というコメントをきっかけにしたい場合、CodeBuild の Webhook は PR の作成・更新・マージなど9種類のイベントだけでコメントのイベントは無い。選択肢は2つ: (1) GitHub App → API Gateway → Lambda → StartBuild を自作する、(2) CodeBuild 上で GitHub Actions のランナーを動かし(WORKFLOW_JOB_QUEUED)、issue_comment で起動するワークフローを CodeBuild の中で実行する(このランナーで claude-code-action の use_bedrock がサービスロールの資格情報で動くかは未確認)。
  • ループに注意: ビルドが修正を PR ブランチに push すると PULL_REQUEST_UPDATED が発生して再びビルドが起動する。公式の claude-code-action にはボットの投稿で起動しない仕組みがあるが、自作では CodeBuild の Webhook フィルター(ACTOR_ACCOUNT_ID や COMMIT_MESSAGE)でボットの push を除外する。

B. リポジトリも AWS(CodeCommit)で完結

CodeCommit で PR が開く/コメントが付く → EventBridge のルール(CodeCommit Pull Request State Change / Comment on Pull Request)→ CodeBuild を起動 → claude -p → Bedrock(jp.)→ aws codecommit post-comment-for-pull-request で PR にコメント

  • GitHub を使わないので、コードもコメントも AWS の中で完結する。ただし CodeCommit のコメントイベント(Comment on Pull Request)にはコメントの本文が入らない(commentId・pullRequestId・前後のコミット ID・投稿者の ARN など)。「@claude を含むコメントだけ」をルールで絞ることはできないので、全コメントでビルドを起動し、ビルドの中で aws codecommit get-comment で本文を取って判定する。
  • ループに注意: ビルド自身が post-comment-for-pull-request で投稿したコメントも同じイベントになるので、EventBridge のルールで callerUserArn がビルドのロールのものを除外する(assumed-role の ARN はセッション名がビルドごとに変わるので前方一致で除外する)。CodeCommit のコメントは 10,240 文字までなので、長いレビュー結果は切り詰めるか S3 に置いてリンクにする。
  • EventBridge から StartBuild に渡すとき、入力トランスフォーマーでイベントの値を環境変数の上書きとして渡す。PR の状態変化のイベントには pullRequestId・sourceCommit・destinationCommit・destinationReference があるが、コメントのイベントには pullRequestId・beforeCommitId・afterCommitId・commentId しかないので、ブランチ名は aws codecommit get-pull-request で取る。加えて StartBuild の sourceVersion に sourceCommit(または afterCommitId)を渡さないと PR の先頭が取り出されない(下の buildspec は Webhook 用の変数を使っているので、B ではこの渡し方に差し替える)。
  • CodeCommit は 2024年7月に新規受付を止め、2025年11月に一般提供に戻った経緯がある(AWS DevOps ブログ)。使う前に AWS の最新の案内を確かめる。

C. 定期実行(ルーティンの代わり)

EventBridge Scheduler(cron)→ テンプレート化ターゲットで CodeBuild の StartBuild(または ECS の RunTask)→ claude --bare -p → 結果を PR・S3・SNS へ

  • 手元のパソコンが要らない点で、claude.ai のルーティン(/schedule)に一番近い。CodePipeline を前に置けば、レビュー → 修正 → テストの段階を並べられる。
  • Scheduler から起動したビルドには Webhook の環境変数(CODEBUILD_WEBHOOK_*)が無いので、対象のブランチなどは StartBuild の環境変数の上書きで渡す。

buildspec.yml の例

version: 0.2
env:
  variables:
    CLAUDE_CODE_USE_BEDROCK: "1"
    AWS_REGION: ap-northeast-1
    ANTHROPIC_BEDROCK_REGION_PREFIX: jp
    ANTHROPIC_MODEL: jp.anthropic.claude-sonnet-4-6
    ANTHROPIC_DEFAULT_OPUS_MODEL: jp.anthropic.claude-opus-5-5
    ANTHROPIC_DEFAULT_SONNET_MODEL: jp.anthropic.claude-sonnet-4-6
    ANTHROPIC_DEFAULT_HAIKU_MODEL: jp.anthropic.claude-haiku-4-5-20251001-v1:0
    ANTHROPIC_DEFAULT_FABLE_MODEL: jp.anthropic.claude-opus-5-5   # 4つの別名を jp. に固定(最後は IAM で止める)
  secrets-manager:
    GITHUB_TOKEN: claude-ci/github-token:token     # パターン A のみ
  git-credential-helper: yes                       # 私設リポジトリの fetch / push に
phases:
  install:
    commands:
      - curl -fsSL https://claude.ai/install.sh | bash   # Node は不要(ネイティブ版)
      - export PATH="$HOME/.local/bin:$PATH"
  build:
    commands:
      # パターン A(GitHub の Webhook で起動)用。B・C では BASE と PR 番号を
      # StartBuild の環境変数の上書きで渡す(Webhook の変数は空になる)
      - BASE="${CODEBUILD_WEBHOOK_BASE_REF#refs/heads/}"
      - PR_NUMBER="${CODEBUILD_WEBHOOK_TRIGGER#pr/}"
      - git fetch --unshallow origin || true           # Git clone depth が浅いと merge base が無い
      - git fetch origin "$BASE:refs/remotes/origin/$BASE"
      - git diff "origin/$BASE"...HEAD > /tmp/pr.diff
      - |
        claude --bare -p "次の差分をレビューし、バグ・セキュリティ・回帰の疑いを、根拠の行番号つきで日本語で列挙してください。差分は /tmp/pr.diff にあります。" \
          --allowedTools "Read" --output-format json > /tmp/review.json
      - jq -r '.result' /tmp/review.json > /tmp/review.md
      # パターン A: GitHub の PR にコメント(PR 番号は Webhook の環境変数や payload から取る)
      # - gh pr comment "$PR_NUMBER" --body-file /tmp/review.md
      # パターン B: CodeCommit の PR にコメント(10,240 文字まで。PR_ID などは EventBridge から渡す)
      # - aws codecommit post-comment-for-pull-request --pull-request-id "$PR_ID" --repository-name "$REPO" \
      #     --before-commit-id "$BEFORE" --after-commit-id "$AFTER" --content "$(cat /tmp/review.md)"

buildspec の例(構成案。パターン A 用)。環境変数の名前・claude -p の引数・Secrets Manager と git-credential-helper の書き方はそれぞれの公式文書にあるものを使っていますが、全体は動かして確かめていません。未確認の点: CodeBuild の Git clone depth の既定値、クローン時の refspec(origin の追跡ブランチが作られるか)、私設リポジトリで fetch に資格情報ヘルパーが要るか。--bare はフック・スキル・MCP・CLAUDE.md を読まないので、リポジトリの CLAUDE.md の約束事を効かせたいときは外します(その場合はリポジトリの設定が CI でも動くことを理解したうえで)。

権限(IAM)

  • CodeBuild のサービスロール: Claude Code の文書の IAM ポリシーと同じ内容(bedrock:InvokeModel・InvokeModelWithResponseStream・ListInferenceProfiles・GetInferenceProfile と、aws-marketplace の ViewSubscriptions・Subscribe)を、jp. の推論プロファイルと ap-northeast-1 / ap-northeast-3 の foundation-model に限定(上の「国内で完結させる」の IAM と同じ形)。global は SCP で Deny。
  • Secrets Manager の GetSecretValue(パターン A のトークン)。CodeConnections を使うなら、その接続を使う権限。CodeCommit なら codecommit:GetComment(本文の取得)と PostCommentForPullRequest、修正を push するなら GitPush 相当の権限。
  • CloudWatch Logs への書き込み(CodeBuild の既定)。CloudTrail には Bedrock の呼び出しと処理リージョンが残る。

GitHub Actions(Bedrock 版)との違い

きっかけ

GitHub Actions
@claude のコメント、PR、Issue(公式の claude-code-action)
AWS の Code シリーズ
PR の作成・更新(CodeBuild の Webhook)。CodeCommit ならコメントのイベントも EventBridge で拾える(本文は入らないので中で判定)。GitHub のコメント起動は自作か、CodeBuild 上の GitHub Actions ランナー

AWS の権限の渡し方

GitHub Actions
GitHub の OIDC → IAM ロール(公式手順あり)
AWS の Code シリーズ
CodeBuild のサービスロール(AWS の中なので OIDC 不要)

PR への返信

GitHub Actions
claude-code-action が投稿
AWS の Code シリーズ
自分で API を呼ぶ(gh / curl / aws codecommit)

公式の対応

GitHub Actions
Claude Code の文書に Bedrock 版の手順あり
AWS の Code シリーズ
無し(構成案)

向いている場合

GitHub Actions
リポジトリが GitHub で、手早く始めたい
AWS の Code シリーズ
CI も AWS の中に置きたい、CodeCommit を使っている、Code シリーズの運用に慣れている

この節の出典

機能の解説: 何のことか・いつ使うか

星取り表や本文に出てくる機能を、開発に明るくない人にも分かるように「何のことか」「いつ使うか」で説明します。各項目の原典は、その機能の公式ドキュメントの要約文(多くは冒頭の一文。英語、リンクとコード書式だけ除いた原文)と URL です。説明文はこのページで書いたもので、原文の翻訳ではありません。

星取り表の機能名(点線つき)をタップすると、ここの該当項目に移動します。各項目には「その機能が何をするか」を1枚で表した図を、各グループの先頭には Claude(claude.ai の契約 / Anthropic の API)で使う場合と Bedrock で使う場合を左右に並べた構成図を置きました(紫 = Anthropic 側、橙 = AWS 側、緑 = 手元で動く、赤の破線 = 使えない、青の破線 = 代わりの手段)。

Claude Code の基本

手元のパソコンで動く Claude Code の部品(サブエージェント・フック・スキル・CLAUDE.md・MCP・WebFetch・/loop)は左右で同じ。違いは推論の送り先が api.anthropic.com か bedrock-runtime(jp. の推論プロファイル → Mantle エンジン)か。WebFetch の安全確認は両方とも api.anthropic.com にホスト名だけを送る。
手元で動く機能の構成(左: Claude、右: Bedrock)。タップで原寸。draw.io の元ファイル: cob-local.drawio / draw.io で開く

Claude Code(CLI・IDE の拡張)

Claude Code(CLI・IDE の拡張) の図。黒い画面(ターミナル)や VS Code などのエディタの中で動く、コードを書く AI の道具です。チャットで答えるだけでなく、ファイルを読み書きし、コマンドを実行して作業を進めます。
タップで原寸。claude-code.drawio / draw.io で開く
何のことか
黒い画面(ターミナル)や VS Code などのエディタの中で動く、コードを書く AI の道具です。チャットで答えるだけでなく、ファイルを読み書きし、コマンドを実行して作業を進めます。
いつ使うか
既存のプログラムの修正、新しい機能の追加、エラーの原因調べ、テストの作成など、開発の作業全般。
原典
Overview ↗「Claude Code is an agentic coding tool that reads your codebase, edits files, runs commands, and integrates with your development tools.」

サブエージェント

サブエージェント の図。本体の Claude が、下請けの Claude を呼んで一部の作業を任せる仕組みです。調べ物を分担させたり、別の視点でレビューさせたりできます。
タップで原寸。subagent.drawio / draw.io で開く
何のことか
本体の Claude が、下請けの Claude を呼んで一部の作業を任せる仕組みです。調べ物を分担させたり、別の視点でレビューさせたりできます。
いつ使うか
大きな調査を並列で進めたい、本体の会話を長くしたくない、レビュー役を分けたいとき。
原典
Create custom subagents ↗「Create and use specialized AI subagents in Claude Code for task-specific workflows and improved context management.」

フック

フック の図。「ファイルを直したら自動で整形する」「作業が終わったら通知する」のように、決まったタイミングで自動的にコマンドを走らせる仕組みです。
タップで原寸。hooks.drawio / draw.io で開く
何のことか
「ファイルを直したら自動で整形する」「作業が終わったら通知する」のように、決まったタイミングで自動的にコマンドを走らせる仕組みです。
いつ使うか
人に任せると忘れがちな決まりごと(整形・検査・禁止操作の確認)を機械的に守らせたいとき。
原典
Automate actions with hooks ↗「Run shell commands automatically when Claude Code edits files, finishes tasks, or needs input.」

スキル

スキル の図。手順書を Claude に覚えさせる仕組みです。SKILL.md というファイルに手順や知識を書いておくと、/名前 で呼び出せ、関連する話題では Claude が自分で読みます。
タップで原寸。skills.drawio / draw.io で開く
何のことか
手順書を Claude に覚えさせる仕組みです。SKILL.md というファイルに手順や知識を書いておくと、/名前 で呼び出せ、関連する話題では Claude が自分で読みます。
いつ使うか
チームで同じ手順(リリース手順、レビュー観点、資料の書き方)を毎回同じ品質でやらせたいとき。
原典
Extend Claude with skills ↗「Create, manage, and share skills to extend Claude's capabilities in Claude Code. Includes custom commands and bundled skills.」

CLAUDE.md

CLAUDE.md の図。プロジェクトの約束事を書いておくファイルです。Claude は作業の前にこれを読みます。「このデータは入れない」「出典を付ける」のような運用ルールもここに書けます。ただし強制力はなく、守られないこともあります。
タップで原寸。claude-md.drawio / draw.io で開く
何のことか
プロジェクトの約束事を書いておくファイルです。Claude は作業の前にこれを読みます。「このデータは入れない」「出典を付ける」のような運用ルールもここに書けます。ただし強制力はなく、守られないこともあります。
いつ使うか
リポジトリごとの決まりごとを、毎回説明せずに Claude に伝えたいとき。
原典
How Claude remembers your project ↗「Give Claude persistent instructions with CLAUDE.md or AGENTS.md files, and let Claude accumulate learnings automatically with auto memory.」

MCP サーバー(自分で設定するもの)

MCP サーバー(自分で設定するもの) の図。Claude に外部の道具(社内のデータベース、チケット管理、検索サービスなど)を使わせるための接続口です。MCP は共通の規格の名前で、道具ごとに「サーバー」を設定します。
タップで原寸。mcp.drawio / draw.io で開く
何のことか
Claude に外部の道具(社内のデータベース、チケット管理、検索サービスなど)を使わせるための接続口です。MCP は共通の規格の名前で、道具ごとに「サーバー」を設定します。
いつ使うか
Claude に社内システムを見せたい、Web 検索やブラウザ操作など標準で無い道具を足したいとき。Bedrock で検索を補う手段でもあります。
原典
Connect Claude Code to tools via MCP ↗「Learn how to connect Claude Code to your tools with the Model Context Protocol.」

プラグイン

プラグイン の図。スキル・フック・MCP の設定などをひとまとめにして配れる形です。マーケットプレイス(配布所)から入れられます。
タップで原寸。plugins.drawio / draw.io で開く
何のことか
スキル・フック・MCP の設定などをひとまとめにして配れる形です。マーケットプレイス(配布所)から入れられます。
いつ使うか
複数の仕組みをまとめてチーム全員に配りたいとき。
原典
Plugins overview ↗「Understand what a Claude Code plugin is, when you need one instead of a standalone skill or MCP server, and which page to read to install or create one.」

WebFetch(URL を指定して取得)

WebFetch(URL を指定して取得) の図。指定した Web ページの中身を Claude が読み取る機能です。自分で検索はしないので、読む URL が分かっている必要があります(Bedrock では検索が無いので、人が示すのが確実です)。読む前にホスト名(サイトの名前の部分。ページの中身や URL 全体ではない)だけを Anthropic に送って安全確認をします(公式の Data usage の文書)。
タップで原寸。webfetch.drawio / draw.io で開く
何のことか
指定した Web ページの中身を Claude が読み取る機能です。自分で検索はしないので、読む URL が分かっている必要があります(Bedrock では検索が無いので、人が示すのが確実です)。読む前にホスト名(サイトの名前の部分。ページの中身や URL 全体ではない)だけを Anthropic に送って安全確認をします(公式の Data usage の文書)。
いつ使うか
公式ドキュメントや仕様書など、場所が分かっている資料を根拠にさせたいとき。
原典
Tools reference ↗「Complete reference for the tools Claude Code can use, including permission requirements and per-tool behavior.」

Auto mode

Auto mode の図。Claude が実行しようとする操作を、別の判定役が「安全か」を見て、安全なものは人に確認せず進める動き方です。Bedrock でも対応モデル(Sonnet 5 以降・Opus 4.7 以降・Fable 系)なら使えます。
タップで原寸。auto-mode.drawio / draw.io で開く
何のことか
Claude が実行しようとする操作を、別の判定役が「安全か」を見て、安全なものは人に確認せず進める動き方です。Bedrock でも対応モデル(Sonnet 5 以降・Opus 4.7 以降・Fable 系)なら使えます。
いつ使うか
いちいち「実行していい?」の確認に答えたくない、長い作業を任せたいとき。何を信頼するかは本人の設定でも管理者の設定でも決められます。
原典
Configure auto mode ↗「Tell the auto mode classifier which repos, buckets, and domains your organization trusts.」

プロンプトキャッシュ(5分・1時間)

プロンプトキャッシュ(5分・1時間) の図。毎回同じ前置き(プロジェクトの説明や長い資料)を AI に送り直す代わりに、一定時間覚えておいてもらう仕組みです。料金と待ち時間が減ります。1時間版は1時間までの中断なら効きますが、代わりに書き込みが割高です。Bedrock ではキャッシュは AWS 側に置かれ、対応はモデルごとに違います。
タップで原寸。prompt-cache.drawio / draw.io で開く
何のことか
毎回同じ前置き(プロジェクトの説明や長い資料)を AI に送り直す代わりに、一定時間覚えておいてもらう仕組みです。料金と待ち時間が減ります。1時間版は1時間までの中断なら効きますが、代わりに書き込みが割高です。Bedrock ではキャッシュは AWS 側に置かれ、対応はモデルごとに違います。
いつ使うか
同じプロジェクトで何度もやりとりするとき(Claude Code は自動で使います)。
原典
How Claude Code uses prompt caching ↗「Claude Code manages prompt caching automatically.」

/loop(セッション中の定期実行)

/loop(セッション中の定期実行) の図。いま開いている Claude Code の画面の中で、同じ指示を一定間隔で繰り返させる機能です。画面を閉じると止まります。
タップで原寸。loop.drawio / draw.io で開く
何のことか
いま開いている Claude Code の画面の中で、同じ指示を一定間隔で繰り返させる機能です。画面を閉じると止まります。
いつ使うか
ビルド(プログラムを実行できる形に組み立てる処理)の完了待ち、PR のレビュー状況の見張りなど、作業中に繰り返し確認したいとき。
原典
Run prompts on a schedule ↗「Use /loop and the cron scheduling tools to run prompts repeatedly, poll for status, or set one-time reminders within a Claude Code session.」

/code-review(手元のレビュー)

/code-review(手元のレビュー) の図。いまの変更内容を Claude にレビューさせる組み込みの命令です。手元の Claude Code の中で動くので、どのログイン方法でも使えます(クラウドで動く ultra は除く)。
タップで原寸。code-review-local.drawio / draw.io で開く
何のことか
いまの変更内容を Claude にレビューさせる組み込みの命令です。手元の Claude Code の中で動くので、どのログイン方法でも使えます(クラウドで動く ultra は除く)。
いつ使うか
PR(変更をチームに見せて取り込んでもらう申請)を出す前に、バグや見落としを一度チェックさせたいとき。
原典
Code Review(Review a diff locally) ↗「The /code-review command reviews a diff in your terminal without installing the GitHub App. It reports correctness bugs.」

GitHub Actions で動かす

GitHub Actions で動かす の図。GitHub のコメントで @claude と書くと、GitHub 側の自動処理の中で Claude Code が動いて、修正や PR 作成をする仕組みです。手元のパソコンは要りません。
タップで原寸。github-actions.drawio / draw.io で開く
何のことか
GitHub のコメントで @claude と書くと、GitHub 側の自動処理の中で Claude Code が動いて、修正や PR 作成をする仕組みです。手元のパソコンは要りません。
いつ使うか
PR のレビューや、Issue(課題の記録)からの修正を自動化したいとき。Bedrock でも公式手順があります。
原典
Claude Code GitHub Actions ↗「Run Claude Code in GitHub Actions workflows to respond to @claude mentions, automate tasks, and turn issues into pull requests」

Anthropic のサーバー側の機能(Bedrock では使えないもの)

左では Claude の推論から Anthropic の検索バックエンドに検索語が送られ、結果が返る。Fast mode・Advisor・Channels も Anthropic 側にある。右の Bedrock では推論だけが Mantle エンジンにあり、Web 検索・Fast mode・Advisor・Channels は使えない。代わりに手元の検索 MCP サーバーから外部の検索事業者に検索語を送る。
Anthropic のサーバー側の機能の構成(左: Claude、右: Bedrock)。タップで原寸。draw.io の元ファイル: cob-server.drawio / draw.io で開く

Web 検索(WebSearch)

Web 検索(WebSearch) の図。Claude が自分で検索語を決めてインターネットを検索し、見つけたページを根拠に答える機能です。検索そのものは Anthropic のサーバーで行われます。
タップで原寸。websearch.drawio / draw.io で開く
何のことか
Claude が自分で検索語を決めてインターネットを検索し、見つけたページを根拠に答える機能です。検索そのものは Anthropic のサーバーで行われます。
いつ使うか
どこに情報があるか分からないことを調べさせたいとき。出典の URL が付くので、答えの確認がしやすくなります。
原典
Tools reference(WebSearch tool behavior) ↗「WebSearch runs a query against Anthropic's web search backend and returns result titles and URLs. It doesn't fetch the result pages.」

Fast mode

Fast mode の図。同じモデルの答えを、割増料金で速く出させるモードです。
タップで原寸。fast-mode.drawio / draw.io で開く
何のことか
同じモデルの答えを、割増料金で速く出させるモードです。
いつ使うか
対話のテンポを優先したいとき。Anthropic の API 側だけの機能です。
原典
Speed up responses with fast mode ↗「Get faster Opus responses in Claude Code by toggling fast mode.」

Advisor

Advisor の図。普段は速いモデルに作業させ、難しい判断のところだけ、より賢いモデルに相談させる仕組みです。
タップで原寸。advisor.drawio / draw.io で開く
何のことか
普段は速いモデルに作業させ、難しい判断のところだけ、より賢いモデルに相談させる仕組みです。
いつ使うか
長い作業を安く速く進めつつ、要所の判断の質を落としたくないとき。
原典
Escalate hard decisions with the advisor tool ↗「Pair your main model with a stronger advisor model that Claude consults at key moments during a task.」

Channels

Channels の図。Telegram・Discord・iMessage などのチャット(研究プレビュー)や、監視ツールからの通知を、動いている Claude Code のセッションに流し込む仕組みです。自作の受け口も作れます。
タップで原寸。channels.drawio / draw.io で開く
何のことか
Telegram・Discord・iMessage などのチャット(研究プレビュー)や、監視ツールからの通知を、動いている Claude Code のセッションに流し込む仕組みです。自作の受け口も作れます。
いつ使うか
CI(コードを自動で検査・ビルドする仕組み)の結果やアラートを受け取って Claude に対応させたいとき。
原典
Push events into a running session with channels ↗「Use channels to push messages, alerts, and webhooks into your Claude Code session from an MCP server.」

claude.ai のアカウントが前提の機能

左ではスマホやブラウザが claude.ai のクラウドにつながり、クラウドセッション・ルーティン・Ultrareview・Artifacts を使い、リモートコントロールで手元のセッションと同期する。右の Bedrock ではこれらは使えず、代わりに SSH + tmux、GitHub Actions、EventBridge Scheduler → ECS Fargate、手元の /loop と /code-review、S3 + CloudFront を使う。
claude.ai のアカウントが前提の機能の構成(左: Claude、右: Bedrock)。タップで原寸。draw.io の元ファイル: cob-account.drawio / draw.io で開く

リモートコントロール

リモートコントロール の図。手元のパソコンで動いている Claude Code を、スマホやブラウザから続きで操作する機能です。通知も届きます。パソコンは起動したままにします。
タップで原寸。remote-control.drawio / draw.io で開く
何のことか
手元のパソコンで動いている Claude Code を、スマホやブラウザから続きで操作する機能です。通知も届きます。パソコンは起動したままにします。
いつ使うか
席を離れても作業の続きを指示したい、移動中にスマホから進めたいとき。
原典
Continue local sessions from any device with Remote Control ↗「Continue a local Claude Code session from your phone, tablet, or any browser using Remote Control. Works with claude.ai/code and the Claude mobile app.」

クラウドセッション・スマホの Claude Code

クラウドセッション・スマホの Claude Code の図。手元のパソコンを使わず、Anthropic のクラウド上でリポジトリを操作させる形です。ブラウザやスマホから始められます。
タップで原寸。cloud-sessions.drawio / draw.io で開く
何のことか
手元のパソコンを使わず、Anthropic のクラウド上でリポジトリを操作させる形です。ブラウザやスマホから始められます。
いつ使うか
パソコンを開けない場面で作業を任せたい、複数の作業を並行で走らせたいとき。
原典
Use Claude Code in the cloud ↗「Run Claude Code sessions in the cloud from your browser, phone, Desktop app, or terminal, move them with --cloud and --teleport, and auto-fix pull requests.」

Slack 連携

Slack 連携 の図。Slack の投稿から Claude Code に作業を頼める仕組みです。裏ではクラウドセッションが動きます。ただしこのページの版は個人の Pro / Max 向けの旧版で、Claude Tag につないだワークスペースでは動きません。組織で使うなら Claude Tag(下の項目)です。
タップで原寸。slack.drawio / draw.io で開く
何のことか
Slack の投稿から Claude Code に作業を頼める仕組みです。裏ではクラウドセッションが動きます。ただしこのページの版は個人の Pro / Max 向けの旧版で、Claude Tag につないだワークスペースでは動きません。組織で使うなら Claude Tag(下の項目)です。
いつ使うか
個人の Pro / Max で、Slack で会話しながらその場で修正を頼みたいとき。
原典
Claude Code in Slack ↗「Delegate coding tasks from Slack. This earlier version answers channel mentions only from Pro and Max accounts in workspaces not connected to Claude Tag.」

Claude Tag

Claude Tag の図。Slack の中で、組織の共有の Claude として @Claude を使える仕組みです。管理者がアクセスを決めます。Team / Enterprise のみで、Bedrock などの他社基盤では使えません。
タップで原寸。claude-tag.drawio / draw.io で開く
何のことか
Slack の中で、組織の共有の Claude として @Claude を使える仕組みです。管理者がアクセスを決めます。Team / Enterprise のみで、Bedrock などの他社基盤では使えません。
いつ使うか
Team / Enterprise の組織で、Slack から Claude に仕事を渡したいとき。
原典
Work with Claude Tag ↗「Claude Tag puts Claude in your Slack channels with admin-governed access.」

/schedule(ルーティン)

/schedule(ルーティン) の図。決めた時刻、API の呼び出し、GitHub のできごとをきっかけに、クラウドで Claude Code を自動で動かす仕組みです。手元のパソコンを閉じていても動きます。
タップで原寸。routines.drawio / draw.io で開く
何のことか
決めた時刻、API の呼び出し、GitHub のできごとをきっかけに、クラウドで Claude Code を自動で動かす仕組みです。手元のパソコンを閉じていても動きます。
いつ使うか
毎朝の依存関係の点検、定期的なレポート作成など、無人で回したい仕事。
原典
Automate work with routines ↗「Put Claude Code on autopilot. Define routines that run on a schedule, trigger on API calls, or react to GitHub events from cloud infrastructure.」

Ultrareview

Ultrareview の図。クラウド上で複数の Claude が手分けして、ブランチ(作業中の変更のまとまり)や PR のバグを深く探し、見つけたものを検証までするレビューです。
タップで原寸。ultrareview.drawio / draw.io で開く
何のことか
クラウド上で複数の Claude が手分けして、ブランチ(作業中の変更のまとまり)や PR のバグを深く探し、見つけたものを検証までするレビューです。
いつ使うか
重要な変更をマージする前に、人のレビューに加えて念入りに調べたいとき。
原典
Find bugs with ultrareview ↗「Run a deep, multi-agent code review in the cloud with /code-review ultra to find and verify bugs before you merge.」

Chrome 拡張(Claude in Chrome)

Chrome 拡張(Claude in Chrome) の図。手元の Chrome ブラウザを Claude が操作する機能です。ログイン済みの画面をそのまま見たり、フォームに入力したりできます。
タップで原寸。chrome.drawio / draw.io で開く
何のことか
手元の Chrome ブラウザを Claude が操作する機能です。ログイン済みの画面をそのまま見たり、フォームに入力したりできます。
いつ使うか
作った Web 画面の動作確認、ブラウザの中のエラー調査、画面からのデータ取り出し。
原典
Use Claude Code with Chrome ↗「Connect Claude Code to your Chrome browser to test web apps, debug with console logs, automate form filling, and extract data from web pages.」

Computer use

Computer use の図。Claude が画面を見て、マウスとキーボードを動かし、アプリを操作する機能です。CLI 版は macOS のみ・Pro / Max のみの研究プレビューです。
タップで原寸。computer-use.drawio / draw.io で開く
何のことか
Claude が画面を見て、マウスとキーボードを動かし、アプリを操作する機能です。CLI 版は macOS のみ・Pro / Max のみの研究プレビューです。
いつ使うか
ブラウザ以外のアプリの動作確認や、画面操作の自動化。
原典
Let Claude use your computer from the CLI ↗「Enable computer use in the Claude Code CLI so Claude can open apps, click, type, and see your screen on macOS.」

Artifacts

Artifacts の図。Claude Code が作った Web ページ(報告書・ダッシュボードなど)を、claude.ai の URL で公開・共有できる仕組みです。
タップで原寸。artifacts.drawio / draw.io で開く
何のことか
Claude Code が作った Web ページ(報告書・ダッシュボードなど)を、claude.ai の URL で公開・共有できる仕組みです。
いつ使うか
作業の結果をチームや客先に、リンク1つで見せたいとき(Team / Enterprise では公開リンクは既定でオフで、Owner が有効にします)。
原典
Share session output as artifacts ↗「Artifacts turn Claude Code's work into live, interactive pages on claude.ai that you can keep private, share with your organization, or publish to a public link.」

音声入力

音声入力 の図。キーボードの代わりに、声で指示を出す機能です。
タップで原寸。voice.drawio / draw.io で開く
何のことか
キーボードの代わりに、声で指示を出す機能です。
いつ使うか
長い指示を打つのが面倒なとき。
原典
Voice dictation ↗「Speak your prompts in the Claude Code CLI with hold-to-record or tap-to-record voice dictation.」

claude.ai のコネクタ・同期されるスキルとプラグイン

claude.ai のコネクタ・同期されるスキルとプラグイン の図。claude.ai の画面で接続した外部サービス(Google Drive など)や、アカウントに入れたスキル・プラグインが、Claude Code にも自動で出てくる仕組みです。
タップで原寸。connectors.drawio / draw.io で開く
何のことか
claude.ai の画面で接続した外部サービス(Google Drive など)や、アカウントに入れたスキル・プラグインが、Claude Code にも自動で出てくる仕組みです。
いつ使うか
個人の claude.ai の設定を、そのまま Claude Code でも使いたいとき。
原典
Connect Claude Code to tools via MCP(Use MCP servers from claude.ai) ↗「If you've logged into Claude Code with a claude.ai account, MCP servers you've added in claude.ai, known as connectors, are automatically available in Claude Code」

管理と運用

左では claude.ai の管理コンソールからサーバー管理設定・モデル・支出上限・SSO を配り、使用量ダッシュボードで見る。右の Bedrock では管理設定ファイルか Claude apps gateway で配り、IAM Identity Center と IAM / SCP で権限を絞り、OTEL → CloudWatch、CloudTrail、Cost Explorer で見る。ダッシュボードと分析 API は使えない。
管理と運用の構成(左: Claude、右: Bedrock)。タップで原寸。draw.io の元ファイル: cob-admin.drawio / draw.io で開く

使用量ダッシュボード・分析 API

使用量ダッシュボード・分析 API の図。誰がどれだけ使ったか、どのくらいコードが作られたかを、管理者が画面や API で見られる機能です。
タップで原寸。analytics.drawio / draw.io で開く
何のことか
誰がどれだけ使ったか、どのくらいコードが作られたかを、管理者が画面や API で見られる機能です。
いつ使うか
導入の効果を測りたい、費用を部署ごとに把握したいとき。
原典
Track team usage with analytics ↗「View Claude Code usage metrics, track adoption, and measure engineering velocity in the analytics dashboard.」

OpenTelemetry のメトリクス

OpenTelemetry のメトリクス の図。利用量(トークン=AI が読み書きする文字のかたまりの数・概算コスト・モデル)を、OpenTelemetry という標準の受け口を通して自分たちの監視基盤(たとえば CloudWatch)に送る仕組みです。ダッシュボードが使えない環境での代わりになります。
タップで原寸。otel.drawio / draw.io で開く
何のことか
利用量(トークン=AI が読み書きする文字のかたまりの数・概算コスト・モデル)を、OpenTelemetry という標準の受け口を通して自分たちの監視基盤(たとえば CloudWatch)に送る仕組みです。ダッシュボードが使えない環境での代わりになります。
いつ使うか
Bedrock など、Anthropic の管理画面が無い環境で利用量を見たいとき。
原典
Monitoring ↗「Learn how to enable and configure OpenTelemetry for Claude Code.」

管理設定(サーバー管理設定・管理設定ファイル)

管理設定(サーバー管理設定・管理設定ファイル) の図。管理者が「使えるモデル」「許可・禁止する操作」などを決めて、全員の Claude Code に配る仕組みです。claude.ai の管理画面から配る形と、ファイルを各パソコンに置く形があります。
タップで原寸。managed-settings.drawio / draw.io で開く
何のことか
管理者が「使えるモデル」「許可・禁止する操作」などを決めて、全員の Claude Code に配る仕組みです。claude.ai の管理画面から配る形と、ファイルを各パソコンに置く形があります。
いつ使うか
チーム全員に同じルールを強制したいとき。
原典
Deploy managed settings ↗「Deploy managed settings to every developer's machine: delivery mechanisms per OS, how Claude Code combines managed sources, and how to verify enforcement.」

支出上限

支出上限 の図。使いすぎを防ぐために、組織・グループ・個人ごとに使える金額の上限を決める機能です。
タップで原寸。spend-limits.drawio / draw.io で開く
何のことか
使いすぎを防ぐために、組織・グループ・個人ごとに使える金額の上限を決める機能です。
いつ使うか
予算を超えないようにしたい、試用の人には小さい枠にしたいとき。
原典
Manage costs effectively ↗「Track token usage, set team spend limits, and reduce Claude Code costs with context management, model selection, extended thinking settings, and preprocessing hooks.」

社内 SSO でサインイン

社内 SSO でサインイン の図。会社のアカウント(Microsoft Entra ID・Okta など)でログインし、個人に API キーや AWS の鍵を配らない形です。退職時は会社のアカウントを止めれば、ゲートウェイ経由ならセッションの有効期限(既定1時間)以内に使えなくなります。
タップで原寸。sso.drawio / draw.io で開く
何のことか
会社のアカウント(Microsoft Entra ID・Okta など)でログインし、個人に API キーや AWS の鍵を配らない形です。退職時は会社のアカウントを止めれば、ゲートウェイ経由ならセッションの有効期限(既定1時間)以内に使えなくなります。
いつ使うか
鍵の管理をなくしたい、入退社に合わせて確実に止めたいとき。
原典
Claude apps gateway for Amazon Bedrock, Claude Platform on AWS, Google Cloud, and Microsoft Foundry ↗「Developers sign in with your corporate identity provider (IdP) instead of holding API keys or cloud credentials.」

Claude apps gateway

Claude apps gateway の図。自社の中に置く中継サーバーです。開発者は会社のアカウントでここにログインし、ここが Bedrock などに代わりに問い合わせます。鍵の集中管理、グループごとの設定配布、支出上限ができます。
タップで原寸。gateway.drawio / draw.io で開く
何のことか
自社の中に置く中継サーバーです。開発者は会社のアカウントでここにログインし、ここが Bedrock などに代わりに問い合わせます。鍵の集中管理、グループごとの設定配布、支出上限ができます。
いつ使うか
チームで Bedrock を使うとき。鍵を配らず、ルールと費用を一か所で管理したいとき。
原典
Claude apps gateway for Amazon Bedrock, Claude Platform on AWS, Google Cloud, and Microsoft Foundry ↗「Run Claude Code through Amazon Bedrock, Claude Platform on AWS, Google Cloud, or Microsoft Foundry behind a self-hosted gateway with SSO sign-in, per-group model access, and OTLP telemetry.」

claude -p(非対話モード)

claude -p(非対話モード) の図。人が対話せずに、スクリプトや自動処理の中から Claude Code を1回だけ動かす形です。
タップで原寸。headless.drawio / draw.io で開く
何のことか
人が対話せずに、スクリプトや自動処理の中から Claude Code を1回だけ動かす形です。
いつ使うか
CI(自動の検査・ビルド)や定期実行の中で Claude に作業させたいとき。上の構成案にある、AWS のスケジューラ(EventBridge)からコンテナ(Fargate)を起動して動かす無人実行の中身がこれです。
原典
Run Claude Code programmatically ↗「Use the Agent SDK to run Claude Code programmatically from the CLI, Python, or TypeScript.」

サンドボックス

サンドボックス の図。Claude が実行するコマンドが触れるファイルや通信先を、あらかじめ枠で区切る仕組みです。
タップで原寸。sandbox.drawio / draw.io で開く
何のことか
Claude が実行するコマンドが触れるファイルや通信先を、あらかじめ枠で区切る仕組みです。
いつ使うか
万一おかしな操作をしても、被害を枠の中に留めたいとき。
原典
Configure the sandboxed Bash tool ↗「Restrict the files and network hosts Claude Code's shell commands can reach with the built-in sandbox.」

デスクトップアプリ

左の通常版は claude.ai にログインし、会話の保存・共有・スマホ・Dispatch・音声が使える。右の Claude Desktop on 3P は会話とメモリを端末内に保存し、MDM などで設定を配り、Claude apps gateway か直接 bedrock-runtime に推論を送る。Web 検索は同梱の websearch サーバー経由。スマホ・Web・音声・Computer use・共有・Claude Tag は使えない。
デスクトップアプリの構成(左: 通常版、右: Desktop on 3P)。タップで原寸。draw.io の元ファイル: cob-desktop.drawio / draw.io で開く

Claude Desktop(Chat・Cowork・Code)

Claude Desktop(Chat・Cowork・Code) の図。Claude のデスクトップアプリです。Chat は会話、Cowork はファイルや資料を扱う作業、Code は Claude Code を画面で使う部分です。
タップで原寸。desktop.drawio / draw.io で開く
何のことか
Claude のデスクトップアプリです。Chat は会話、Cowork はファイルや資料を扱う作業、Code は Claude Code を画面で使う部分です。
いつ使うか
黒い画面に慣れていない人が、画面操作で Claude Code を使いたいとき。
原典
Desktop application ↗「Get more out of Claude Code Desktop: parallel sessions with Git isolation, drag-and-drop pane layout, integrated terminal and file editor, side chats, computer use, Dispatch sessions from your phone, visual diff review, app previews, PR monitoring, connectors, and enterprise configuration.」

Cowork

Cowork の図。コードに限らず、文書・表・調べ物などの作業を、手元のファイルを使いながら Claude に任せる作業スペースです。
タップで原寸。cowork.drawio / draw.io で開く
何のことか
コードに限らず、文書・表・調べ物などの作業を、手元のファイルを使いながら Claude に任せる作業スペースです。
いつ使うか
エンジニア以外の人が、資料作成や調査を Claude にやらせたいとき。
原典
Overview(Cowork の文書) ↗「Learn about Cowork, Anthropic's agentic workspace」

Claude Desktop on 3P(3P = third-party、他社のクラウド経由という意味)

Claude Desktop on 3P(3P = third-party、他社のクラウド経由という意味) の図。デスクトップアプリの推論先を、Anthropic ではなく自社が選んだクラウド(Bedrock など)に向ける配布形態です。会話は端末内に保存され、設定は管理者が配ります。
タップで原寸。desktop-3p.drawio / draw.io で開く
何のことか
デスクトップアプリの推論先を、Anthropic ではなく自社が選んだクラウド(Bedrock など)に向ける配布形態です。会話は端末内に保存され、設定は管理者が配ります。
いつ使うか
規制や契約の都合で Anthropic の製品に直接データを送れない組織が、アプリの画面で使いたいとき。
原典
Overview(Claude Desktop on 3P の文書) ↗「Run Claude Desktop against your own cloud inference provider」

内蔵ブラウザ・Claude in Chrome(Desktop)

内蔵ブラウザ・Claude in Chrome(Desktop) の図。デスクトップアプリの中で Claude が Web ページを見る手段です。アプリ内のブラウザ(内蔵)と、普段使っている Chrome を使う形(Claude in Chrome)があります。3P 版で Claude in Chrome を使えるのは、Enterprise の管理コンソールで管理している組織だけです。
タップで原寸。builtin-browser.drawio / draw.io で開く
何のことか
デスクトップアプリの中で Claude が Web ページを見る手段です。アプリ内のブラウザ(内蔵)と、普段使っている Chrome を使う形(Claude in Chrome)があります。3P 版で Claude in Chrome を使えるのは、Enterprise の管理コンソールで管理している組織だけです。
いつ使うか
Web 画面の確認や、Web 上の情報の取り出しをアプリの中でやりたいとき。
原典
Built-in browser and Claude in Chrome ↗「Configuring Claude in Chrome and the built-in browser in Cowork and Code for Claude Desktop 3P」

予定タスク(Desktop の Scheduled tasks)

予定タスク(Desktop の Scheduled tasks) の図。デスクトップアプリで、決めた時刻に Claude を自動で動かす機能です。アプリが開いていてパソコンが起きている間だけ動きます。
タップで原寸。desktop-scheduled.drawio / draw.io で開く
何のことか
デスクトップアプリで、決めた時刻に Claude を自動で動かす機能です。アプリが開いていてパソコンが起きている間だけ動きます。
いつ使うか
毎朝のコードレビューや点検を、手元のパソコンで自動化したいとき。
原典
Schedule recurring tasks in Claude Code Desktop ↗「Set up scheduled tasks in Claude Code Desktop to run Claude automatically on a recurring basis for daily code reviews, dependency audits, or morning briefings.」

SSH リモート Code セッション

SSH リモート Code セッション の図。画面は手元のアプリのまま、実際の作業は別のサーバーの上で動かす形です。
タップで原寸。ssh-remote.drawio / draw.io で開く
何のことか
画面は手元のアプリのまま、実際の作業は別のサーバーの上で動かす形です。
いつ使うか
開発環境がサーバー上にある、手元に資料を置きたくないとき。
原典
SSH remote sessions in Claude Desktop on 3P ↗「How Code sessions run on a remote host over SSH in Claude Desktop on 3P」

Dispatch

Dispatch の図。スマホから、手元のパソコンのデスクトップアプリ(Cowork)に作業を投げ込む機能です。claude.ai の Pro / Max のみで、Team / Enterprise と 3P では使えません。
タップで原寸。dispatch.drawio / draw.io で開く
何のことか
スマホから、手元のパソコンのデスクトップアプリ(Cowork)に作業を投げ込む機能です。claude.ai の Pro / Max のみで、Team / Enterprise と 3P では使えません。
いつ使うか
外出先から、自宅や会社のパソコンに作業を始めさせたいとき。
原典
Desktop application(Sessions from Dispatch) ↗「Dispatch requires a Pro or Max plan and is not available on Team or Enterprise plans.」

レビューと無人実行(まとめの図)

Ultrareview・Code Review・/code-review・GitHub Actions・定期実行の関係を1枚にしたものです。

左では Ultrareview と Code Review が claude.ai のクラウドで動き、ルーティンで定期実行できる。右の Bedrock ではこれらは使えず、手元の /code-review と、GitHub Actions(OIDC → IAM ロール → bedrock-runtime)、EventBridge Scheduler → ECS Fargate の claude -p で補う。
レビューと無人実行の構成(左: Claude、右: Bedrock)。タップで原寸。draw.io の元ファイル: cob-review.drawio / draw.io で開く

Bedrock・AWS 側の用語の解説: 何のことか・いつ使うか

ここまでの説明に出てくる Bedrock と AWS 側の用語を、同じ形式(何のことか・いつ使うか・原典)でまとめます。原典は AWS の公式ドキュメントで、引用はそのページにある文を原文のまま(リンクやコード書式だけ除く)載せています。説明文はこのページで書いたものです。

各用語に、仕組みを1枚で表した図を付けました。本文の「Bedrock ならでは」「国内で完結させる」「客先と一緒に決める」の節に出てくる語が対象です。

Bedrock の基本

Amazon Bedrock

Amazon Bedrock の図。AWS が運営する、いろいろな会社の AI モデルを AWS の中から使えるサービスです。Claude もその1つとして載っています。モデルの運用は AWS が行い、Anthropic は推論基盤に触れません。
タップで原寸。aws-bedrock.drawio / draw.io で開く
何のことか
AWS が運営する、いろいろな会社の AI モデルを AWS の中から使えるサービスです。Claude もその1つとして載っています。モデルの運用は AWS が行い、Anthropic は推論基盤に触れません。
いつ使うか
AWS の契約・請求・権限管理の枠の中で Claude を使いたいとき。
原典
What is Amazon Bedrock? ↗「Amazon Bedrock is a fully managed service that provides secure, enterprise-grade access to high-performing foundation models from leading AI companies, enabling you to build and scale generative AI applications.」

エンドポイント: bedrock-runtime と bedrock-mantle

エンドポイント: bedrock-runtime と bedrock-mantle の図。リクエストを送る「入口」の URL です。Bedrock には2つあり、bedrock-runtime(AWS の推奨。InvokeModel・Converse・Messages の形が使える)と bedrock-mantle(Messages など他社 API と同じ形で、Mantle だけの機能がある)です。どちらも同じエンジンで処理されます。
タップで原寸。aws-endpoints.drawio / draw.io で開く
何のことか
リクエストを送る「入口」の URL です。Bedrock には2つあり、bedrock-runtime(AWS の推奨。InvokeModel・Converse・Messages の形が使える)と bedrock-mantle(Messages など他社 API と同じ形で、Mantle だけの機能がある)です。どちらも同じエンジンで処理されます。
いつ使うか
入口によって使える機能・権限の名前・リージョン・クォータが変わるので、最初に決める項目です。
原典
Endpoints supported by Amazon Bedrock ↗「An endpoint is the URL that your application uses to send inference requests to Amazon Bedrock. Amazon Bedrock provides two inference endpoints.」

Mantle(推論エンジン)

Mantle(推論エンジン) の図。Bedrock の裏でモデルを動かしている推論エンジンの名前です。入口の名前 bedrock-mantle と紛らわしいですが、AWS は「入口の名前であって別のエンジンではない」と明記しています。
タップで原寸。aws-mantle.drawio / draw.io で開く
何のことか
Bedrock の裏でモデルを動かしている推論エンジンの名前です。入口の名前 bedrock-mantle と紛らわしいですが、AWS は「入口の名前であって別のエンジンではない」と明記しています。
いつ使うか
「Mantle」という語が出てきたら、入口の話か、エンジンの話かを区別するために。
原典
Endpoints supported by Amazon Bedrock ↗「Both endpoints use the same underlying Mantle inference engine and benefit from Mantle's zero operator access (ZOA) design. The bedrock-mantle name identifies an endpoint surface, not a different inference engine.」

推論プロファイル(inference profile)

推論プロファイル(inference profile) の図。「どのモデルを、どのリージョンで処理してよいか」を1つにまとめた設定で、モデル ID の代わりに指定します。jp.anthropic.claude-opus-5-5 のような接頭辞付きの ID がそれです。
タップで原寸。aws-inference-profile.drawio / draw.io で開く
何のことか
「どのモデルを、どのリージョンで処理してよいか」を1つにまとめた設定で、モデル ID の代わりに指定します。jp.anthropic.claude-opus-5-5 のような接頭辞付きの ID がそれです。
いつ使うか
bedrock-runtime で新しい Claude を呼ぶときは、ほとんどのリージョンで必要です(In-Region に対応するリージョンが少なく、旧来の形式で素のモデル ID を送ると 400 になるモデルがある)。bedrock-mantle は逆で、素のモデル ID(anthropic.claude-opus-5-5)で呼び、推論プロファイルは使えません。
原典
Route model inference requests across AWS Regions with cross-Region inference ↗「Both types of cross-Region inference work through inference profiles, which define a foundation model (FM) and the AWS Regions to which requests can be routed.」

In-Region / Geo / Global(処理する場所の3種類)

In-Region / Geo / Global(処理する場所の3種類) の図。In-Region は呼び出したリージョンの中だけ、Geo は同じ地域(jp. なら東京+大阪、us. なら米国。カナダから呼ぶとカナダも含む)の複数リージョン、Global は世界中の空いているリージョンで処理します。モデルごとに対応が違います。
タップで原寸。aws-cris-options.drawio / draw.io で開く
何のことか
In-Region は呼び出したリージョンの中だけ、Geo は同じ地域(jp. なら東京+大阪、us. なら米国。カナダから呼ぶとカナダも含む)の複数リージョン、Global は世界中の空いているリージョンで処理します。モデルごとに対応が違います。
いつ使うか
個人情報などで「国外に出したくない」要件があるとき、Geo(jp.)を選ぶ判断の土台です。
原典
Claude Opus 5.5 model card(Regional availability) ↗「Amazon Bedrock offers three inference options: In-Region keeps requests within a single Region for strict compliance, Geo Cross-Region routes across Regions within a geography (such as US, EU, and APAC) while respecting data residency, and Global Cross-Region routes anywhere worldwide when there are no residency constraints.」

地域のクロスリージョン推論(jp. など)

地域のクロスリージョン推論(jp. など) の図。同じ地域の中の複数リージョンに処理を振り分ける仕組みです。データは地域の外に出ません。jp. は東京と大阪です。
タップで原寸。aws-geo-cris.drawio / draw.io で開く
何のことか
同じ地域の中の複数リージョンに処理を振り分ける仕組みです。データは地域の外に出ません。jp. は東京と大阪です。
いつ使うか
国内で処理したいとき。東京と大阪の2リージョンに振り分けられます。
原典
Geographic cross-Region inference ↗「Geographic cross-Region inference keeps data processing within specified geographic boundaries (such as US, EU, and APAC). This option is ideal for organizations with data residency requirements and compliance regulations.」

global のクロスリージョン推論

global のクロスリージョン推論 の図。世界中の商用リージョンに処理を振り分ける仕組みです。地域(Geo)の推論より約10%安い代わりに、処理が海外で行われることがあります。
タップで原寸。aws-global-cris.drawio / draw.io で開く
何のことか
世界中の商用リージョンに処理を振り分ける仕組みです。地域(Geo)の推論より約10%安い代わりに、処理が海外で行われることがあります。
いつ使うか
データの所在に制約がなく、費用と可用性を優先するとき。Fable 5.1 や Sonnet 5.5 を東京から呼ぶには、これしかありません。
原典
Global cross-Region inference ↗「Global cross-Region inference extends cross-Region inference beyond geographic boundaries, enabling the routing of inference requests to supported commercial AWS Regions worldwide.」

get-inference-profile(行き先の確認)

get-inference-profile(行き先の確認) の図。推論プロファイルの行き先リージョンの一覧を取り出すコマンド(API)です。AWS は「接頭辞だけで行き先を判断しないこと」と書いています。
タップで原寸。aws-get-profile.drawio / draw.io で開く
何のことか
推論プロファイルの行き先リージョンの一覧を取り出すコマンド(API)です。AWS は「接頭辞だけで行き先を判断しないこと」と書いています。
いつ使うか
国内処理の要件があるとき、使う前に jp. の行き先が東京と大阪だけかを確かめる。
原典
Supported Regions and models for inference profiles ↗「Don't rely on the geographic prefix in an inference profile ID alone to determine where requests can be routed.」

データの扱いと安全

Model Deployment Account

Model Deployment Account の図。AWS がモデル提供元ごと・リージョンごとに用意している専用の AWS アカウントで、Claude の推論ソフトウェアはここに複製されて動きます。Anthropic はこのアカウントにアクセスできません。
タップで原寸。aws-mda.drawio / draw.io で開く
何のことか
AWS がモデル提供元ごと・リージョンごとに用意している専用の AWS アカウントで、Claude の推論ソフトウェアはここに複製されて動きます。Anthropic はこのアカウントにアクセスできません。
いつ使うか
「Bedrock の Claude に送ったデータを Anthropic が見られるのか」という質問への答えの根拠です。
原典
Data protection in Amazon Bedrock ↗「Amazon Bedrock has a concept of a Model Deployment Account—in each AWS Region where Amazon Bedrock is available, there is one such deployment account per model provider. These accounts are owned and operated by the Amazon Bedrock service team. Model providers don't have any access to those accounts」

zero operator access(ZOA)・zero data retention(ZDR)

zero operator access(ZOA)・zero data retention(ZDR) の図。ZOA は「サービスの運用者であっても、モデルの入出力にアクセスできない」設計、ZDR は「既定で入出力を保存しない」設計です。
タップで原寸。aws-zoa.drawio / draw.io で開く
何のことか
ZOA は「サービスの運用者であっても、モデルの入出力にアクセスできない」設計、ZDR は「既定で入出力を保存しない」設計です。
いつ使うか
セキュリティ審査で「誰がプロンプトを見られるか」「どこに残るか」を説明するとき。
原典
Amazon Bedrock abuse detection ↗「Amazon Bedrock uses a zero operator access (ZOA) data security model. This means no operators of the service can access model input or output.」

不正利用検知(abuse detection)と例外的な保持

不正利用検知(abuse detection)と例外的な保持 の図。既定ではプロンプトと応答を保存しませんが、一部のモデルでは不正利用の検知のために保存されます。Claude では Fable 5 / 5.1 が対象で、通信はすべて最大30日保持され(global で使うと処理した先のリージョンに保存される)、分類器に引っかかったものは AWS の人による確認の対象になりえます(Enterprise Frontier Safeguards の対象顧客は 2026-12-31 まで ZDR)。
タップで原寸。aws-abuse.drawio / draw.io で開く
何のことか
既定ではプロンプトと応答を保存しませんが、一部のモデルでは不正利用の検知のために保存されます。Claude では Fable 5 / 5.1 が対象で、通信はすべて最大30日保持され(global で使うと処理した先のリージョンに保存される)、分類器に引っかかったものは AWS の人による確認の対象になりえます(Enterprise Frontier Safeguards の対象顧客は 2026-12-31 まで ZDR)。
いつ使うか
Fable 系を使うかどうかを決めるとき。jp. で国内処理に限定すると Fable は使えないので、その場合は該当しません。
原典
Amazon Bedrock abuse detection ↗「by default, Amazon Bedrock does not store model inputs or outputs. However, for specific abuse detection purposes related to the following models, we may be required to store inputs and outputs」

Data Retention API と aws_review

Data Retention API と aws_review の図。リージョンごとに、アカウントまたはプロジェクトの単位でデータ保持のモードを設定する API です(モデル側は、どのモードを受け付けるかを宣言します)。Fable 5 / 5.1 を使うには、保持モードを aws_review(またはそれ以上)にして AWS の確認に同意する必要があります。
タップで原寸。aws-data-retention.drawio / draw.io で開く
何のことか
リージョンごとに、アカウントまたはプロジェクトの単位でデータ保持のモードを設定する API です(モデル側は、どのモードを受け付けるかを宣言します)。Fable 5 / 5.1 を使うには、保持モードを aws_review(またはそれ以上)にして AWS の確認に同意する必要があります。
いつ使うか
Fable 5.1 を有効にする前の設定として。
原典
Claude Fable 5.1 model card(Data Retention) ↗「To use this model, you must opt in to AWS review by setting your data retention mode to aws_review via the Data Retention API.」

利用目的の提出(First Time Use フォーム)

利用目的の提出(First Time Use フォーム) の図。Anthropic のモデルを bedrock-runtime で初めて使う前に、AWS アカウント(または組織の管理アカウント)ごとに一度、利用目的を提出する手続きです。bedrock-mantle 経由では不要です。
タップで原寸。aws-ftu.drawio / draw.io で開く
何のことか
Anthropic のモデルを bedrock-runtime で初めて使う前に、AWS アカウント(または組織の管理アカウント)ごとに一度、利用目的を提出する手続きです。bedrock-mantle 経由では不要です。
いつ使うか
新しい AWS アカウントで Claude を使い始めるときの最初の手順。
原典
Request access to models ↗「For Anthropic models, you must complete the First Time Use (FTU) form before invoking the model. This requirement does not apply to Anthropic models accessed through the bedrock-mantle endpoint.」

Amazon Bedrock Guardrails

Amazon Bedrock Guardrails の図。モデルへの入力と出力に、AWS 側で内容のフィルタ(有害な内容・個人情報・禁止トピックなど)をかける仕組みです。bedrock-runtime 経由のときに使えます。
タップで原寸。aws-guardrails.drawio / draw.io で開く
何のことか
モデルへの入力と出力に、AWS 側で内容のフィルタ(有害な内容・個人情報・禁止トピックなど)をかける仕組みです。bedrock-runtime 経由のときに使えます。
いつ使うか
利用者が何を入れても、組織として一定の線で止めたいとき。Claude Code ではヘッダーを付けて使います。
原典
Detect and filter harmful content by using Amazon Bedrock Guardrails ↗「Amazon Bedrock Guardrails provides configurable safeguards to help you build safe generative AI applications.」

認証と権限

Bedrock の API キー

Bedrock の API キー の図。AWS の資格情報の代わりに使える合言葉(bearer トークン。リクエストごとに添える、期限付きの文字列)です。短期(最長12時間。作った人の権限を引き継ぐ)と長期があり、AWS は短期を本番向け、長期は試用向けとしています。
タップで原寸。aws-api-keys.drawio / draw.io で開く
何のことか
AWS の資格情報の代わりに使える合言葉(bearer トークン。リクエストごとに添える、期限付きの文字列)です。短期(最長12時間。作った人の権限を引き継ぐ)と長期があり、AWS は短期を本番向け、長期は試用向けとしています。
いつ使うか
SigV4(AWS の資格情報でリクエストに付ける署名)が使えない簡単なスクリプトや検証で。長期キーは本番や配布には使いません。
原典
API keys ↗「Amazon Bedrock API keys let you authenticate API requests using a bearer token instead of AWS credentials.」

IAM ポリシー(推論プロファイルで絞る)

IAM ポリシー(推論プロファイルで絞る) の図。誰(IAM ロール = 人やプログラムに割り当てる権限のまとまり)が何を呼べるかを決める AWS の権限設定です。推論プロファイル(jp. など)の ARN(AWS の中で資源を一意に指す名前)と、行き先リージョンの foundation-model(モデルそのものを指す資源)の両方に許可が要り、bedrock:InferenceProfileArn という条件で「このプロファイル経由だけ」に絞れます。
タップで原寸。aws-iam-policy.drawio / draw.io で開く
何のことか
誰(IAM ロール = 人やプログラムに割り当てる権限のまとまり)が何を呼べるかを決める AWS の権限設定です。推論プロファイル(jp. など)の ARN(AWS の中で資源を一意に指す名前)と、行き先リージョンの foundation-model(モデルそのものを指す資源)の両方に許可が要り、bedrock:InferenceProfileArn という条件で「このプロファイル経由だけ」に絞れます。
いつ使うか
設定の漏れがあっても国外に出ないよう、権限側で止めたいとき。
原典
Prerequisites for inference profiles ↗「To restrict user access such that they can invoke a foundation model only through an inference profile, add a Condition field and use the bedrock:InferenceProfileArn condition key」

SCP(サービスコントロールポリシー)

SCP(サービスコントロールポリシー) の図。AWS Organizations で、配下のアカウント全体に「ここまでしか許可できない」という上限をかける仕組みです。global のプロファイルを明示的に拒否するのに使えます(組織の管理アカウント自身には効きません)。
タップで原寸。aws-scp.drawio / draw.io で開く
何のことか
AWS Organizations で、配下のアカウント全体に「ここまでしか許可できない」という上限をかける仕組みです。global のプロファイルを明示的に拒否するのに使えます(組織の管理アカウント自身には効きません)。
いつ使うか
複数アカウントで、個々の設定に関係なく国外処理を禁止したいとき。
原典
Service control policies (SCPs) ↗「Service control policies (SCPs) are a type of organization policy that you can use to manage permissions in your organization.」

IAM Identity Center(AWS の SSO)

IAM Identity Center(AWS の SSO) の図。会社の ID 基盤と AWS をつなぎ、人が自分のアカウントでログインして一時的な権限をもらう仕組みです。個人に長期の鍵を配らずに済みます。
タップで原寸。aws-idc.drawio / draw.io で開く
何のことか
会社の ID 基盤と AWS をつなぎ、人が自分のアカウントでログインして一時的な権限をもらう仕組みです。個人に長期の鍵を配らずに済みます。
いつ使うか
開発者が CLI から Bedrock を使うときの認証(aws sso login)。
原典
What is IAM Identity Center? ↗「AWS IAM Identity Center is the AWS solution for connecting your workforce users to AWS managed applications such as Kiro and Amazon Quick, and other AWS resources.」

OIDC プロバイダ(GitHub Actions から鍵なしで AWS を使う)

OIDC プロバイダ(GitHub Actions から鍵なしで AWS を使う) の図。GitHub などの外部サービスが発行する身分証(OIDC トークン)を AWS が信頼し、短期の権限を渡す仕組みです。CI に AWS の鍵を置かずに済みます。
タップで原寸。aws-oidc.drawio / draw.io で開く
何のことか
GitHub などの外部サービスが発行する身分証(OIDC トークン)を AWS が信頼し、短期の権限を渡す仕組みです。CI に AWS の鍵を置かずに済みます。
いつ使うか
GitHub Actions の中で Claude Code に Bedrock を呼ばせるとき。
原典
Create an OpenID Connect (OIDC) identity provider in IAM ↗「IAM OIDC identity providers are entities in IAM that describe an external identity provider (IdP) service that supports the OpenID Connect (OIDC) standard」

Secrets Manager

Secrets Manager の図。API キーやパスワードなどの秘密情報を、コードや設定ファイルに書かずに保管・配布・更新するサービスです。
タップで原寸。aws-secrets.drawio / draw.io で開く
何のことか
API キーやパスワードなどの秘密情報を、コードや設定ファイルに書かずに保管・配布・更新するサービスです。
いつ使うか
Web 検索 API を提供する会社(Brave・Tavily など)の API キーや、ゲートウェイの設定に入る秘密を置く場所。
原典
What is AWS Secrets Manager? ↗「AWS Secrets Manager helps you manage, retrieve, and rotate database credentials, application credentials, OAuth tokens, API keys, and other secrets throughout their lifecycles.」

Bedrock の周辺機能と課金

Knowledge Bases(社内文書の検索・RAG)

Knowledge Bases(社内文書の検索・RAG) の図。社内文書を取り込んでおき、質問に関係する部分を探してモデルに渡す仕組み(RAG)です。Web 検索の代わりに「社内版の検索」として使う構成案に出てきます。
タップで原寸。aws-kb.drawio / draw.io で開く
何のことか
社内文書を取り込んでおき、質問に関係する部分を探してモデルに渡す仕組み(RAG)です。Web 検索の代わりに「社内版の検索」として使う構成案に出てきます。
いつ使うか
社内の規程や設計書を根拠に答えさせたいとき。
原典
Retrieve data and generate AI responses with Amazon Bedrock Knowledge Bases ↗「RAG is a technique that uses information from data sources to improve the relevancy and accuracy of generated responses. With Amazon Bedrock Knowledge Bases, you can integrate proprietary information into your generative-AI applications.」

Bedrock Agents(Classic)と AgentCore

Bedrock Agents(Classic)と AgentCore の図。AWS 側で AI エージェントを組む仕組みです。従来の Bedrock Agents は Agents Classic と呼ばれ、新規の顧客は使い始められません(既存の顧客は引き続き使えます)。似た機能として AWS は Amazon Bedrock AgentCore を案内しています。
タップで原寸。aws-agents.drawio / draw.io で開く
何のことか
AWS 側で AI エージェントを組む仕組みです。従来の Bedrock Agents は Agents Classic と呼ばれ、新規の顧客は使い始められません(既存の顧客は引き続き使えます)。似た機能として AWS は Amazon Bedrock AgentCore を案内しています。
いつ使うか
モデルカードの「Agents」の欄を読むとき。これから組むなら AgentCore を見る。
原典
Automate tasks in your application using AI agents ↗「Amazon Bedrock Agents (now Amazon Bedrock Agents Classic) is no longer open to new customers. For capabilities similar to Bedrock Agents Classic, explore Amazon Bedrock AgentCore.」

バッチ推論

バッチ推論 の図。たくさんのプロンプトを S3 に置いて一括で処理させる仕組みです。急がない処理を安くまとめて流せます。Anthropic の Message Batches API の代わりですが、対応モデルは限られます(対応表にあるのは Opus 5・Opus 4.6・Sonnet 4.6・Haiku 4.5 など。Opus 5.5・Sonnet 5.5 は非対応、Fable 5.1 は未掲載)。AWS の文書ではバッチではツール呼び出しと構造化出力が使えません。AWS の料金ページでは、バッチはオンデマンドより 50% 安いとされています。
タップで原寸。aws-batch.drawio / draw.io で開く
何のことか
たくさんのプロンプトを S3 に置いて一括で処理させる仕組みです。急がない処理を安くまとめて流せます。Anthropic の Message Batches API の代わりですが、対応モデルは限られます(対応表にあるのは Opus 5・Opus 4.6・Sonnet 4.6・Haiku 4.5 など。Opus 5.5・Sonnet 5.5 は非対応、Fable 5.1 は未掲載)。AWS の文書ではバッチではツール呼び出しと構造化出力が使えません。AWS の料金ページでは、バッチはオンデマンドより 50% 安いとされています。
いつ使うか
夜間に大量の文書を分類・要約するような、時間に余裕のある処理。
原典
Process multiple prompts with batch inference ↗「With batch inference, you can submit multiple prompts and generate responses asynchronously.」

サービス階層(Standard / Priority / Flex / Reserved)

サービス階層(Standard / Priority / Flex / Reserved) の図。料金と待ち時間の交換条件を選ぶ仕組みです。Standard が従量、Priority は割増で速く、Flex は安いが待つ、Reserved は期間契約の専有容量です。Claude が Priority と Flex に対応していない根拠は、Service tiers の解説ページではなく、各モデルのカードにある Service Tiers の表です(○×がアイコン画像で、本文には書かれていません)。2026-10-06 に確認した Opus 5.5・Sonnet 5.5・Fable 5.1・Opus 4.8・Sonnet 4.6・Haiku 4.5 のカードで、Priority と Flex の列はすべて ✗、Standard は ✓、Reserved は Sonnet 4.6 と Haiku 4.5 だけ ✓ でした。解説ページ自体には Claude についての記述がありません。
タップで原寸。aws-tiers.drawio / draw.io で開く
何のことか
料金と待ち時間の交換条件を選ぶ仕組みです。Standard が従量、Priority は割増で速く、Flex は安いが待つ、Reserved は期間契約の専有容量です。Claude が Priority と Flex に対応していない根拠は、Service tiers の解説ページではなく、各モデルのカードにある Service Tiers の表です(○×がアイコン画像で、本文には書かれていません)。2026-10-06 に確認した Opus 5.5・Sonnet 5.5・Fable 5.1・Opus 4.8・Sonnet 4.6・Haiku 4.5 のカードで、Priority と Flex の列はすべて ✗、Standard は ✓、Reserved は Sonnet 4.6 と Haiku 4.5 だけ ✓ でした。解説ページ自体には Claude についての記述がありません。
いつ使うか
Claude Code の ANTHROPIC_BEDROCK_SERVICE_TIER を設定するとき(実質 default のみ)。対応は変わりうるので、使う前に該当モデルのカードの表を確かめます。
原典
Service tiers for optimizing performance and cost(4つの階層の定義) ↗「Amazon Bedrock offers four service tiers for model inference: Reserved, Priority, Standard, and Flex.」Claude Opus 5.5 model card(Service Tiers の節と表) ↗「Amazon Bedrock offers multiple service tiers to match your workload requirements. Standard provides pay-per-token access with no commitment (set "service_tier": "default" or omit the field). Priority delivers the fastest response times for a price premium (set "service_tier": "priority" ).」この文のすぐ下にある表(Standard / Priority / Flex / Reserved / Batch)で、Standard だけが ✓、ほかは ✗ のアイコン。ほかの5枚も同様の表で確認(Batch 列があるのは Sonnet 5.5 だけ。Reserved は Sonnet 4.6・Haiku 4.5 で ✓)。

モデルのライフサイクル(Active / Legacy / EOL)

モデルのライフサイクル(Active / Legacy / EOL) の図。モデルの提供状態です。Active は通常提供、Legacy は提供終了前の移行期間(新規は使い始められず、既存も15日使わないとアクセスを失うことがある)、EOL は提供終了です。モデルカードに「EOL no sooner than(この日より前には終了しない)」の目安日があります。
タップで原寸。aws-lifecycle.drawio / draw.io で開く
何のことか
モデルの提供状態です。Active は通常提供、Legacy は提供終了前の移行期間(新規は使い始められず、既存も15日使わないとアクセスを失うことがある)、EOL は提供終了です。モデルカードに「EOL no sooner than(この日より前には終了しない)」の目安日があります。
いつ使うか
どのモデルを標準にするか決めるとき。Sonnet 4.5・Haiku 4.5 のカードの目安日は 2026-10 時点で過ぎたか目前ですが、両方ともまだ Active で、古いモデルは Legacy の通知から最低6か月は提供されます(日付は Legacy ページの表が正)。なお出典のページは 2026-09-07 以降に出たモデルが対象で、それより前のモデル(Sonnet 4.5・Haiku 4.5 など)は Model lifecycle (Legacy) のページに従います(15日の規則は同じ。移行期間中に割高な public extended access の期間がある)。
原典
Model lifecycle ↗「Every model on Amazon Bedrock has one of three states: Active, Legacy, or End-of-Life (EOL).」

AWS Marketplace 経由の課金

AWS Marketplace 経由の課金 の図。Claude は AWS Marketplace 経由の他社モデルとして課金され、AWS の請求書と Cost Explorer にはモデル提供元の名前で載ります(多くのモデルカードの記載。Fable 5.1 のカードには記載なし)。
タップで原寸。aws-marketplace.drawio / draw.io で開く
何のことか
Claude は AWS Marketplace 経由の他社モデルとして課金され、AWS の請求書と Cost Explorer にはモデル提供元の名前で載ります(多くのモデルカードの記載。Fable 5.1 のカードには記載なし)。
いつ使うか
請求を部署に按分する、費用を見張るとき。
原典
Claude Opus 5.5 model card(Pricing) ↗「This model is a third-party model offered and billed through AWS Marketplace. Charges appear on your AWS bill and in AWS Cost Explorer under the model provider (not under Amazon Bedrock).」

見える化と運用(AWS の一般サービス)

CloudTrail

CloudTrail の図。AWS で誰が何の操作をしたかを記録するサービスです。Bedrock の呼び出しも記録され、クロスリージョン推論では additionalEventData.inferenceRegion に実際に処理したリージョンが入ります。
タップで原寸。aws-cloudtrail.drawio / draw.io で開く
何のことか
AWS で誰が何の操作をしたかを記録するサービスです。Bedrock の呼び出しも記録され、クロスリージョン推論では additionalEventData.inferenceRegion に実際に処理したリージョンが入ります。
いつ使うか
本当に国内で処理されたかを後から確かめるとき。事故の調査にも。
原典
What Is AWS CloudTrail? ↗「AWS CloudTrail is an AWS service that helps you enable operational and risk auditing, governance, and compliance of your AWS account. Actions taken by a user, role, or an AWS service are recorded as events in CloudTrail.」

CloudWatch(と OpenTelemetry の受け口)

CloudWatch(と OpenTelemetry の受け口) の図。AWS の監視サービスです。Claude Code が出す OpenTelemetry のメトリクス(トークン数・概算コスト)を、受け口(Collector。各端末からの数値を受け取ってまとめて送るプログラム)を通してここに集め、グラフにできます。
タップで原寸。aws-cloudwatch.drawio / draw.io で開く
何のことか
AWS の監視サービスです。Claude Code が出す OpenTelemetry のメトリクス(トークン数・概算コスト)を、受け口(Collector。各端末からの数値を受け取ってまとめて送るプログラム)を通してここに集め、グラフにできます。
いつ使うか
claude.ai の使用量ダッシュボードが使えない Bedrock で、利用量を見たいとき。
原典
What is Amazon CloudWatch? ↗「Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and the applications you run on AWS in real time」

Cost Explorer と AWS Budgets

Cost Explorer と AWS Budgets の図。Cost Explorer は費用の内訳をグラフで見る道具、Budgets は予算を決めて超えそうなときに通知する道具です。
タップで原寸。aws-cost-explorer.drawio / draw.io で開く
何のことか
Cost Explorer は費用の内訳をグラフで見る道具、Budgets は予算を決めて超えそうなときに通知する道具です。
いつ使うか
Claude の費用を月ごと・提供元ごとに見る、上限に近づいたら知らせる。
原典
Analyzing your costs and usage with AWS Cost Explorer ↗「AWS Cost Explorer is a tool that enables you to view and analyze your costs and usage.」

EventBridge Scheduler

EventBridge Scheduler の図。決めた時刻や間隔で、AWS の処理(コンテナの起動など)を自動で始めるサービスです。手元のパソコンが要らない定期実行の「時計」の役です。
タップで原寸。aws-scheduler.drawio / draw.io で開く
何のことか
決めた時刻や間隔で、AWS の処理(コンテナの起動など)を自動で始めるサービスです。手元のパソコンが要らない定期実行の「時計」の役です。
いつ使うか
/schedule(ルーティン)の代わりに、無人の定期実行を AWS で組むとき(構成案)。
原典
What is Amazon EventBridge Scheduler? ↗「Amazon EventBridge Scheduler is a serverless scheduler that allows you to create, run, and manage tasks from one central, managed service.」

ECS Fargate

ECS Fargate の図。サーバーを用意せずにコンテナ(アプリの入れ物)を動かす仕組みです。claude -p を入れたコンテナを、必要なときだけ動かせます。
タップで原寸。aws-fargate.drawio / draw.io で開く
何のことか
サーバーを用意せずにコンテナ(アプリの入れ物)を動かす仕組みです。claude -p を入れたコンテナを、必要なときだけ動かせます。
いつ使うか
定期実行や CI の中で Claude Code を動かす置き場所(構成案)。Claude apps gateway の置き場所にも公式の構成例があります。
原典
Architect for AWS Fargate for Amazon ECS ↗「AWS Fargate is a technology that you can use with Amazon ECS to run containers without having to manage servers or clusters of Amazon EC2 instances.」

Session Manager(SSM)

Session Manager(SSM) の図。ポートを開けたり SSH の鍵を配ったりせずに、AWS 上のサーバーに安全に入る仕組みです。手元の端末(AWS CLI)から入るには接続する側に専用のプラグインが要り、ブラウザのコンソールからなら不要です。
タップで原寸。aws-ssm.drawio / draw.io で開く
何のことか
ポートを開けたり SSH の鍵を配ったりせずに、AWS 上のサーバーに安全に入る仕組みです。手元の端末(AWS CLI)から入るには接続する側に専用のプラグインが要り、ブラウザのコンソールからなら不要です。
いつ使うか
リモートコントロールの代わりに、開発サーバーの tmux(端末の画面を保ったまま後から入り直せる道具)に外から入る構成(構成案)。
原典
AWS Systems Manager Session Manager ↗「Session Manager provides secure node management without the need to open inbound ports, maintain bastion hosts, or manage SSH keys.」

S3(と CloudFront)

S3(と CloudFront) の図。S3 はファイルの置き場所、CloudFront はそれを世界中に速く配る仕組みです。Claude に作らせた HTML を自前で公開する(Artifacts の代わり)構成に出てきます。
タップで原寸。aws-s3.drawio / draw.io で開く
何のことか
S3 はファイルの置き場所、CloudFront はそれを世界中に速く配る仕組みです。Claude に作らせた HTML を自前で公開する(Artifacts の代わり)構成に出てきます。
いつ使うか
作った報告書やダッシュボードを配りたいとき(構成案)。CloudFront は誰にでも配る仕組みなので、社内限定にするには認証やアクセス制限を別に付けます。
原典
What is Amazon S3? ↗「Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance.」

星取り表

○ 使える / △ 条件を満たせば公式の機能がそのまま使える(プラン・モデル・設定。注を参照) / × 公式の機能は無い(代替手段があっても ×。代替は注に) / - 公式文書に記載がなく未確認。通常版の列は Enterprise の値で、Pro / Max だけの機能は △。狭い画面では表の中を横にスクロールしてください。

CLI を前提にした場合(ターミナル・VS Code / JetBrains の拡張)

Claude Code を手元の端末や IDE から使う前提です。列は、どうやってログイン(認証)するかの違いです。根拠は主に Claude Code の Feature availability と、Claude apps gateway の Availability and limitations の表です。

機能
claude.ai の契約
Pro / Max / Team / Enterprise
Anthropic の API キー
Console のアカウント
Bedrock
AWS の資格情報で直接
Bedrock + apps gateway
自社ホストのゲートウェイ経由
手元で動く部分
CLI・VS Code / JetBrains の拡張○○○○
サブエージェント・フック・スキル・CLAUDE.md・プラグイン○○○○
MCP サーバー(自分で設定)○○○○
WebFetch(URL を指定して取得)

取得前にホスト名だけを api.anthropic.com に送る確認通信がある(全列共通)。

○○○○
/loop(セッション中の定期実行)・/code-review(手元)○○○○
GitHub Actions で動かす

Bedrock 版は GitHub の OIDC を信頼する IAM ロールで動かす公式手順あり。gateway のサインインはブラウザのデバイスフローだけで、無人の CI は認証できない(公式)ので CI は Bedrock へ直接。リポジトリが CodeCommit なら GitHub Actions は使えず、EventBridge + CodeBuild の構成案(#aws-ci)。

○○○×
サーバー側の機能に頼る部分
Web 検索(WebSearch)

gateway 経由は、CLI が上流を確かめられないため無効になる。代わりは検索ツールを持つ MCP サーバー。

○○××
Auto mode

Bedrock では Sonnet 5 以降・Opus 4.7 以降・Fable 系のみ。gateway も同じ規則。

○○△△
1時間のプロンプトキャッシュ

契約は含まれる使用量の範囲で既定1時間(使用量クレジットを使うと5分)。API キーと Bedrock は既定5分で、promptCacheTtl=1h(v2.1.242 以降)か ENABLE_PROMPT_CACHING_1H=1 で1時間。Bedrock はモデルごとに対応が違う。gateway は5分だけ。

○△△×
Fast mode

契約では使用量クレジットで課金(Team / Enterprise はオーナーが有効化)。API キーは提供を受けた組織のみ。

△△××
Advisor○○××
Channels(Telegram・Discord などとの連携)

claude.ai か Console の API キーでの認証が条件で、Bedrock は非対応と明記。契約では Team / Enterprise は管理者の有効化が要る。

○○××
claude.ai のアカウントが前提の部分
リモートコントロール(スマホ・ブラウザから手元のセッションを操作)

Team / Enterprise は管理者の有効化が要る。gateway は明示的に非対応。

○×××
クラウドセッション・スマホの Claude Code・Slack 連携(旧版)

Slack 連携は Pro / Max 向けの旧版(Team / Enterprise は Claude Tag。下の行)。クラウドセッションはリポジトリの取得と PR 作成が GitHub 前提で、CodeCommit のリポジトリでは使えない(非 GitHub は読み取り専用のバンドルで送れる)。

○×××
Claude Tag(Slack で @Claude に依頼)

Team / Enterprise のみ。個人プランと他社基盤では不可。

△×××
Code Review(PR を自動で見る GitHub App)

研究プレビューで Team / Enterprise のみ。ZDR・HIPAA の組織では不可。GitHub 前提(手元の /code-review は上の行のとおり全列可)。

△×××
/schedule(クラウドで定期実行するルーティン)

リポジトリの取得に GitHub が要る(公式)。CodeCommit では使えない。

○×××
Ultrareview(クラウドの多エージェントレビュー)

ZDR・HIPAA の組織では不可。

○×××
Chrome 拡張○×××
Computer use

Pro / Max のみ。

△×××
Artifacts・音声入力○×××
claude.ai のコネクタ・同期されるスキルとプラグイン○×××
管理
使用量ダッシュボード・分析 API

契約はダッシュボードが Team / Enterprise、API が Enterprise。API キーは Console のダッシュボードと API(貢献度の指標だけは claude.ai の Team / Enterprise が必要)。OpenTelemetry のメトリクスは全列で出せる(API キーと Bedrock は利用者属性を自分で付ける)。

△○××
設定を全員に配る

管理コンソールから配るサーバー管理設定は、契約・API キーの Team / Enterprise のみ。Bedrock 直接は MDM などで管理設定ファイルを配る(ファイルはどの列でも使える)。gateway は IdP のグループごとに配る。

△△△○
利用者・グループごとの支出上限

契約は Team / Enterprise で組織・グループ・個人の単位。API キーはワークスペース単位の上限だけ(利用者ごとではない)。Bedrock 直接は AWS 側の仕組み(IAM・Budgets など)で代用。gateway には利用者・グループごとの専用機能がある。

△△×○
社内 SSO でサインイン・鍵を配らない

契約は Team / Enterprise の SSO。API キーの列は、Console も SSO でメンバーを追加でき、v2.1.242 以降は API キーを作らずに Console のアカウントでサインインできる。Bedrock 直接は IAM Identity Center(aws sso login)。gateway は OIDC の IdP。

△△△○
OpenTelemetry のメトリクス・ログ出力

どの入口でも出せる。Bedrock 直接は利用者属性が user.id と session.id だけなので OTEL_RESOURCE_ATTRIBUTES で自分で付ける。gateway 経由はゲートウェイ発行のトークンをもとに CLI が利用者の属性を付ける。

○○○○
Zero Data Retention(ZDR)

契約は適格な Enterprise 組織に Anthropic が個別に有効化。API キーは適格な組織。Bedrock は AWS との契約と設定による(Fable 5 / 5.1 は不正利用検知のため最大30日保持)。ZDR で止まる機能: クラウドセッション・Claude Tag・Artifacts・Remote Control(公式の一覧)、Code Review・Ultrareview(各機能ページ)。

△△△-
Bedrock Guardrails(入出力のフィルタ)

Bedrock 直接はヘッダーで渡す(bedrock-runtime のみ。Mantle 入口は不可)。gateway は Bedrock 上流の guardrail 設定(v2.1.281 以降)で、入力タグに依存するフィルタは動かない。Anthropic 直の契約には同等の機能が無い。

××○△
  • gateway 列は Claude apps gateway(claude gateway コマンドで動く Anthropic 製の自社ホスト用ゲートウェイ)を Bedrock に向けた場合。
  • Bedrock 直接の列は、機能表では Mantle 経由も同じ列に含まれる(機能の可否は同じ。違うのは使えるモデル)。

デスクトップアプリを前提にした場合(Claude Desktop の Chat / Cowork / Code)

Claude Desktop を使う前提です。通常版は claude.ai の契約でログインします。Bedrock や API キーで使うには、組織向けの「Claude Desktop on 3P」という配布形態になります(MDM かブートストラップサーバー、または claude.ai の管理コンソールで設定を配る)。根拠は主に Claude Desktop on 3P の Features(Claude Enterprise との比較表)です。通常版の列は Enterprise の値で、Pro / Max で違うものは注に書きました。

機能
通常版
claude.ai の契約でログイン
Desktop on 3P + Anthropic API
推論先を Anthropic の API キーに
Desktop on 3P + Bedrock
推論先を Bedrock に
基本の画面
Chat・Cowork・Code の各タブ

3P では Chat は管理者が chatTabEnabled で有効にする(既定はオフ)。Chat でのコード実行は chatAdvancedFileAnalysisEnabled が別に要る。SSH リモートも sshHostAllowlist を設定するまでオフ。

○○○
Auto mode(Code)

安全分類器に対応したモデルが必要で、対象は推論先とアプリの版による(CLI の Bedrock での規則は Sonnet 5 以降・Opus 4.7 以降・Fable 系)。

○○△
Projects・ファイルの添付と出力○○○
分析のためのコード実行(手元の隔離環境)○○○
並行セッション・差分レビュー・予定タスク(Scheduled tasks)

手元の予定タスクは、どの列もアプリが開いていてパソコンが起きている間だけ動く。通常版にはクラウドで動くルーティンが別にある。

○○○
SSH で別マシン上の Code セッション

3P ではベータ。

○○○
外部とつなぐ
Web 検索

Bedrock には推論側の検索がないので、同梱の websearch サーバー(Brave・Tavily・Exa・自作)を managedMcpServers で配って使う。

○○△
Web Fetch(URL を指定して取得)

3P の隔離環境は既定で推論先にしか出られない。coworkEgressAllowedHosts に許可するホストを足す(公式)。Code セッションのホスト名確認は skipWebFetchPreflight で止められる。

○△△
内蔵ブラウザ(Browser ペイン)

3P は builtinBrowserEnabled で有効化。

○○○
Claude in Chrome(手元の Chrome を操作)

3P は Enterprise の管理コンソールで管理している組織のみ。

○△△
ローカル / リモート MCP・Microsoft 365 / GitHub コネクタ○○○
スキル・プラグイン・フック・プラグインのマーケットプレイス

3P は管理者の配布が中心(利用者による追加は、管理者が止めない限りできる)。

○○○
Artifacts

3P は作れるが、利用者どうしの共有はできない。

○△△
メモリ

3P は端末内に保存(Anthropic 側には置かない)。Chat でのチャット履歴の検索と夜間の要約生成は 3P では使えない。

○△△
手元の外・ほかの端末
Anthropic のクラウドで動くセッション○××
スマホアプリ・claude.ai の Web からの利用○××
Dispatch(スマホから手元の Desktop にセッションを起動)

通常版でも Pro / Max のみ(Team / Enterprise は不可)。3P の比較表には行がなく、スマホ(Mobile)が使えないことから × と判断。

△××
利用者どうしの共有(チャット・プロジェクト・Artifacts・スキル)○××
音声モード○××
Computer use

通常版でも Pro / Max のみ。Enterprise と 3P はどちらも不可。

△××
Claude Design・Claude Security・Claude Tag

Claude Tag は Team / Enterprise のみ(個人プランと他社基盤では不可)。Design と Security の契約ごとの範囲は未確認(比較表は Enterprise で ○)。

△××
管理・課金・データ
設定の配布(機能の有効・無効、MCP の許可一覧、スキルの配布)

通常版は Team / Enterprise の管理コンソール。3P は MDM・ブートストラップ・管理コンソール。

△○○
利用者ごとの利用上限・OpenTelemetry の出力

3P の利用上限は端末側で数える目安(サーバーで強制される割り当てではない)。

○△△
Compliance API・Analytics API

通常版は Enterprise。3P は OpenTelemetry で自前の収集基盤に送って代用。

△××
  • Desktop on 3P は主に組織向けの配布形態。評価用には、アプリ内の設定画面で1台だけ設定することもできる。
  • 課金: 通常版は席(シート)単位の契約。3P はトークンの従量課金で、Anthropic API なら Anthropic から、Bedrock なら AWS の請求書。
  • 会話の保存場所: 通常版は Anthropic 側。3P は端末内。推論は、Anthropic API なら Anthropic が、Bedrock なら AWS が処理する。
  • Claude apps gateway を立てると、Desktop の Cowork / Code タブ(設定すれば Chat も)をゲートウェイ経由で Bedrock に向けられる。上流が Bedrock なら Web 検索は、同梱の websearch サーバー(または検索用のリモート MCP)を設定して使う。
  • 公式は、Anthropic の製品を直接使える組織なら通常版のほうが導入が簡単で新機能も早い、としている。

どう組むか・どう使わせるか: 客先と一緒に決める

ここまでは「何ができる・できないか」の部品の一覧でした。実際に使うには、どう組むか(アーキテクチャ)と、どう使わせるか(運用ルール)の2つを決める必要があります。この節は、自社の社内規程でも客先への提案書でもなく、客先と一緒に決めるための土台として書いています。決める項目ごとに、選択肢・このページの推奨・どちらが主に決めるか(AWS アカウントとデータを持つ側=客先、使う側=自社)を付けました。推奨は、このページで確かめた事実に基づくこのページの見方で、最終的な判断は両者の契約と規程によります。

構成パターン(段階的に広げる)

パターン B/C の構成図。客先の AWS アカウントの中に Claude apps gateway(ECS Fargate + RDS)、bedrock-runtime の jp. 推論プロファイル、GitHub Actions 用の IAM ロール、EventBridge Scheduler と ECS Fargate の無人実行、CloudTrail と CloudWatch がある。自社と客先の開発者は社内 IdP でゲートウェイにサインインし、CLI・IDE 拡張・Desktop on 3P から使う。検索は MCP サーバー経由で外部の検索事業者へ。
パターン B / C の構成図(タップで原寸)。draw.io の元ファイル: claude-on-bedrock-team.drawio / draw.io で開く

A. まず小さく: 検証できる人が CLI で使う

向いている相手: AI の答えを自分で検証できるエンジニア数名。PoC や、使い方を一緒に確かめる段階。

どう組むか
  • CLI(+ VS Code 拡張)から bedrock-runtime を直接呼ぶ
  • 認証は客先が IAM で払い出す認証情報(IAM ユーザーのアクセスキーを ~/.aws/credentials の profile に)。Identity Center の SSO は使わない。長期の鍵なので、ユーザーあたり2本でローテーションし、漏えい時は即時に無効化する
  • モデルは jp. の Opus 5.5 / Sonnet 4.6 / Haiku 4.5 に固定(国内処理)。global を許すなら Fable 5.1・Sonnet 5.5 も使える
AWS 側に用意するもの
  • IAM ユーザー / グループのポリシー(Claude Code の IAM ポリシー + jp. 以外の Deny)と SCP
  • CloudTrail(既定で記録。inferenceRegion の確認用)
  • AWS Budgets などの費用アラート(構成案)
運用ルール
  • 入れてよいデータの線引き(下のチェックリスト 1)
  • 出典ルール: 事実を書くときは取得した URL を付ける。取得していなければ『記憶からの回答』と明記する
  • 4つの別名の固定と availableModels(上の「国内で完結させる」の手順)

それでもできないこと: WebSearch ツールは使えない(検索 MCP を足せば補える)。スマホからの操作とクラウドでの定期実行(/schedule)は使えない。デスクトップアプリは A には含めない(C で足す)。手元の /loop はセッションを開いている間だけ動く。使う人が置き場所を知っている前提で成り立つ構成。

B. チームで使う: 国内完結 + ゲートウェイ + CI

向いている相手: 自社と客先の開発チーム。知識の差がある人が混ざる。レビューや定期処理も任せたい。

どう組むか
  • Claude apps gateway(claude gateway)を客先 AWS の私設ネットワークに立て、上流を bedrock-runtime の jp. モデルに限定。開発者は社内 IdP(OIDC)でサインインし、AWS の鍵を持たない
  • ゲートウェイが IdP のグループごとに管理設定(使えるモデル・許可ルール・MCP)と支出上限を配る
  • 検索は、検索ツールを持つ MCP サーバーを管理設定で配る(検索語が外部に出ることを合意しておく)
  • PR レビューと定期処理は GitHub Actions(Bedrock 版、OIDC で IAM ロール)か、EventBridge Scheduler → ECS Fargate の claude -p
AWS 側に用意するもの
  • ゲートウェイ: ECS Fargate か EKS + RDS(PostgreSQL)+ Secrets Manager + 内部 ALB(公式の AWS 構成例)
  • ゲートウェイのタスクロール: 公式構成例の権限(bedrock:InvokeModel・InvokeModelWithResponseStream・CountTokens)を、jp. の推論プロファイルと ap-northeast-1 / ap-northeast-3 の foundation-model に限定。gateway.yaml には jp. の ID を書いた models: ブロックが要る(米国以外のリージョンでは必須)。組織なら SCP で global を明示 Deny
  • GitHub の OIDC プロバイダ + IAM ロール(リポジトリで trust を絞る)
  • EventBridge Scheduler + ECS Fargate(or CodeBuild)+ タスクロール(構成案)
  • ADOT Collector → CloudWatch(OTLP のメトリクス。利用者の属性は、ゲートウェイ発行のトークンをもとに CLI が付ける)、CloudTrail、Cost Explorer
運用ルール
  • A のルールに加えて、グループごとの許可範囲(Auto mode の可否、Bash や WebFetch のドメイン、サンドボックス)
  • 支出上限を利用者・グループごとに設定(ゲートウェイの機能)
  • CloudTrail の inferenceRegion と費用を週1回確認する担当を決める

それでもできないこと: ゲートウェイ経由では Web 検索(WebSearch)・リモートコントロール・1時間キャッシュが使えない。スマホからの操作は依然として不可。デスクトップアプリは B には含めない(C で足す。ゲートウェイは opt-in で Desktop の設定も配れる)。

C. 全社に配る: Desktop on 3P を足す

向いている相手: エンジニア以外も含めて配る。Chat・Cowork の画面で使わせたい。

どう組むか
  • B の構成の上に、Claude Desktop on 3P を MDM(Intune・Jamf など)かブートストラップサーバーで配り、推論先をゲートウェイ(または Bedrock 直接)に向ける
  • Web 検索は同梱の websearch サーバー(Brave・Tavily・Exa・自作)を managedMcpServers で配る
  • Claude in Chrome を使うなら claude.ai の Enterprise 管理コンソールでの管理が必要(そうでなければ内蔵ブラウザ)
AWS 側に用意するもの
  • B と同じ。追加で、ブートストラップサーバーを使うならその配信先(内部 ALB など)
  • 検索事業者の API キーは Secrets Manager か、各端末の資格情報ヘルパーで配る
運用ルール
  • B のルールに加えて、職種ごとの機能の有効・無効(ローカル MCP、ファイルアクセスの範囲、Auto mode)
  • 利用者どうしの共有ができないので、成果物の置き場所(S3 など)を決める
  • 端末内に会話とメモリが残るので、端末の暗号化と退職時の消去手順

それでもできないこと: スマホ・claude.ai の Web・音声・Computer use・Claude Tag は使えない。公式は、Anthropic の製品を直接使える組織なら通常版のほうが簡単で新機能も早い、としている。

決めることのチェックリスト

「誰が」は主に決める側の目安です。客先 = AWS アカウントとデータを持つ側、自社 = 使う側、両者 = 一緒に決めるもの。

1. 入れてよいデータ

決める人: 客先
選択肢
個人情報・顧客データ・ソースコードのそれぞれについて、入れてよい / 伏せ字にする / 入れない
このページの推奨
国内処理でも外部事業者(AWS)に渡すことに変わりはない。契約と規程で決め、CLAUDE.md と管理設定の両方に書く。判断そのものはこのページではしない根拠の節 →

2. 推論を処理する場所

決める人: 客先
選択肢
jp. で国内(東京+大阪)に限定 / global も許す
このページの推奨
個人情報を扱う可能性があるなら jp. に限定。主に使うのは Opus 5.5・Sonnet 4.6・Haiku 4.5(ほかに Opus 4.8 / 4.7・Sonnet 4.5 も jp. あり。Sonnet 5.5・Fable 5.1 は不可)根拠の節 →

3. 入口

決める人: 両者
選択肢
bedrock-runtime / Mantle / Claude apps gateway を前に置く
このページの推奨
AWS の推奨は bedrock-runtime。チームで配るならゲートウェイで鍵と設定を集中管理根拠の節 →

4. 認証

決める人: 客先
選択肢
IAM Identity Center / IAM ロール / Bedrock の API キー / ゲートウェイの OIDC
このページの推奨
客先の決定: IAM で認証情報(IAM ユーザーのアクセスキー)を払い出す。長期の鍵になるので、2本持ちのローテーションと漏えい時の無効化(UpdateAccessKey)を運用に入れる。Identity Center の SSO やゲートウェイの OIDC は、ID 基盤がつながったときの次の一手根拠の節 →

5. モデルの固定と制限

決める人: 両者
選択肢
環境変数の固定だけ / + availableModels / + IAM・SCP の Deny
このページの推奨
3段すべて。設定の漏れを権限で止める根拠の節 →

6. 検索をどう補うか

決める人: 両者
選択肢
URL 指定の WebFetch だけ / 検索 MCP(外部の検索事業者)/ 社内文書の Knowledge Bases
このページの推奨
知識の浅い人が使うなら検索 MCP は必須に近い。検索語が外部に出ることを合意する根拠の節 →

7. 出典のルール

決める人: 自社
選択肢
任意 / CLAUDE.md で指示 / 管理設定で全員に配る
このページの推奨
全員に配る。『取得した URL を付ける』『記憶からの回答と明記する』の2行根拠の節 →

8. 許可の範囲

決める人: 両者
選択肢
Auto mode の可否、Bash の許可・拒否、WebFetch のドメイン、サンドボックス
このページの推奨
検証できる人と浅い人でグループを分け、ゲートウェイか管理設定ファイルで配る根拠の節 →

9. 無人実行と CI

決める人: 両者
選択肢
なし / GitHub Actions(Bedrock 版)/ AWS の Code シリーズ(CodeBuild + Webhook か CodeCommit)/ EventBridge → Fargate
このページの推奨
まず GitHub Actions(公式手順あり)。CI も AWS に置くなら CodeBuild(構成案)。定期処理が要るなら EventBridge → CodeBuild / Fargate(構成案)根拠の節 →

10. 見える化と確認の頻度

決める人: 客先
選択肢
AWS の請求だけ / OTEL → CloudWatch / ゲートウェイの支出上限
このページの推奨
OTEL を出し、CloudTrail の inferenceRegion と費用を週1回見る担当を決める根拠の節 →

11. 画面の配り方

決める人: 両者
選択肢
CLI と IDE 拡張だけ / Desktop on 3P を配る
このページの推奨
エンジニアだけなら CLI と IDE。非エンジニアに配るなら Desktop on 3P(MDM の運用が必要)根拠の節 →

12. 事故のときの手順

決める人: 客先
選択肢
誰に・何を・どこで確認するか
このページの推奨
誤送信の疑い → CloudTrail で該当リクエストと処理リージョンを確認 → 客先の規程に沿って報告。Bedrock は既定でモデルの入出力を保存しないが、Fable 5 / 5.1 は不正利用検知のために最大30日保持される(jp. に限定していれば Fable は使えないので該当しない)根拠の節 →

運用ルールの雛形

CLAUDE.md(リポジトリに置く)

# このリポジトリで Claude Code を使うときの約束(雛形)

## 入れてはいけないもの
- 個人情報(氏名・住所・電話・メール・会員番号)と顧客の取引データは、プロンプトにもファイルにも入れない
- 本番の接続情報・鍵は入れない(.env は読まない)

## 出典のルール
- 事実(仕様・数値・日付)を述べるときは、このセッションで取得した URL を必ず付ける
- 取得していないなら、文の先頭に「記憶からの回答:」と書く
- 公式ドキュメントは URL を指定して WebFetch で取る(許可されたドメイン以外は確認が出る)
- 検索ツール(MCP)が無い構成では、Web 検索はできないと心得る

## 作業のルール
- 本番環境には触らない。デプロイは人が行う
- 判断に迷う変更は、実行せず選択肢を提示する

CLAUDE.md は指示であって強制ではないので、守られないこともあります。強制したいものは右の管理設定と権限で止めます。

managed-settings.json(MDM か apps gateway で配る)

{
  "availableModels": [
    "jp.anthropic.claude-opus-5-5",
    "jp.anthropic.claude-sonnet-4-6",
    "jp.anthropic.claude-haiku-4-5-20251001-v1:0"
  ],
  "enforceAvailableModels": true,
  "allowManagedPermissionRulesOnly": true,
  "permissions": {
    "defaultMode": "default",
    "disableBypassPermissionsMode": "disable",
    "deny": [
      "Read(**/.env)",
      "Read(**/.env.*)"
    ],
    "allow": [
      "WebFetch(domain:docs.aws.amazon.com)",
      "WebFetch(domain:platform.claude.com)",
      "WebFetch(domain:code.claude.com)"
    ]
  },
  "env": {
    "CLAUDE_CODE_USE_BEDROCK": "1",
    "AWS_REGION": "ap-northeast-1",
    "ANTHROPIC_BEDROCK_REGION_PREFIX": "jp",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "jp.anthropic.claude-opus-5-5",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "jp.anthropic.claude-sonnet-4-6",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "jp.anthropic.claude-haiku-4-5-20251001-v1:0",
    "ANTHROPIC_DEFAULT_FABLE_MODEL": "jp.anthropic.claude-opus-5-5"
  }
}

パターン A(Bedrock を直接呼ぶ)向けの管理設定ファイル(managed-settings.json)の雛形。キー名と置き場所は Claude Code の設定リファレンスで確認したもの(availableModels・enforceAvailableModels・allowManagedPermissionRulesOnly・permissions.defaultMode・permissions.disableBypassPermissionsMode・permissions.deny / allow・env)。注意点が3つあります。(1) 許可ルールは deny → ask → allow の順で評価され、allow で deny の例外は作れないので、WebFetch(domain:*) を deny に入れると allow したドメインまで全部止まります。この雛形は許可したドメイン以外は都度確認にしています(allowManagedPermissionRulesOnly が true なので、利用者が『常に許可』を保存することはできません)。(2) WebFetch のドメイン制限は Bash の curl には効きません。通信を本当に絞るならサンドボックスのネットワーク許可一覧と組にします。(3) ゲートウェイ(パターン B・C)では、この内容を gateway.yaml の managed.policies[].cli に書き、availableModels は接頭辞のない正規の ID(claude-sonnet-4-6 など)で書きます。(4) 通信を閉じた環境では WebFetch の安全確認(api.anthropic.com にホスト名を送る)が失敗するので、skipWebFetchPreflight か api.anthropic.com の許可を先に決めます。.env の Read の deny は、Bash からの間接的な読み取り(grep やスクリプト経由)までは止めないので、サンドボックスと組にします。値はすべて例で、そのまま使う前に自分の環境で動作を確かめてください。

週1回の確認(担当を決める)

  • CloudTrail: additionalEventData.inferenceRegion に ap-northeast-1 / ap-northeast-3 以外が出ていないか
  • 費用: Cost Explorer(モデル提供元の名前で載る)とゲートウェイの支出上限の消化率
  • モデル: AWS のモデルカードで jp. の対応モデルが増えていないか(Sonnet 5.5 に jp. が来たら切り替えを検討)
  • ルール: 出典なしの回答で問題が起きた事例を集め、CLAUDE.md と管理設定を更新する

知識がない人が使うとき

Bedrock で減るのは機能だけではありません。AI の答えを確かめる手段が減ります。その影響は、使う人の知識が浅いほど大きくなります。

根拠を示してもらえない

Web 検索があれば、Claude は答えに出典の URL を付けられます。知識がない人でも、リンクを開けば最低限の確認ができます。検索がないと、Claude は学習済みの知識で答えがちになり、出典が付きません。

間違いに気づく手がかりが消える

答えの正しさを自分で判断できない人にとって、出典はいちばん手軽な確認手段です。それがないと、ハルシネーション(もっともらしい誤り)を見抜く入口がなくなります。版の古い知識のまま答えても気づけません。

補うための指示が書けない

「OWASP ASVS を GitHub から git clone して、その要件で評価して」のように、置き場所を示して取らせれば検索がなくても調べられます。でもこの指示は、ASVS という資料があると知っている人にしか書けません。

なお、Web 検索があってもハルシネーションはなくなりません。出典の URL が付いていても、その中身が答えを本当に支えているかは別の話です。それでも、確かめる入口があるかないかの差は大きい、というのが要点です。

配る側が仕組みで補う

使う人に頼み方の工夫を求めるのは無理があるので、用意する側が最初から入れておきます。

検索用の MCP サーバーを配る

Brave・Tavily などの検索 API を MCP サーバーとして管理者が設定して配れば、Bedrock でも検索できます。使う人は意識しなくて済みます。

CLAUDE.md に「出典を付ける」ルールを書いておく

例:「事実を述べるときは、このセッションで取得した URL を必ず付ける。取得していないなら『記憶からの回答』と明記する」。学習済みの知識で答えたことが、使う人に見えやすくなります。ただし CLAUDE.md は強制力のある設定ではなく指示なので、守られないこともあります。

AWS で使いたいなら Claude Platform on AWS も検討する

請求と IAM は AWS のまま、Web 検索も使えます(公式の比較表でも、Bedrock では使えないが Claude Platform on AWS では使えるものとして Web 検索が挙げられています)。ただし運営とデータ処理は Anthropic で、AWS の境界の中で完結する Bedrock とは性質が違います。検索用の MCP サーバーも、検索語を外部の検索事業者に送る点は同じです。

Bedrock 版の Claude Code は、知識がある人が手元で使う道具としては十分です。知識がない人に配る道具としては、検索と出典が欠けているぶん危ういので、上の対策を最初から入れておくのが前提になります。

どれを選ぶか

スマホから作業を続けたい、デスクトップアプリや Chrome 連携、定期実行(/schedule)も使いたい

→ claude.ai の契約(Pro / Max など)でログイン。スマホからの操作と /schedule は API キーでも Bedrock でも使えない(デスクトップアプリは組織向けの Desktop on 3P 構成なら Bedrock でも動く)

AI の答えを自分で検証できる人が、手元の CLI で使う

→ Bedrock でも十分(調べものは URL を指定して取らせる)

知識がまだ浅い人(新人など)に配る

→ Web 検索が使える入口を選ぶ。Bedrock にするなら検索の MCP サーバーと出典ルールを最初から入れる

会社の AWS の中で完結させたい。IAM で権限を管理し、請求も AWS にまとめたい。使うのは会話・ツール使用・キャッシュが中心

→ Bedrock。Guardrails などの AWS 側の機能を使うなら bedrock-runtime、Messages API の形で揃えたいなら Mantle(推奨は両社で違い、AWS は bedrock-runtime、Anthropic は新しいモデルに Mantle を案内しています)

AWS の請求と IAM で使いたいが、Web 検索・コード実行・Files API・Managed Agents・Batches などもすぐ使いたい

→ Claude Platform on AWS

新機能を最初に試したい。Fast mode やサーバー側フォールバックを使いたい

→ Anthropic の API(Claude API)。Fast mode は提供を受けた組織のみで、claude.ai の契約でも使える

JSON スキーマで出力を縛る構造化出力が必須で、Bedrock から離れられない

→ 旧来の連携(InvokeModel または Converse)で対応モデル(Opus 4.6・Sonnet 4.6・Sonnet 4.5・Opus 4.5・Haiku 4.5)を使う。strict なツールも構造化出力の一部なので、新しい入口では代わりにならない

出典

Anthropic 側と AWS 側の両方を読み、食い違う点は両方を書きました。