AWS_BEARER_TOKEN_BEDROCKとは — BedrockをAPIキーで認証する変数
AWS_BEARER_TOKEN_BEDROCKはAmazon Bedrock APIキーでClaude Codeを認証する環境変数です。フルAWS認証との違い、設定方法、注意点をまとめます。
AWS_BEARER_TOKEN_BEDROCK は、Amazon Bedrock APIキー1本でClaude Codeを認証する環境変数です。アクセスキーとシークレット、セッショントークン、AWSプロファイルといったフルセットのAWS認証情報を組まずに済み、CI環境やスクリプトでの配布に向いています。Claude Code v1.0.51(2025年7月11日のリリース)で追加されました。
他の認証方式と何が違うか
Claude CodeがAmazon Bedrockに接続する認証方式は5つあります。AWS_BEARER_TOKEN_BEDROCK はそのうちの1つで、他の4つとは仕組みそのものが異なります。
| 方式 | 必要なもの | 向く場面 |
|---|---|---|
AWS CLI設定(aws configure) | 必要なものアクセスキーとシークレット | 向く場面個人の開発端末 |
| 環境変数(アクセスキー) | 必要なものAWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKEN | 向く場面CI・一時的な認証 |
| 環境変数(SSOプロファイル) | 必要なものAWS_PROFILE + aws sso login | 向く場面組織のSSO環境 |
| AWS Management Console認証 | 必要なものaws login | 向く場面ブラウザ経由のサインイン |
| Bedrock APIキー | 必要なものAWS_BEARER_TOKEN_BEDROCK 1つ | 向く場面フルAWS認証情報を配りたくない場面 |
認証情報の通り道の違い
上の4方式
AWSのデフォルト認証プロバイダーチェーンを1度だけ解決し、メモリー上に保持します。有効期限の5分前まで、期限の情報が無ければ1時間まで使い回します。APIが認証エラーを返すとキャッシュを消して解決し直します(v2.1.207以降)。1回の解決は60秒でタイムアウトします。
Bedrock APIキー
キー自体が認証情報なので、チェーンの解決もキャッシュも関係しません。60秒のタイムアウトも、CLAUDE_CODE_SKIP_AWS_CRED_CACHE も効きません。
この違いが、実務上の利点と制約の両方につながります。以降の節で順に見ます。
設定のしかた
キーはAWS側で発行します。Bedrockコンソールで発行した値を控え、環境変数として渡せば設定は完了です。アクセスキー・シークレット・セッショントークンを個別に用意する必要はありません。
手動で設定する場合の最小構成
- 1
キーを渡す
AWS_BEARER_TOKEN_BEDROCKに発行したAPIキーを設定します。 - 2
Bedrockを有効にする
CLAUDE_CODE_USE_BEDROCK=1を設定します。前者は認証情報、後者はBedrockを使うこと自体を有効にするフラグで、役割が別です。 - 3
リージョンを必要なら指定する
プロファイルにリージョンが無い場合や上書きしたい場合は
AWS_REGIONを設定します。
export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key
export CLAUDE_CODE_USE_BEDROCK=1
claude対話的に設定する道もあります。claude 起動時のログインプロンプトで3rd-party platformを選び、続けてAmazon Bedrockを選ぶとウィザードが開きます。すでにサインイン済みでチャット画面が出ている場合は、/setup-bedrock で同じウィザードを開き直せます。CLAUDE_CODE_USE_BEDROCK=1 が未設定のあいだ、このコマンドはコマンドメニューに表示されません。全文を入力する必要があります。
ウィザードでは、AWSプロファイル・Bedrock APIキー・アクセスキーとシークレット・環境にすでにある認証情報の4択から認証方法を選びます。リージョンを聞かれたあと、アカウントで呼び出せるClaudeモデルを検証し、モデルのピン留めまで進みます。結果は ~/.claude/settings.json の env ブロックに保存されます。CLAUDE_CONFIG_DIR を設定していれば、保存先は $CLAUDE_CONFIG_DIR/settings.json です。手で環境変数を管理する必要はなくなります。
{
"env": {
"AWS_BEARER_TOKEN_BEDROCK": "your-bedrock-api-key",
"CLAUDE_CODE_USE_BEDROCK": "1"
}
}APIキーがこのファイルに平文のJSONとして残る点は、端末ごとに管理するキーの置き場所として意識しておく価値があります。共有リポジトリのプロジェクト設定ではなく、ユーザー設定に書かれる点も確認しておくと安心です。
Bedrockを使っているあいだは、/logout コマンドが使えません。認証がAWS認証情報で処理されるためです。キーを切り替えたいときは /setup-bedrock を開き直すか、環境変数を差し替えます。
症状から原因を切り分ける
APIキーの運用では、キーの値そのものより周辺の設定で詰まることが多くなります。公式ドキュメントと変更履歴に残っている事例を、症状別に並べると次のとおりです。
| 症状 | 原因の候補 | 確認すること |
|---|---|---|
403 Authorization header is missing | 原因の候補v2.1.94で入ったリグレッション | 確認することv2.1.96以降に更新する |
| SigV4認証が失敗する(CI) | 原因の候補未設定の入力が空文字列で渡っている | 確認することAWS_BEARER_TOKEN_BEDROCK などが空文字列になっていないか |
| 新しいモデルを使うたびに遅い | 原因の候補bedrock:GetInferenceProfile の権限不足 | 確認することキーのポリシーに権限があるか |
default-chain credential resolve timed out | 原因の候補チェーン経由の認証が残っている | 確認することAPIキー運用ならこのエラーは対象外 |
この変数にまつわる変更履歴
- v1.0.51 / 2025年7月11日Bedrock APIキーに対応
環境変数
AWS_BEARER_TOKEN_BEDROCKによる認証が追加されました。 - v2.1.94 / 2026年4月7日403エラーのリグレッションが混入
AWS_BEARER_TOKEN_BEDROCKまたはCLAUDE_CODE_SKIP_BEDROCK_AUTHを使うと、Bedrockへのリクエストが403で失敗しました。 - v2.1.96 / 2026年4月8日403エラーを修正
上記のリグレッションが修正されました。
- v2.1.97 / 2026年4月8日空文字列の扱いを修正
GitHub Actionsは未設定の入力を空文字列として渡します。
AWS_BEARER_TOKEN_BEDROCKやANTHROPIC_BEDROCK_BASE_URLが空文字列になり、SigV4認証が失敗する不具合が直りました。 - v2.1.207 / 2026年7月11日チェーンのキャッシュとタイムアウト
チェーン経由の認証に、資格情報のキャッシュと60秒のタイムアウトが入りました。APIキーはこの対象外です。
v2.1.97より前のClaude Codeを固定しているCI環境では、変数が空文字列になっていないかをワークフロー定義側で確認できます。
クレデンシャルキャッシュの対象外という制約
チェーン経由の認証で働く60秒のタイムアウトと、CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS による延長は、チェーンを通る方式だけが対象です。
Bedrock APIキーはチェーン自体を通りません。そのため AWS default-chain credential resolve timed out というエラーの対象にもなりません(AWS default-chain credential resolve timed outの対処参照)。credential_process コマンドが入力待ちで固まる、といったチェーン特有のトラブルを構造的に避けられる点が、APIキーを選ぶ実務上の利点です。
逆方向にも働きます。CLAUDE_CODE_SKIP_AWS_CRED_CACHE はキャッシュを無効化してチェーンを毎回解決し直す設定です。APIキーには関係せず、設定しても何も起きません。SSOプロファイルでこの変数を有効にすると、リクエストのたびにIAM Identity Centerへ資格情報を取りにいきます。
ウィザードにも同じ線引きがあります。資格情報を検証する各AWS呼び出しに60秒の上限がかかる動きは、APIキーで認証した場合を除いて適用されます。APIキーを選んだ場合、ウィザード側の Timed out after 60s waiting for AWS は出ません。
IAM権限が絞られやすい点に注意
Bedrock APIキーに付くポリシーは、フルIAMロールより狭いことが一般的です。bedrock:GetInferenceProfile 権限が欠けていると、挙動が変わります。この権限は、Claude Codeがアプリケーション推論プロファイルARNを背後の基盤モデルに解決し、そのモデルに合ったリクエスト形式を選ぶために使われます。
権限が無くても、リクエストは失敗しません。Claude Codeは別の形式で1回だけ再試行し、結果として成功します。ただし新しいモデルを使うたびに余分な往復が発生します。避けるには権限を付与します。IAMポリシーの具体的な書き方はClaude Code Bedrock IAM設定とクロスリージョン推論プロファイルの組み方にまとめています。この状況が最も起こりやすいのは、トークンのポリシーがフルロールより狭くなりがちなAPIキー運用です。
Bedrock連携全体の環境変数を見る
Amazon Bedrockを有効にする一連の環境変数の全体像です。
# Bedrock連携を有効化
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1
# 認証(5方式のいずれか。ここではBedrock APIキー)
export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key
# 任意: small/fastモデルのリージョンを個別指定
export ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION=us-west-2Bedrockでは、ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION だけを設定しても効きません。ANTHROPIC_DEFAULT_HAIKU_MODEL(または非推奨の ANTHROPIC_SMALL_FAST_MODEL)もあわせて設定します。
リージョンの解決順序は AWS_REGION → AWS_DEFAULT_REGION → 有効なAWSプロファイルの region → us-east-1 です。プロファイルは、認証情報ファイル、設定ファイルの順に読まれます。地域名の形をしていない値(スラッシュ・ドット・空白を含むもの)は未設定として扱われます。AWS設定ファイルからの読み取りはv2.1.172で入りました。解決結果は /status で確認でき、設定ファイルや既定値から決まった場合は出所も表示されます。
Claude Platform on AWSとの関係
似た名前の製品に、AWS上で提供されるClaude Platform on AWSがあります。Amazon Bedrockとは別のプロダクトで、有効化には CLAUDE_CODE_USE_ANTHROPIC_AWS という別の変数を使います。
AWS_BEARER_TOKEN_BEDROCK はAmazon Bedrock専用の変数です。Claude Platform on AWS、Google Cloud's Agent Platform、Microsoft Foundryといった他のプロバイダーの認証には使えません。Claude Platform on AWSで「キー1本」に相当するのは、AWSコンソールで発行するワークスペースAPIキーです。ANTHROPIC_AWS_API_KEY に設定し、x-api-key として送られます。このキーはSigV4より優先され、環境にあるAWS認証情報は無視されます。Bedrock側に同じ優先関係が書かれているわけではありません。BedrockでAPIキーと他の認証情報を同時に置いたときの優先順位は、公式ドキュメントに記載がありません。混在させず、1方式に絞っておくと迷いません。
Amazon BedrockのClaude料金と直接APIの違い
Bedrock経由の利用は、認証方式だけでなく課金体系も直接APIとは別です。トークン単価やリージョンごとの提供状況、直接契約との比較はAWS BedrockのClaude料金にまとめています。Bedrock全体の設定手順やモデルバージョンの固定はClaude Code環境変数リファレンスでも扱っています。
よくある質問
Mantleエンドポイントでも使えますか
MantleはNative Anthropic APIの形でClaudeを提供するBedrockのエンドポイントで、CLAUDE_CODE_USE_MANTLE=1 で有効にします。公式ドキュメントは「同じAWS認証情報」を使うと説明していますが、AWS_BEARER_TOKEN_BEDROCK がMantleで通るかは明記されていません。
Mantleには bedrock-mantle: という別のIAMアクションがあります。推論には bedrock-mantle:CreateInference、トークン数の計算には bedrock-mantle:CountTokens が必要です。Invoke APIで使っていたポリシーはそのまま流用できません。APIキーで試す場合は、キーに付くポリシーがこの権限を含むかを先に確かめてください。
CLAUDE_CODE_SKIP_BEDROCK_AUTHとの違いは何ですか
役割が逆です。AWS_BEARER_TOKEN_BEDROCK は、Bedrockへの認証情報を渡す変数です。CLAUDE_CODE_SKIP_BEDROCK_AUTH は、LLMゲートウェイがAWS認証を肩代わりする構成などで、Claude Code側の認証を省くための変数です。ゲートウェイがキーを注入するなら、クライアント側にAPIキーを置く必要はありません。
まとめ
APIキーを選ぶ理由は、配る認証情報を1つに減らせることと、チェーン解決まわりのトラブルを避けられることの2点です。引き換えに、ポリシーの狭さが余分な往復として表に出やすくなり、CLAUDE_CODE_SKIP_AWS_CRED_CACHE のような変数も効きません。
個々の開発端末ではSSOプロファイルのほうが扱いやすい場面もあります。どちらを選ぶかは、認証情報を渡す相手が人か自動化されたパイプラインかで決めると迷いにくくなります。