Claude in Amazon Bedrock

通过 Amazon Bedrock 访问 Claude 模型,享受 AWS 原生认证、计费和安全边界。


本指南将引导您设置和向 Amazon Bedrock 中的 Claude 发起 API 调用。Claude in Amazon Bedrock 运行在 AWS 托管的基础设施上,具有零运维人员访问权限(Anthropic 人员无法访问推理基础设施),让您可以完全在 AWS 安全边界内构建敏感应用程序,同时使用与 Anthropic 第一方 API 相同的 Messages API 格式。

Note

本页面介绍 Claude in Amazon Bedrock,它通过 AWS 托管基础设施上的 /anthropic/v1/messages 处的 Messages API 提供 Claude 服务。之前的 Amazon Bedrock 集成(使用 ARN 版本化模型标识符的 InvokeModelConverse API)仍然可用,文档请参阅 Claude on Amazon Bedrock(旧版)。有关 AWS 上 Anthropic 运营的替代方案,具有 AWS Marketplace 计费和通常当天功能访问,请参阅 Claude Platform on AWS

访问

Claude Opus 4.7 和 Claude Haiku 4.5 对所有 Amazon Bedrock 客户开放。Claude Mythos Preview 需要邀请;请参阅 Project Glasswing。有关区域可用性,请参阅区域

前提条件

在开始之前,请确保您已:

Claude Mythos Preview 还需要一个已获得 Bedrock Marketplace 团队白名单的专用 AWS 账户。您的 Anthropic 客户经理可以提交您的账户 ID 进行白名单(通常在 24 小时内处理),完成后 AWS 会发送欢迎邮件。

认证

Claude in Amazon Bedrock 支持三种认证路径。选择最适合您安全需求的路径。

Bedrock 服务角色(推荐)

使用带有 AWS 托管密钥的 Bedrock 服务角色以获得最安全、最持久的访问:

  1. 管理员:配置服务角色

    AWS 管理员配置 Bedrock 服务角色,并授予开发者对服务角色 ARN 的 iam:PassRole 权限。

  2. 开发者:传递角色

    调用 API 时,Bedrock 会代表您承担服务角色。有关如何将角色与请求关联,请参阅 Amazon Bedrock 文档

IAM 假设角色

用于具有 12 小时最大会话的身份联合访问:

  1. 管理员:配置 IAM 角色

    创建一个限定于您的 Claude 模型的 IAM 角色。信任策略指定您的身份提供商(SAML、OIDC 或 AWS Identity Center)。权限策略仅对允许的模型 ARN 授予 bedrock-mantle:CreateInference

  2. 开发者:认证并假设

    通过您的企业身份提供商进行认证,然后假设 IAM 角色。AWS STS 颁发临时凭证,SDK 或 CLI 使用这些凭证签署请求。

Bearer token

用于不使用 IAM 角色的短期访问(最长 12 小时,最不推荐):

  1. 管理员:限制 token 类型

    通过附加策略来阻止长期密钥,该策略拒绝 bedrock:CallWithBearerToken,除非 bedrock:BearerTokenType 条件匹配短期 token。

  2. 开发者:生成 token

    使用 aws-bedrock-token-generator CLI 生成 bearer token。在每个请求的 x-api-key 头中传递它。

安装 SDK

Anthropic 的客户端 SDK 通过 Bedrock 特定的包或模块支持 Claude in Amazon Bedrock。

pip install -U "anthropic[bedrock]"
npm install @anthropic-ai/bedrock-sdk
dotnet add package Anthropic.Bedrock
go get github.com/anthropics/anthropic-sdk-go/bedrock
implementation("com.anthropic:anthropic-java-bedrock:2.33.0")
<dependency>
    <groupId>com.anthropic</groupId>
    <artifactId>anthropic-java-bedrock</artifactId>
    <version>2.33.0</version>
</dependency>
composer require anthropic-ai/sdk aws/aws-sdk-php
# Gemfile
gem "anthropic"
gem "aws-sdk-core"

发起第一个请求

端点遵循 https://bedrock-mantle.{region}.api.aws/anthropic/v1/messages 模式。与基于 InvokeModel 的集成不同,此端点使用标准 SSE 流式传输以及与 Anthropic 第一方 API 相同的请求体格式。

SDK 使用标准 AWS 优先级解析凭证和区域:构造函数参数,然后环境变量(AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKENAWS_REGION),然后 AWS 配置文件和凭证链(SSO、假设角色、ECS 任务角色、IMDS)。

curl https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages \
  --aws-sigv4 "aws:amz:us-east-1:bedrock-mantle" \
  --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
  -H "x-amz-security-token: $AWS_SESSION_TOKEN" \
  -H "content-type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "anthropic.claude-opus-4-7",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello, Claude"}
    ]
  }'

ant CLI 不支持 Amazon Bedrock。请使用 cURL 或 SDK。

from anthropic import AnthropicBedrockMantle

client = AnthropicBedrockMantle(aws_region="us-east-1")

message = client.messages.create(
    model="anthropic.claude-opus-4-7",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Claude"}],
)

print(message.content[0].text)
import { AnthropicBedrockMantle } from "@anthropic-ai/bedrock-sdk";

const client = new AnthropicBedrockMantle({
  awsRegion: "us-east-1"
});

const message = await client.messages.create({
  model: "anthropic.claude-opus-4-7",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello, Claude" }]
});

const block = message.content[0];
if (block.type === "text") {
  console.log(block.text);
}
using Anthropic.Bedrock;
using Anthropic.Models.Messages;

var client = new AnthropicBedrockMantleClient(new() { AwsRegion = "us-east-1" });

var message = await client.Messages.Create(new()
{
    Model = "anthropic.claude-opus-4-7",
    MaxTokens = 1024,
    Messages = [new() { Role = Role.User, Content = "Hello, Claude" }],
});

if (message.Content[0].Value is TextBlock block)
    Console.WriteLine(block.Text);
package main

import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/bedrock"
)

func main() {
	client, err := bedrock.NewMantleClient(context.Background(), bedrock.MantleClientConfig{
		AWSRegion: "us-east-1",
	})
	if err != nil {
		panic(err)
	}

	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
		Model:     "anthropic.claude-opus-4-7",
		MaxTokens: 1024,
		Messages: []anthropic.MessageParam{
			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, Claude")),
		},
	})
	if err != nil {
		panic(err)
	}

	fmt.Println(message.Content[0].Text)
}
import com.anthropic.bedrock.backends.BedrockMantleBackend;
import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.messages.Message;
import com.anthropic.models.messages.MessageCreateParams;

void main() {
    AnthropicClient client = AnthropicOkHttpClient.builder()
        .backend(BedrockMantleBackend.fromEnv())
        .build();

    Message message = client.messages().create(
        MessageCreateParams.builder()
            .model("anthropic.claude-opus-4-7")
            .maxTokens(1024)
            .addUserMessage("Hello, Claude")
            .build()
    );

    IO.println(message.content().getFirst().asText().text());
}
<?php

use Anthropic\Bedrock\MantleClient;

$client = new MantleClient(awsRegion: 'us-east-1');

$message = $client->messages->create(
    model: 'anthropic.claude-opus-4-7',
    maxTokens: 1024,
    messages: [
        ['role' => 'user', 'content' => 'Hello, Claude'],
    ],
);

echo $message->content[0]->text;
require "anthropic"

client = Anthropic::BedrockMantleClient.new(aws_region: "us-east-1")

message = client.messages.create(
  model: "anthropic.claude-opus-4-7",
  max_tokens: 1024,
  messages: [{role: "user", content: "Hello, Claude"}]
)

puts message.content[0].text
Tip

您也可以使用标准的 Anthropic 客户端:将 base_url 设置为 https://bedrock-mantle.{region}.api.aws/anthropic,并将您的 bearer token 作为 api_key 传递。此路径仅支持 bearer-token 认证。SigV4 签名需要专用客户端。

支持的模型

Claude in Amazon Bedrock 中的模型 ID 带有 anthropic. 提供商前缀。模型功能和行为记录在模型概览页面上。

模型模型 ID访问方式
Claude Opus 4.7anthropic.claude-opus-4-7开放
Claude Haiku 4.5anthropic.claude-haiku-4-5开放
Claude Mythos Previewanthropic.claude-mythos-preview仅限邀请 (Project Glasswing)
Tip

正在升级到更新的 Claude 模型?在 Claude Code 中,运行 /claude-api migrate 以在代码库中应用模型 ID 交换和重大参数更改。该技能检测您的代码目标云平台,并为该平台调整模型 ID 格式和功能更改。请参阅迁移到更新的 Claude 模型

功能支持

有关 Amazon Bedrock 可用性的完整功能列表,请参阅功能概览

支持的功能亮点

不支持的功能

  • 输入源(图像和文档的 URL 源、Files API)
  • 服务器端工具(代码执行、网络搜索、网络获取、顾问)
  • 基础设施代理(Agent Skills、MCP 连接器、程序化工具调用)
  • API 端点(Message Batches、Models、Admin、Compliance、Usage and Cost)
  • Claude 托管代理

区域

Claude in Amazon Bedrock 在以下 AWS 区域可用。Amazon Bedrock 提供两种端点类型:

  • 全球: 在所有可用区域之间动态路由以实现最大可用性。无价格溢价。
  • 区域: 端点解析为您指定的单个 AWS 区域,用于数据驻留要求。区域端点比全球端点有 10% 的价格溢价。要在某个地理位置内的多个区域之间路由,请使用推理配置文件(US、EU、JP 或 AU)。表中标记为 仅区域内 的区域支持直接单区域路由,无需推理配置文件。

全球端点可用于 Claude Opus 4.7 和 Claude Haiku 4.5。Claude Mythos Preview 仅限区域,可在 us-east-1 中使用。

AWS 区域位置端点类型
af-south-1非洲(开普敦)全球
ap-northeast-1亚太(东京)全球、JP、仅区域内
ap-northeast-2亚太(首尔)全球
ap-northeast-3亚太(大阪)全球、JP
ap-south-1亚太(孟买)全球
ap-south-2亚太(海得拉巴)全球
ap-southeast-1亚太(新加坡)全球
ap-southeast-2亚太(悉尼)全球、AU
ap-southeast-3亚太(雅加达)全球
ap-southeast-4亚太(墨尔本)全球、AU、仅区域内
ca-central-1加拿大(中部)全球、US
ca-west-1加拿大西部(卡尔加里)全球
eu-central-1欧洲(法兰克福)全球、EU
eu-central-2欧洲(苏黎世)全球、EU
eu-north-1欧洲(斯德哥尔摩)全球、EU、仅区域内
eu-south-1欧洲(米兰)全球、EU
eu-south-2欧洲(西班牙)全球、EU
eu-west-1欧洲(爱尔兰)全球、EU、仅区域内
eu-west-2欧洲(伦敦)全球、EU
eu-west-3欧洲(巴黎)全球、EU
il-central-1以色列(特拉维夫)全球
me-central-1中东(阿联酋)全球
sa-east-1南美(圣保罗)全球
us-east-1美国东部(北弗吉尼亚)全球、US、仅区域内
us-east-2美国东部(俄亥俄)全球、US、仅区域内
us-west-1美国西部(北加利福尼亚)全球、US
us-west-2美国西部(俄勒冈)全球、US、仅区域内

配额

默认配额为每分钟 200 万输入 token(TPM)。您可以在无需额外 Anthropic 批准的情况下请求最多 400 万输入 TPM。AWS 在 Bedrock 端强制执行每分钟请求数(RPM)限制;请联系 AWS 支持进行 RPM 调整。

数据保留

此产品的数据处理受 Amazon Bedrock 管辖。有关详细信息,请参阅 Amazon Bedrock 中的数据保护

监控和日志

Claude in Amazon Bedrock 将日志发送到 CloudWatch 和 CloudTrail。Anthropic 建议至少保留 30 天的滚动活动日志,以了解使用模式并调查潜在问题。

支持

如需支持,请联系 bedrock-ant-eap@amazon.com。请包含您的 AWS 账户 ID 和任何失败 API 响应中的 request-id

Note

Claude Mythos Preview 是一个研究预览模型,面向 Amazon Bedrock 上受邀客户开放。有关更多信息,请参阅 Project Glasswing