結論: Claude Code の認証は「claude code login」から始まるブラウザ OAuth を軸に、API Key・Bedrock・Vertex AI・Enterprise SSO・長期トークンなど7パターンを状況で使い分けるのが正解です。
この記事の要点:
- 認証7パターンの優先順位と使い分け早見表を公開
- コピペ可能な設定コード5種(.env / settings.json / Vault連携 / hooks / トークン再取得)
- Claude Code Router(CCR)でコストを最大80%削減できる設定例付き
対象読者: Claude Code を初めて使う個人・法人チームへ展開する管理者・CI/CDに組み込みたいエンジニア
読了後にできること: 自分の環境に最適な認証パターンを選び、今日から動かせる設定ファイルをコピペで完成させる
「ブラウザが開かない」「APIキーとサブスクが混在して動かない」——Claude Code を法人チームへ展開する研修で、こんな悩みを持ち込んでくる担当者が後を絶ちません。
先日も大手IT系クライアントの情報システム部門から「Bedrock経由で全社展開したいが認証でつまずいた」と連絡がありました。調べてみると、AWS SSO セッションが切れていたのに CLAUDE_CODE_USE_BEDROCK=1 だけ設定してClaudeを起動しようとしていたのが原因でした。
Claude Codeの認証には2026年6月現在、6段階の優先順位があります。正しい順番を知らずに環境変数をバラバラに設定すると「どの認証が使われているか分からない」状態になるんです。実際、ANTHROPIC_API_KEYが残ったままサブスクに切り替えようとしてハマる人が非常に多い。
この記事では、Anthropic 公式ドキュメント(code.claude.com/docs/en/authentication、参照日: 2026-06-04)を全文精読した上で、認証7パターンの実装コードと失敗回避策を完全公開します。コピペで動く設定ファイルも5種用意しました。
認証7パターン早見表
Claude Code は複数の認証方式を持ち、以下の優先順位で自動選択します(公式ドキュメント準拠・参照日: 2026-06-04)。
| 優先 | 認証パターン | 環境変数 / 方法 | 向いているシーン |
|---|---|---|---|
| 1位 | クラウドプロバイダー | CLAUDE_CODE_USE_BEDROCK / CLAUDE_CODE_USE_VERTEX | AWS・GCP組織展開 |
| 2位 | ANTHROPIC_AUTH_TOKEN | Bearer トークン(env) | LLMゲートウェイ・プロキシ経由 |
| 3位 | ANTHROPIC_API_KEY | API Key(env) | 従量課金・CI/CD非対話 |
| 4位 | apiKeyHelper スクリプト | settings.json の apiKeyHelper | Vault連携・ローテーションキー |
| 5位 | 長期OAuthトークン | CLAUDE_CODE_OAUTH_TOKEN(claude setup-token で生成) | CI/CD・スクリプト自動化 |
| 6位 | サブスクOAuth(デフォルト) | claude code login でブラウザ認証 | Pro/Max/Team/Enterprise 個人利用 |
| — | Console SSO | Console アカウントでログイン | API課金ベースの組織 |
Claude Code の公式ガイドについては、Claude Code 完全ガイドで体系的にまとめています。認証の次は機能全体を把握するのがおすすめです。
パターン1: claude code login(ブラウザOAuth・最も簡単)
Claude Pro / Max / Team / Enterprise の個人ユーザーが使う最もシンプルな認証方法です。
基本の起動手順
# 1. Claude Code をインストール済みの状態でターミナルを開く
claude
# 2. 初回起動でブラウザが自動的に開く
# ブラウザが開かない場合は「c」キーを押してURLをコピー
# 3. Claude.ai でサインイン → ターミナルに戻る
# 4. ログアウトする場合
/logout
WSL2・SSH・コンテナ環境での注意点
ブラウザがローカルコールバックサーバーに到達できない環境(WSL2、SSHセッション、Dockerコンテナなど)では、ブラウザにログインコードが表示されます。そのコードをターミナルの Paste code here if prompted プロンプトに貼り付けます。
# WSL2環境での例
# ブラウザに表示されたコードをターミナルで貼り付ける
$ claude
# → ブラウザが開かない場合は「c」を押してURLをコピー
# → ブラウザでサインイン後、表示されたコードを貼り付け
Paste code here if prompted: [ここにコードを貼り付け]
現在の認証状態を確認する
# Claude Code 内で実行
/status
# → 使用中の認証方法・モデル・プランが表示される
パターン2: API Key 認証(従量課金・CI/CD向け)
Anthropic Console でAPIキーを発行して利用するパターンです。サブスクリプションより従量課金を好む場合、または非対話モード(claude -p)で使う場合に選びます。
コピペ可能な設定1: .env ファイル
# ~/.config/claude-code/.env または .envファイル
ANTHROPIC_API_KEY=sk-ant-api03-xxxxxxxxxxxxxxxxxxxx
# 複数キーをローテーションする場合の例
# ANTHROPIC_API_KEY=$API_KEY_1 # ← 本番用
環境変数として設定する方法
# シェルプロフィール(~/.zshrc や ~/.bashrc)に追加
export ANTHROPIC_API_KEY=sk-ant-api03-xxxxxxxxxxxxxxxxxxxx
# 設定を反映
source ~/.zshrc
# APIキーが認証に使われているか確認
claude /status
重要: APIキーとサブスクが混在するケースに注意
事例区分: 想定シナリオ
100社以上の研修経験をもとに構成した典型的なシナリオです。
法人研修でよくある失敗が「個人のサブスクも持っているが ANTHROPIC_API_KEY が .bashrc に残っていて、サブスク課金ではなくAPI課金になってしまった」というケース。ANTHROPIC_API_KEY はサブスクOAuth(6位)より優先度が高い(3位)ため、環境変数が残っていると意図しないAPIキー課金が発生します。
# サブスクに戻したい場合
unset ANTHROPIC_API_KEY
# /status で認証方法を確認
/status
パターン3: Amazon Bedrock 認証(5ステップ)
AWS 組織で Claude Code を展開する最もメジャーな企業向けパターンです。既存の IAM権限管理をそのまま利用できます。
HowTo: Bedrock認証の5ステップ実装フロー
- AWS Console で Bedrock のモデルアクセスを申請(Model Catalog → Anthropic モデルを選択 → Submit)
- IAM ポリシーを作成して
bedrock:InvokeModel/bedrock:InvokeModelWithResponseStream権限を付与 - AWS 認証情報を設定(aws configure または環境変数)
- Claude Code 用の環境変数を設定
claudeを起動してウィザードでBedrock を選択するか、/statusで確認
コピペ可能な設定2: Bedrock 環境変数セット
# Bedrock 有効化(必須)
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1
# AWS認証情報(A: CLIプロファイル方式)
export AWS_PROFILE=your-profile-name
aws sso login --profile=your-profile-name
# AWS認証情報(B: アクセスキー方式)
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr... # 一時セッション使用時のみ
# モデルバージョンを固定(チーム展開時は必須)
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'
コピペ可能な設定3: settings.json(Bedrock + SSO自動更新)
// ~/.claude/settings.json
{
"awsAuthRefresh": "aws sso login --profile myprofile",
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "myprofile",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "us.anthropic.claude-sonnet-4-6",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "us.anthropic.claude-haiku-4-5-20251001-v1:0"
}
}
この設定の要点は awsAuthRefresh。AWS の SSO セッションが切れたとき自動的に再ログインコマンドを実行してくれます。手動で毎朝 aws sso login を叩く手間がなくなります(公式ドキュメント参照日: 2026-06-04)。
パターン4: Google Vertex AI 認証
GCP環境で Claude Code を使う場合のパターンです。Application Default Credentials を使えばローカルと CI/CD で同じ設定が使えます。
# Vertex AI 有効化
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=global # または us-east5 など特定リージョン
export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id
# Application Default Credentials を設定(初回のみ)
gcloud auth application-default login
# モデルバージョンを固定
export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'
Vertex AI では /logout コマンドが使えません。認証は Google Cloud 認証情報を通じて管理されます。セッション切れ時は gcloud auth application-default login を再実行してから Claude Code を起動し直します。
パターン5: Console SSO(API課金ベースの組織向け)
サブスクリプションではなく Anthropic Console のAPI課金で運用したい組織向けです。Console 管理者が SSO を設定してメンバーを招待する構成です。
# Console SSO セットアップのフロー(管理者操作)
# 1. Console (platform.claude.com) で Settings → Members → Invite
# 2. SSO を設定: https://support.claude.com に掲載の手順
# 3. ユーザーに Claude Code ロールまたは Developer ロールを付与
# メンバー側の操作
# 1. 招待メールの Accept
# 2. claude を起動 → Console アカウントでサインイン
claude
パターン6: Service Account / apiKeyHelper(Vault連携)
HashiCorp Vault や AWS Secrets Manager などからAPIキーを動的に取得してローテーションしたい場合に使う高度な設定です。CI/CDパイプラインで短期トークンを自動更新する用途にも最適です。
コピペ可能な設定4: Vault連携スクリプト例
#!/bin/sh
# ~/.config/claude-code/get_api_key.sh
# このスクリプトが APIキーを標準出力に返す
# HashiCorp Vault からキーを取得する例
vault kv get -field=api_key secret/anthropic/claude-code
# AWS Secrets Manager から取得する例(AWSの場合)
# aws secretsmanager get-secret-value
# --secret-id prod/anthropic/api-key
# --query SecretString
# --output text | jq -r .api_key
// ~/.claude/settings.json — apiKeyHelper を使う設定
{
"apiKeyHelper": "/bin/sh /Users/yourname/.config/claude-code/get_api_key.sh",
"env": {
"CLAUDE_CODE_API_KEY_HELPER_TTL_MS": "300000"
}
}
デフォルトでは apiKeyHelper は5分ごと、または HTTP 401 レスポンス時に再実行されます。CLAUDE_CODE_API_KEY_HELPER_TTL_MS で間隔をカスタマイズできます(公式ドキュメント参照日: 2026-06-04)。
パターン7: 長期OAuthトークン(CI/CD・自動化)
ブラウザログインが使えない CI/CD 環境(GitHub Actions、GitLab CI など)のための1年間有効な OAuth トークンを生成するパターンです。
コピペ可能な設定5: トークン生成と設定
# ローカルでトークンを生成(Pro/Max/Team/Enterprise プランが必要)
claude setup-token
# コマンドが OAuth 認証を案内し、トークンを端末に表示する
# 表示されたトークンをコピーして安全な場所に保管
# CI/CD 環境での使用(GitHub Actions の例)
# .github/workflows/ci.yml
env:
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# シェル環境での使用
export CLAUDE_CODE_OAUTH_TOKEN=ot-xxxxxxxxxxxxxxxxxxxx
# トークンが正しく機能しているか確認
claude /status
重要: 長期OAuthトークンはサブスクリプション認証のため、Pro以上のプランが必要です。また --bare モードでは CLAUDE_CODE_OAUTH_TOKEN は読まれません。bare モードでは ANTHROPIC_API_KEY か apiKeyHelper を使います(公式ドキュメント参照日: 2026-06-04)。
Claude Code Router(CCR)完全解説
「claude code –router」でよく検索されているのですが、正確には Claude Code Router(CCR)はサードパーティ製のローカルプロキシです。Claude Code の公式機能ではなく、Claude Code からのリクエストを他のLLMプロバイダー(DeepSeek、Gemini、Ollama など)に横流しするプロキシとして機能します。
コスト最大80%削減の報告もある一方、セキュリティリスクも存在するため、法人導入の際は慎重な判断が必要です。
CCR のインストールと起動
# インストール
npm install -g @musistudio/claude-code-router
# 起動
ccr start
# Claude Code を CCR 経由で起動
ccr code
# 永続化(シェルプロファイルに追記)
eval "$(ccr activate)"
CCR 設定ファイルの構造
設定ファイルは ~/.claude-code-router/config.json に置きます。タスクタイプ別にモデルを割り当てます。
// ~/.claude-code-router/config.json — マルチプロバイダー設定例
{
"Providers": [
{
"name": "deepseek",
"api_base_url": "https://api.deepseek.com/v1/chat/completions",
"api_key": "$DEEPSEEK_API_KEY",
"models": ["deepseek-chat", "deepseek-reasoner"],
"transformer": { "use": ["deepseek"] }
},
{
"name": "ollama",
"api_base_url": "http://localhost:11434/v1/chat/completions",
"api_key": "ollama",
"models": ["qwen2.5-coder:latest"],
"transformer": { "use": ["ollama"] }
},
{
"name": "gemini",
"api_base_url": "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",
"api_key": "$GEMINI_API_KEY",
"models": ["gemini-2.5-pro-preview"],
"transformer": { "use": ["gemini"] }
}
],
"Router": {
"default": "deepseek,deepseek-chat",
"background": "ollama,qwen2.5-coder:latest",
"think": "deepseek,deepseek-reasoner",
"longContext": "gemini,gemini-2.5-pro-preview",
"longContextThreshold": 60000
}
}
Router タスクタイプの使い分け
| タスクタイプ | 発動条件 | 推奨モデル例 |
|---|---|---|
| default | 通常のコーディング支援 | DeepSeek Chat、Claude Haiku |
| background | ファイルスキャン・コンテキスト収集 | Ollama(ローカル)、軽量モデル |
| think | Plan Mode・複雑な推論 | DeepSeek Reasoner、o3-mini |
| longContext | 60,000トークン超(デフォルト閾値) | Gemini 2.5 Pro、Claude Opus |
トークン管理とトークン切れ対処法
認証でハマる最大の原因は「トークン切れ」です。パターン別の対処法をまとめます。
認証タイプ別のトークン挙動
| 認証タイプ | 有効期間 | 切れた時の対処 |
|---|---|---|
| サブスクOAuth(/login) | 自動更新(通常意識不要) | /logout → claude で再ログイン |
| 長期OAuthトークン(setup-token) | 1年間 | claude setup-token で再生成 |
| AWS SSO セッション | 組織設定による(数時間〜1日) | aws sso login –profile xxx |
| GCP ADC | 1時間(通常) | gcloud auth application-default login |
| ANTHROPIC_API_KEY | 手動削除まで有効 | Console でローテーション |
コピペ可能な設定: 認証状態確認と再取得スクリプト
#!/bin/bash
# check_claude_auth.sh — 認証状態を確認して切れていれば再取得
# 現在の認証方法を確認
echo "=== Claude Code 認証状態チェック ==="
# AWS Bedrock 使用時の SSO セッション確認
if [ -n "$CLAUDE_CODE_USE_BEDROCK" ]; then
echo "Bedrock モード: AWS SSO セッション確認中..."
aws sts get-caller-identity &>/dev/null || {
echo "AWS セッション切れ。再ログインします..."
aws sso login --profile ${AWS_PROFILE:-default}
}
fi
# Vertex AI 使用時の GCP トークン確認
if [ -n "$CLAUDE_CODE_USE_VERTEX" ]; then
echo "Vertex AI モード: GCP 認証確認中..."
gcloud auth application-default print-access-token &>/dev/null || {
echo "GCP 認証切れ。再ログインします..."
gcloud auth application-default login
}
fi
echo "認証チェック完了。claude を起動します。"
claude
セキュリティ設定との関係
認証設定はセキュリティ設定と密接に関わります。詳細はClaude Code セキュリティ設定完全ガイドで解説していますが、認証周りで押さえるべきポイントを絞って紹介します。
認証情報の保存場所
- macOS: 暗号化された macOS Keychain に保存
- Linux:
~/.claude/.credentials.json(ファイルモード0600) - Windows:
%USERPROFILE%.claude.credentials.json(ユーザーアカウントのみアクセス可)
forceLoginMethod で認証方法を制限する
Enterprise 環境では、APIキーや個人サブスクによる認証を禁止してコンソール認証に限定できます(公式ドキュメント参照日: 2026-06-04)。
// ~/.claude/settings.json — Managed Policy での認証制限例
{
"forceLoginMethod": "console"
}
// "claudeai" または "console" が指定可能
// console 指定時は ANTHROPIC_API_KEY や ANTHROPIC_AUTH_TOKEN が無効化される
【要注意】よくある失敗パターンと回避策
失敗1: APIキーとサブスクの混在で意図しない課金
❌ よくある間違い: .bashrc に ANTHROPIC_API_KEY を設定したまま Claude.ai のサブスクで使おうとする
⭕ 正しいアプローチ: unset ANTHROPIC_API_KEY でAPIキーを削除してから /status で認証方法を確認する
なぜ重要か: ANTHROPIC_API_KEY は優先順位3位でサブスクOAuth(6位)より高い。APIキーが環境にある限り、サブスクに課金されず API従量課金になる。組織展開後に「思ったより高い請求が来た」の原因の多くがこれです。
失敗2: Bedrockモードでモデルバージョンを固定し忘れる
❌ よくある間違い: チーム展開時に ANTHROPIC_DEFAULT_SONNET_MODEL を設定せず、Anthropic がモデルを更新したタイミングでメンバー全員の Claude Code が一時的に動かなくなる
⭕ 正しいアプローチ: settings.json の env ブロックで特定のモデルIDを固定する。チームがまとめて新バージョンへ移行するタイミングを自分たちでコントロールする
なぜ重要か: Anthropicのモデル更新は予告なく起きる。固定なしでは「sonnet」エイリアスが最新版を指すが、自分たちの Bedrock アカウントでまだ有効化されていない場合があります(公式ドキュメント記載事項、参照日: 2026-06-04)。
失敗3: CCR 設定でAPIキーをハードコード
❌ よくある間違い: config.json に "api_key": "sk-xxxx..." と直書きする
⭕ 正しいアプローチ: "api_key": "$DEEPSEEK_API_KEY" と環境変数参照を使い、実際のキーはシェルプロファイルや .env ファイルに保管
なぜ重要か: config.json をバックアップやバージョン管理に含めると APIキーが漏洩する。CCR 設定は "LOG": false と組み合わせて機密コードのログ記録も防ぎましょう。
失敗4: SSO切替後にセッション初期化を忘れる
❌ よくある間違い: AWS SSO ログイン後、既存の Claude Code セッションをそのまま続けて使おうとする
⭕ 正しいアプローチ: aws sso login --profile xxx の後、Claude Code を一度終了して再起動する
なぜ重要か: 既存セッションは古い認証情報をキャッシュしている場合があります。再起動することで新しいSSO認証情報を確実に読み込みます。
法人チーム展開のベストプラクティス
研修先で法人展開のサポートをしていると「個人設定はできるがチーム全員への展開でつまずく」というケースが多いです。チーム展開向けの設定管理の考え方を共有します。
設定ファイルの配布戦略
Claude Code の設定は主に ~/.claude/settings.json(ユーザーレベル)と .claude/settings.json(プロジェクトレベル)の2種類があります。
// .claude/settings.json — リポジトリに含めてチーム共有できる設定例
// ※ APIキーなどの機密情報は絶対に含めないこと
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "claude-code-team"
},
"awsAuthRefresh": "aws sso login --profile claude-code-team"
}
プロジェクトの .claude/settings.json はリポジトリにコミットできます(機密情報なし)。各メンバーはリポジトリをクローンすれば自動的に Bedrock 設定が有効になります。
Windows 環境への展開についてはClaude Code Windows完全ガイドで詳しく解説しています。
認証トラブルシューティング早見表
| エラー症状 | 原因 | 対処コマンド |
|---|---|---|
| ブラウザが開かない | WSL2/SSH/コンテナ環境 | 「c」を押してURLをコピー → ブラウザで開く |
| API Key 認証失敗 | 期限切れ・無効なキー | Console でキーを再発行 → 環境変数を更新 |
| Bedrock 403 エラー | IAM権限不足・モデル未有効化 | IAMポリシー確認 → Bedrock Console でモデル有効化 |
| Bedrock SSO ループ | VPN/プロキシがSSO フローを阻害 | awsAuthRefresh を削除 → 手動で aws sso login |
| Vertex AI ADC エラー | Application Default Credentials 未設定 | gcloud auth application-default login |
| apiKeyHelper が遅い | スクリプト実行に10秒以上かかる | スクリプトを最適化 or キャッシュ機構を追加 |
| –bare モードでトークン無効 | CLAUDE_CODE_OAUTH_TOKEN は bare 非対応 | ANTHROPIC_API_KEY または apiKeyHelper を使う |
まとめ:今日から始める3つのアクション
- 今日やること:
claudeを起動して/statusを実行し、現在の認証方法を確認する。意図しない方法で認証していないか確認(APIキーとサブスクの混在に特に注意) - 今週中: 自分のシーンに合った認証パターン(個人はサブスクOAuth、法人はBedrockまたはVertex AI)を選び、settings.json に設定を保存してチームに共有する
- 今月中: CI/CDパイプラインへの Claude Code 組み込みが必要なら
claude setup-tokenで長期トークンを生成し、GitHub Actions などの Secrets に登録する
あわせて読みたい:
- Claude Code 完全ガイド — 認証設定後の機能活用法を体系的に学ぶ
- Claude Code セキュリティ設定完全ガイド — 企業展開での情報漏洩対策7チェック
- Claude Code Windows完全ガイド — Windows環境への展開5ステップ
参考・出典
- Authentication — Claude Code Docs(Anthropic公式) — Anthropic(参照日: 2026-06-04)
- Claude Code on Amazon Bedrock — Claude Code Docs(Anthropic公式) — Anthropic(参照日: 2026-06-04)
- Claude Code on Google Vertex AI — Claude Code Docs(Anthropic公式) — Anthropic(参照日: 2026-06-04)
- musistudio/claude-code-router — GitHub — Claude Code Router 公式リポジトリ(参照日: 2026-06-04)
著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。
100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』(SBクリエイティブ)。
SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。



