まずは1行まとめ
ユーザースコープの settings.json に環境変数の素が残っているので、消せばOK
なぜこうなるの?
/logout は、あくまでAnthropicアカウントからログアウトするためのコマンド。
Bedrockの設定は、ローカルPCの環境変数に注入されており、実際の認証はAWSのIAM側で行われている。
最近はClaude Codeのセットアップ時にBedrock認証を設定できるが、そうすると ~/.claude/settings.json に環境変数の設定が残る仕組みになっている!
環境変数が効いちゃってると、 /login で上書きAnthropic認証しても、Bedrock側が有効になっちゃうんですよね。
解除方法
設定確認
cat ~/.claude/settings.json
すべてクリアするコマンドは以下
cp ~/.claude/settings.json ~/.claude/settings.json.bak.$(date +%Y%m%d%H%M%S)
python3 - <<'PY'
import json
from pathlib import Path
p = Path.home() / ".claude" / "settings.json"
if not p.exists():
raise SystemExit("~/.claude/settings.json がありません")
data = json.loads(p.read_text())
remove_keys = {
"CLAUDE_CODE_USE_BEDROCK",
"CLAUDE_CODE_USE_MANTLE",
"AWS_BEARER_TOKEN_BEDROCK",
"ANTHROPIC_BEDROCK_BASE_URL",
"ANTHROPIC_BEDROCK_MANTLE_BASE_URL",
"ANTHROPIC_MODEL",
"ANTHROPIC_DEFAULT_SONNET_MODEL",
"ANTHROPIC_DEFAULT_HAIKU_MODEL",
"ANTHROPIC_DEFAULT_OPUS_MODEL",
"ANTHROPIC_API_KEY",
"ANTHROPIC_AUTH_TOKEN",
"ANTHROPIC_BASE_URL",
}
env = data.get("env", {})
for k in remove_keys:
env.pop(k, None)
if env:
data["env"] = env
else:
data.pop("env", None)
p.write_text(json.dumps(data, indent=2, ensure_ascii=False) + "\n")
print("Bedrock設定を削除完了!")
PY
クリアできたら、Claude起動すれば再セットアップできるはず!
claude
Claudeに聞いてもOK
プロンプト例
Claude CodeにBedrock設定したのを、Anthropicアカウント認証に変更するには?
Bedrockだと `/logout` ができない〜😭