Claude Code を Amazon Bedrock で使う

Claude Code エンジニアリング 5分で読めます

Claude Code は Anthropic の API だけでなく、Amazon Bedrock 経由でも動かせます。社内の AWS アカウントで利用状況と課金をまとめたい場合や、ネットワークの出口を AWS に寄せたい場合に使う構成です。ここでは公式ドキュメントに基づき、サインインウィザードでの設定と、CI や全社展開で使う環境変数による手動設定の両方を整理します。

概要と前提条件

Amazon Bedrock 構成では、Claude Code は Anthropic への直接リクエストではなく、あなたの AWS アカウントの Bedrock を経由してモデルを呼び出します。認証は AWS の資格情報で行われるため、Claude Code 側の /logout は使えなくなります。また WebSearch ツールは Amazon Bedrock では利用できません

公式ドキュメントが挙げている前提条件は次の4点です。

個人で自分の資格情報を使うならウィザード、チームや CI へ展開するなら手動設定とモデルのピン留めを先に済ませてから配布する、というのが公式の想定する使い分けです。

サインインウィザードで設定する

AWS の資格情報が手元にある場合は、ログインウィザードが設定を案内します。AWS 側の準備はアカウントごとに一度だけ必要で、Claude Code 側はウィザードが面倒を見ます。

  1. AWS アカウントで Anthropic のモデルを有効にする。Amazon Bedrock コンソールの Model catalog から Anthropic のモデルを選び、ユースケースのフォームを送信します。アクセスは送信直後に付与されます。
  2. Claude Code を起動して Amazon Bedrock を選ぶ。claude を実行し、ログイン画面で「3rd-party platform」を選び、続けて「Amazon Bedrock」を選びます。すでにサインイン済みでチャット画面が出る場合は /setup-bedrock を実行するとウィザードが開きます。このコマンドは、Bedrock が設定されるまでコマンド一覧に出てきませんが、入力すれば動きます。
  3. ウィザードの案内に従う。AWS への認証方法として、~/.aws から検出された AWS プロファイル、Amazon Bedrock の API キー、アクセスキーとシークレット、すでに環境にある資格情報のいずれかを選びます。ウィザードはリージョンを読み取り、アカウントで呼び出せる Claude モデルを確認し、ピン留めまで行います。

設定結果はユーザー設定ファイルの env ブロックに保存されるので、環境変数を自分で export する必要はありません。書き込み先は ~/.claude/settings.jsonCLAUDE_CONFIG_DIR が設定されていれば $CLAUDE_CONFIG_DIR/settings.json です。設定後もいつでも /setup-bedrock で開き直して、資格情報・リージョン・モデルのピンを変更できます。

環境変数で手動設定する

CI やスクリプト化した全社展開など、ウィザードを使えない場面では環境変数で設定します。

1. ユースケースの申請

Anthropic のモデルを初めて呼び出す前に、ユースケースの詳細を送信します。これは AWS アカウントごとに一度だけです。AWS Organizations を使っている場合は、管理アカウントから PutUseCaseForModelAccess API で一度送信すれば、承認は子アカウントへ自動的に及びます。この呼び出しには bedrock:PutUseCaseForModelAccess の IAM 権限が要ります。

2. AWS 資格情報の設定

Claude Code は AWS SDK の既定の資格情報チェーンを使います。公式が挙げている方法は次のとおりです。

# A: AWS CLI の設定
aws configure

# B: 環境変数(アクセスキー)
export AWS_ACCESS_KEY_ID=your-access-key-id
export AWS_SECRET_ACCESS_KEY=your-secret-access-key
export AWS_SESSION_TOKEN=your-session-token

# C: 環境変数(SSO プロファイル)
aws sso login --profile=your-profile-name
export AWS_PROFILE=your-profile-name

# D: AWS マネジメントコンソールの資格情報
aws login

# E: Amazon Bedrock の API キー
export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key

解決した資格情報はメモリ上にキャッシュされ、有効期限の5分前まで、期限を持たない場合は1時間再利用されます。API から資格情報エラーが返るとキャッシュは破棄され、再試行で解決し直します。毎回チェーンを解決させたい場合は CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1 を設定します。チェーンの解決は60秒でタイムアウトし、ブラウザ経由の SSO と MFA を挟むなど正当に時間がかかる場合は CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS でミリ秒単位に延ばせます。

3. Claude Code 側の設定

# Bedrock 連携を有効にする
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1  # AWS プロファイルにリージョンがあれば省略可

# 任意: 小型・高速モデルのリージョンだけを変える
export ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION=us-west-2

# 任意: 独自エンドポイントやゲートウェイ向けに URL を上書きする
# export ANTHROPIC_BEDROCK_BASE_URL=https://bedrock-runtime.us-east-1.amazonaws.com

リージョンは AWS_REGIONAWS_DEFAULT_REGION、有効なプロファイルの regionus-east-1 の順で解決されます。解決結果は /status で確認でき、AWS の設定ファイルや既定値から来た場合はその出所も表示されます。

4. IAM ポリシー

公式が示す最小構成のポリシーは、bedrock:InvokeModelbedrock:InvokeModelWithResponseStreambedrock:ListInferenceProfilesbedrock:GetInferenceProfile の4アクションと、aws:CalledViaLastbedrock.amazonaws.com であることを条件にした marketplace のサブスクリプション権限です。bedrock:GetInferenceProfile はアプリケーション推論プロファイルの ARN を基盤モデルへ解決するために使われ、権限が無いと自動でもう一方の形式へ再試行するため失敗はしないものの往復が1回増えます

モデルのピン留めと Mantle エンドポイント

複数人へ配布するときは、モデルのバージョンをピン留めしてください。ピン留めしないと sonnetopus のエイリアスは Claude Code 内蔵の既定値に解決され、それが最新でなかったり、そもそもアカウントで使えなかったりします。

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'

これらはクロスリージョン推論プロファイルの ID(us. 接頭辞)です。AWS GovCloud では us-gov. を使います。

コスト面で見落としやすい点があります。Amazon Bedrock で主モデルをピン留めしていない場合、既定の主モデルは us.anthropic.claude-opus-5 です。Opus はトークン単価が Sonnet より高いため、ピン留めしていない環境は Opus の料金で課金されます。Sonnet 4.5 を主モデルとして使い続けたいなら、ANTHROPIC_MODEL にそのフルモデル ID を設定します。

セッションタイトル生成のようなバックグラウンド処理は通常 Haiku 系の小型モデルで動きますが、Amazon Bedrock では Haiku が有効でないアカウントやリージョンがあるため、既定の Sonnet モデルが使われます。Haiku を使いたい場合は ANTHROPIC_DEFAULT_HAIKU_MODEL にアカウントで使えるモデル ID を設定します。

同じモデルファミリーの複数バージョンを、それぞれ別のアプリケーション推論プロファイル ARN へ振り分けたい場合は、環境変数ではなく設定ファイルの modelOverrides を使います。/model で選ばれたバージョンが、対応する ARN へルーティングされます。

Mantle エンドポイント

Mantle は、Amazon Bedrock の Invoke API ではなく Anthropic ネイティブの API 形式で Claude モデルを提供する Amazon Bedrock のエンドポイントです。AWS の資格情報・IAM 権限・awsAuthRefresh の設定はそのまま使えます。

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

有効になっていれば /status のプロバイダ欄が Amazon Bedrock (Mantle) になります。Mantle のモデル ID は anthropic. で始まりバージョン接尾辞が付きません(例: anthropic.claude-sonnet-5)。CLAUDE_CODE_USE_BEDROCKCLAUDE_CODE_USE_MANTLE を両方設定すると、Mantle 形式の ID は Mantle へ、それ以外は Invoke API へと同一セッション内で振り分けられます。

つまずきやすい点

原文は公式ドキュメントの Claude Code on Amazon Bedrock です。バージョンごとの挙動の違いが多い領域なので、実際に設定する前に公式の最新版を確認してください。