Bedrockを通じてClaudeを呼び出すことは、AnthropicのクライアントSDKを使用してClaudeを呼び出す方法とは若干異なります。このガイドでは、PythonまたはTypeScriptのいずれかで、Bedrock上のClaudeへのAPI呼び出しを完了するプロセスについて説明します。
このガイドでは、すでにAWSアカウントにサインアップし、プログラムによるアクセスを設定していることを前提としています。
2.13.23以上でインストールしますaws sts get-caller-identityAnthropicのクライアントSDKはBedrockをサポートしています。また、boto3のようなAWS SDKを直接使用することもできます。
pip install -U "anthropic[bedrock]"AWS Console > Bedrock > Model Accessに移動して、Anthropicモデルへのアクセスをリクエストします。Anthropicモデルの可用性はリージョンによって異なることに注意してください。最新情報については、AWSドキュメントを参照してください。
| モデル | ベースBedrockモデルID | global | us | eu | jp | apac |
|---|---|---|---|---|---|---|
| Claude Sonnet 4.5 | anthropic.claude-sonnet-4-5-20250929-v1:0 | Yes | Yes | Yes | Yes | No |
| Claude Sonnet 4 | anthropic.claude-sonnet-4-20250514-v1:0 | Yes | Yes | Yes | No | Yes |
| Claude Sonnet 3.7 ⚠️ | anthropic.claude-3-7-sonnet-20250219-v1:0 | No |
リージョナルとグローバルモデルIDの詳細については、以下のグローバルエンドポイント対リージョナルエンドポイントセクションを参照してください。
次の例は、Bedrockを通じて利用可能なすべてのClaudeモデルのリストを出力する方法を示しています:
aws bedrock list-foundation-models --region=us-west-2 --by-provider anthropic --query "modelSummaries[*].modelId"次の例は、Bedrock上のClaudeからテキストを生成する方法を示しています:
詳細については、クライアントSDKを参照してください。また、公式のBedrockドキュメントはこちらです。
Bedrockは呼び出しログサービスを提供しており、顧客がプロンプトと完了内容をログに記録できます。
Anthropicは、アクティビティを理解し、潜在的な悪用を調査するために、少なくとも30日間のローリングベースでアクティビティをログに記録することをお勧めします。
このサービスを有効にしても、AWSまたはAnthropicはコンテンツにアクセスできません。
Bedrockで現在サポートされているすべての機能はこちらで確認できます。
PDFサポートは、Converse APIとInvokeModel APIの両方を通じてAmazon Bedrock上で利用可能です。PDFの処理機能と制限の詳細については、PDFサポートドキュメントを参照してください。
Converse APIユーザーの重要な考慮事項:
2つのドキュメント処理モードとその制限の詳細については、PDFサポートガイドを参照してください。
Claude Sonnet 4および4.5は、Amazon Bedrock上で100万トークンコンテキストウィンドウをサポートしています。
100万トークンコンテキストウィンドウは現在ベータ版です。拡張コンテキストウィンドウを使用するには、Bedrock APIリクエストにcontext-1m-2025-08-07ベータヘッダーを含めてください。
Claude Sonnet 4.5およびすべての将来のモデルから始まり、Amazon Bedrockは2つのエンドポイントタイプを提供します:
リージョナルエンドポイントには、グローバルエンドポイントに対する10%の価格プレミアムが含まれます。
これはClaude Sonnet 4.5および将来のモデルにのみ適用されます。古いモデル(Claude Sonnet 4、Opus 4、およびそれ以前)は既存の価格構造を維持します。
グローバルエンドポイント(推奨):
リージョナルエンドポイント(CRIS):
グローバルエンドポイントを使用(Sonnet 4.5および4のデフォルト):
Claude Sonnet 4.5および4のモデルIDには、すでにglobal.プレフィックスが含まれています:
リージョナルエンドポイントを使用(CRIS):
リージョナルエンドポイントを使用するには、モデルIDからglobal.プレフィックスを削除します:
| Yes |
| Yes |
| No |
| Yes |
| Claude Opus 4.5 | anthropic.claude-opus-4-5-20251101-v1:0 | Yes | Yes | Yes | No | No |
| Claude Opus 4.1 | anthropic.claude-opus-4-1-20250805-v1:0 | No | Yes | No | No | No |
| Claude Opus 4 | anthropic.claude-opus-4-20250514-v1:0 | No | Yes | No | No | No |
| Claude Opus 3 ⚠️ | anthropic.claude-3-opus-20240229-v1:0 | No | Yes | No | No | No |
| Claude Haiku 4.5 | anthropic.claude-haiku-4-5-20251001-v1:0 | Yes | Yes | Yes | No | No |
| Claude Haiku 3.5 ⚠️ | anthropic.claude-3-5-haiku-20241022-v1:0 | No | Yes | No | No | No |
| Claude Haiku 3 | anthropic.claude-3-haiku-20240307-v1:0 | No | Yes | Yes | No | Yes |
from anthropic import AnthropicBedrock
client = AnthropicBedrock(
# 以下のキーを提供するか、デフォルトのAWS認証情報プロバイダー(例:
# ~/.aws/credentialsまたは「AWS_SECRET_ACCESS_KEY」および「AWS_ACCESS_KEY_ID」環境変数)を使用して認証します。
aws_access_key="<access key>",
aws_secret_key="<secret key>",
# 一時的な認証情報はaws_session_tokenで使用できます。
# 詳細については、https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.htmlを参照してください。
aws_session_token="<session_token>",
# aws_regionはリクエストが行われるAWSリージョンを変更します。デフォルトでは、AWS_REGIONを読み込み、
# それが存在しない場合はus-east-1にデフォルト設定されます。~/.aws/configのリージョンは読み込まれないことに注意してください。
aws_region="us-west-2",
)
message = client.messages.create(
model="global.anthropic.claude-sonnet-4-5-20250929-v1:0",
max_tokens=256,
messages=[{"role": "user", "content": "Hello, world"}]
)
print(message.content)from anthropic import AnthropicBedrock
client = AnthropicBedrock(aws_region="us-west-2")
message = client.messages.create(
model="global.anthropic.claude-sonnet-4-5-20250929-v1:0",
max_tokens=256,
messages=[{"role": "user", "content": "Hello, world"}]
)from anthropic import AnthropicBedrock
client = AnthropicBedrock(aws_region="us-west-2")
# US リージョナルエンドポイント(CRIS)を使用
message = client.messages.create(
model="anthropic.claude-sonnet-4-5-20250929-v1:0", # global. プレフィックスなし
max_tokens=256,
messages=[{"role": "user", "content": "Hello, world"}]
)