Skip to content

AWS Bedrock SigV4認証の修正:カスタムAuthorizationヘッダーとの競合を解消

原文(日本語に翻訳)

ANTHROPIC_AUTH_TOKENapiKeyHelper、または ANTHROPIC_CUSTOM_HEADERS が Authorization ヘッダーを設定する場合に Bedrock SigV4 認証が 403 エラーで失敗する問題を修正

原文(英語)

Fixed Bedrock SigV4 authentication failing with 403 when ANTHROPIC_AUTH_TOKEN, apiKeyHelper, or ANTHROPIC_CUSTOM_HEADERS set an Authorization header

概要

AWS BedrockでClaude Codeを使用する際、SigV4認証と同時にカスタムAuthorizationヘッダーが設定されていると403エラーが発生するバグが修正されました。ANTHROPIC_AUTH_TOKEN 環境変数、apiKeyHelper スクリプト、または ANTHROPIC_CUSTOM_HEADERS でAuthorizationヘッダーを設定している企業環境で特に影響がありました。

基本的な使い方

Bedrockでの標準的な設定(修正後は正常動作)

bash
# AWS Bedrock設定
export AWS_REGION=us-east-1
export ANTHROPIC_BEDROCK_BASE_URL=https://bedrock-runtime.us-east-1.amazonaws.com

# カスタムヘッダーを追加していても正常動作するように
export ANTHROPIC_CUSTOM_HEADERS='{"X-Custom-Header": "value"}'

# SigV4認証が正しく機能する
claude

実践例

企業SSO環境でのBedrock使用

bash
# AWS SSOでの認証後
aws sso login --profile my-profile

# BedrockでClaude Codeを使用(カスタムヘッダーとの競合なし)
export AWS_PROFILE=my-profile
export ANTHROPIC_BEDROCK_BASE_URL=https://bedrock-runtime.ap-northeast-1.amazonaws.com

claude

apiKeyHelperを使用した企業設定

json
// settings.json
{
  "apiKeyHelper": "/usr/local/bin/get-auth-token.sh",
  "env": {
    "ANTHROPIC_BEDROCK_BASE_URL": "https://bedrock-runtime.us-east-1.amazonaws.com"
  }
}
bash
#!/bin/bash
# get-auth-token.sh
# このスクリプトが Authorization ヘッダーを返す場合でも
# Bedrock SigV4 認証と正しく共存するようになった

echo "Bearer $(aws secretsmanager get-secret-value --secret-id api-token --query SecretString --output text)"

ANTHROPIC_CUSTOM_HEADERSとの組み合わせ

bash
# 以前は403エラーになっていたが、修正後は正常動作
export AWS_REGION=us-east-1
export ANTHROPIC_BEDROCK_BASE_URL=https://bedrock-runtime.us-east-1.amazonaws.com
export ANTHROPIC_CUSTOM_HEADERS='{"Authorization": "Bearer custom-token", "X-Trace-ID": "abc123"}'

claude  # 修正前は403エラー → 修正後は正常動作

IAMロールを使用した設定(推奨)

bash
# EC2やECSでIAMロールを使用する場合(最もシンプルで安全)
export ANTHROPIC_BEDROCK_BASE_URL=https://bedrock-runtime.us-east-1.amazonaws.com
# IAMロールが自動的に認証を処理するため、追加の認証設定不要

claude

注意点

  • 影響を受けていた設定: 以下の設定を同時に使用していた場合にのみ影響
    • Bedrock使用(ANTHROPIC_BEDROCK_BASE_URL 設定)
    • かつ ANTHROPIC_AUTH_TOKENapiKeyHelper、または ANTHROPIC_CUSTOM_HEADERS でAuthorizationヘッダーを設定
  • 修正の透明性: この修正によって動作が変わるのは403エラーが出ていた場合のみで、正常動作していた設定には影響なし
  • ベストプラクティス: Bedrockを使用する場合はIAMロールによる認証が最もシンプルで推奨

関連情報