下拉查看上一篇

2026 年中国企业如何通过 AWS Bedrock + BAG 构建内部 AI 服务平台


随着 Claude Opus 4.6 和 Sonnet 4.6 相继在 Amazon Bedrock 上线,越来越多的国内企业希望将 Claude 集成到内部业务系统中。然而 Anthropic 官方 API 在中国大陆无法直接访问,企业还面临安全合规、权限管控、成本可视化等挑战。本文将先梳理三种主流接入方案,然后重点介绍如何通过 AWS Bedrock + Bedrock Access Gateway(BAG)+ Systems Manager(SSM)构建安全可控的企业内部 AI 服务平台。

三种接入方案对比

目前国内开发者调用 Claude API 主要有三条路径:

方案一:自建代理服务器

在海外(如美西、日本、新加坡)部署一台代理服务器,将请求转发到 Anthropic 官方 API。

  • 延迟:300–800ms(取决于代理服务器位置和线路质量)
  • 优点:完全自主可控,无第三方中间商
  • 缺点:需要自行维护服务器可用性,仅支持 Claude 模型,运维成本较高
  • 适合:有海外服务器资源和运维能力的团队

方案二:API 聚合平台

通过国内第三方 API 中转平台(如 apiyi 等)接入,这些平台通常在阿里云或火山云部署了国内节点。

  • 延迟:100–300ms(国内节点,首字节响应快)
  • 优点:修改 base_url 即可复用 OpenAI SDK,支持 Claude、GPT、Gemini 等 100+ 模型
  • 缺点:依赖第三方平台的稳定性和安全性,数据经过中间商
  • 适合:快速验证原型、个人开发者、对成本敏感的团队

方案三:AWS Bedrock(推荐企业方案)

通过 Amazon Bedrock 托管服务调用 Claude,享受 AWS 基础设施的 SLA 保障。

  • 延迟:200–500ms
  • 优点:企业级 SLA、支持 IAM 权限管控、CloudTrail 审计、跨区域推理(CRIS)
  • 缺点:需要 AWS 账号和一定的云服务经验,模型 ID 格式与官方 SDK 不同
  • 适合:已有 AWS 基础设施的企业、对安全合规有要求的团队
维度 自建代理 API 聚合平台 AWS Bedrock
延迟 300–800ms 100–300ms 200–500ms
安全性 自主可控 依赖第三方 AWS 企业级
多模型支持 仅 Claude 100+ 模型 AWS 上所有模型
运维成本 高 低 中
合规性 无保障 无保障 CloudTrail + IAM

AWS Bedrock 接入完整步骤

以下以 AWS Bedrock 为例,详细讲解从零开始配置 Claude 的全流程。

步骤 1:注册 AWS 账号并配置 CLI

首先确保拥有 AWS 账号,然后安装并配置 AWS CLI(版本 ≥ 2.13.23):

# 安装 AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip && sudo ./aws/install

# 配置凭证
aws configure

# 验证身份
aws sts get-caller-identity

步骤 2:申请 Anthropic 模型访问权限

登录 AWS 控制台 → Bedrock → Model access,找到 Anthropic 模型并提交访问申请。需要注意的是,不同 Region 需要分别申请权限。

推荐使用 us-west-2(俄勒冈)区域,模型支持最全。

步骤 3:安装 SDK 并编写代码

Anthropic 官方 SDK 原生支持 Bedrock,无需额外适配层:

Python 方案(推荐):

pip install -U "anthropic[bedrock]"
from anthropic import AnthropicBedrock

client = AnthropicBedrock(
    aws_region="us-west-2",
    # 使用默认 AWS 凭证链(~/.aws/credentials 或环境变量)
)

message = client.messages.create(
    model="global.anthropic.claude-opus-4-6-v1",
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好,请用中文介绍一下你自己"}],
)
print(message.content)

TypeScript 方案:

npm install @anthropic-ai/bedrock-sdk
import AnthropicBedrock from '@anthropic-ai/bedrock-sdk';

const client = new AnthropicBedrock({
  awsRegion: 'us-west-2',
});

const message = await client.messages.create({
  model: 'global.anthropic.claude-opus-4-6-v1',
  max_tokens: 1024,
  messages: [{ role: 'user', content: '你好,请用中文介绍一下你自己' }],
});
console.log(message);

Boto3 方案(适合已有 AWS 基础设施的团队):

import boto3
import json

bedrock = boto3.client(service_name="bedrock-runtime", region_name="us-west-2")

body = json.dumps({
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "你好,请用中文介绍一下你自己"}],
    "anthropic_version": "bedrock-2023-05-31",
})

response = bedrock.invoke_model(
    body=body,
    modelId="global.anthropic.claude-opus-4-6-v1",
)

result = json.loads(response["body"].read())
print(result["content"])

模型选择与定价

Claude 模型成本优化策略

2026 年 2 月,Claude Opus 4.6 和 Sonnet 4.6 先后在 Bedrock 上线,以下是当前可用模型及定价:

模型 Bedrock 模型 ID 输入价格 输出价格 上下文窗口
Claude Opus 4.6 anthropic.claude-opus-4-6-v1 $5/百万 token $25/百万 token 1M
Claude Sonnet 4.6 anthropic.claude-sonnet-4-6 $3/百万 token $15/百万 token 1M
Claude Haiku 4.5 anthropic.claude-haiku-4-5-20251001-v1:0 $1/百万 token $5/百万 token 200K

选型建议:

  • Opus 4.6:复杂推理、代码生成、企业级 Agent 工作流
  • Sonnet 4.6:日常编码、对话、搜索场景的性价比之选(SWE-bench 79.6%)
  • Haiku 4.5:高吞吐量分类、摘要、轻量级任务

全局端点 vs 区域端点

从 Claude Sonnet 4.5 起,Bedrock 提供两种端点:

  • 全局端点(global. 前缀):动态路由,最大可用性,无价格溢价,推荐大多数场景
  • 区域端点(us. / eu. / jp. 前缀):数据驻留合规,10% 价格溢价

国内开发者如果对数据驻留无特殊要求,建议使用全局端点以获得最佳可用性。

企业重点方案:Bedrock + BAG + SSM 内部 AI 服务平台

对于企业用户,仅仅能"调用 Claude API"是不够的。企业需要的是一个统一的 AI 服务平台:兼容现有技术栈、集中管控权限、审计所有调用记录、支持多团队共享。这正是 Bedrock Access Gateway(BAG) 的价值所在。

什么是 Bedrock Access Gateway(BAG)

BAG 是 AWS 官方开源的代理网关(aws-samples/bedrock-access-gateway),核心功能是将 Amazon Bedrock 的 API 转换为 OpenAI 兼容格式。这意味着:

  • 所有使用 OpenAI SDK 的现有应用,只需修改 base_url 和 API Key,即可无缝切换到 Bedrock 上的 Claude 模型
  • 支持 LangChain、LlamaIndex 等主流框架的 ChatOpenAI 接口,零代码改动
  • 同时兼容 Claude、Amazon Nova、DeepSeek、Qwen 等 Bedrock 上的所有模型

支持的核心特性:

功能 说明
流式响应(SSE) 支持 Server-Sent Events 实时输出
工具调用(Function Calling) 完整支持 OpenAI 格式的 tool_calls
多模态输入 图片、PDF 等多模态内容
跨区域推理 自动利用 Bedrock 全局端点
Prompt 缓存 降低高达 90% 的重复请求成本
扩展思维模式 支持 Claude 的 extended thinking

架构设计:Bedrock + BAG + SSM

企业内部 AI 服务平台的推荐架构如下:

Bedrock + BAG + SSM 企业内部 AI 服务架构

三大核心组件的职责:

  • Amazon Bedrock:提供 Claude 等基础模型的推理能力,企业级 SLA 保障
  • BAG(Bedrock Access Gateway):OpenAI 兼容代理层,统一 API 入口,屏蔽底层模型差异
  • SSM(Systems Manager):集中管理 API Key、模型配置、运维访问,所有操作可审计

部署方案选择

BAG 提供两种部署模式:

方案 架构 优势 适用场景
API Gateway + Lambda 无服务器 按请求计费,零运维,无需 VPC 用量不大、成本敏感
ALB + Fargate 容器化 最低延迟,无冷启动,支持内网部署 生产环境、高吞吐、内网隔离

企业推荐使用 ALB + Fargate 方案,原因:

  1. ALB 可配置为内部负载均衡器,仅在 VPC 内可访问,天然网络隔离
  2. Fargate 无冷启动问题,P99 延迟更稳定
  3. 支持与企业现有的 VPC Peering / Transit Gateway 网络打通

部署步骤详解

步骤 1:创建 API Key(SSM Secrets Manager)

在 AWS Secrets Manager 中创建 BAG 的认证密钥,团队内部应用通过此 Key 访问网关:

# 创建 API Key(建议使用随机字符串)
aws secretsmanager create-secret \
  --name "bedrock-access-gateway/api-key" \
  --secret-string '{"api_key":"bag-sk-your-random-secret-key-here"}' \
  --region us-west-2

步骤 2:构建并推送 BAG 容器镜像

# 克隆 BAG 仓库
git clone https://github.com/aws-samples/bedrock-access-gateway.git
cd bedrock-access-gateway

# 构建镜像并推送到 ECR
./scripts/push-image.sh

步骤 3:使用 CloudFormation 部署

# 部署 ALB + Fargate 方案(内网模式)
aws cloudformation deploy \
  --template-file cloudformation/fargate.yaml \
  --stack-name bedrock-access-gateway \
  --parameter-overrides \
    ApiKeySecretArn=arn:aws:secretsmanager:us-west-2:123456789:secret:bedrock-access-gateway/api-key \
    ImageUri=123456789.dkr.ecr.us-west-2.amazonaws.com/bedrock-proxy:latest \
    Scheme=internal \
  --capabilities CAPABILITY_IAM \
  --region us-west-2

关键参数 Scheme=internal 确保 ALB 仅在 VPC 内部可访问。

步骤 4:SSM Parameter Store 配置管理

使用 SSM Parameter Store 集中管理运行时配置,避免硬编码:

# 存储默认模型配置
aws ssm put-parameter \
  --name "/bag/config/default-model" \
  --value "anthropic.claude-sonnet-4-6" \
  --type String

# 存储限流策略(SecureString 加密)
aws ssm put-parameter \
  --name "/bag/config/rate-limit" \
  --value '{"requests_per_minute": 100, "tokens_per_minute": 500000}' \
  --type SecureString

# 存储团队级别的模型白名单
aws ssm put-parameter \
  --name "/bag/config/allowed-models" \
  --value "anthropic.claude-sonnet-4-6,anthropic.claude-haiku-4-5-20251001-v1:0" \
  --type StringList

步骤 5:SSM Session Manager 安全运维

通过 SSM Session Manager 管理 BAG 服务,无需开放 SSH 端口,所有操作自动记录审计日志:

# 通过 SSM 连接到 Fargate 容器(无需 SSH)
aws ecs execute-command \
  --cluster bag-cluster \
  --task <task-id> \
  --container bag-proxy \
  --interactive \
  --command "/bin/sh"

# 查看 BAG 运行状态
aws ssm start-session \
  --target <instance-id> \
  --document-name AWS-StartInteractiveCommand \
  --parameters command="curl -s http://localhost:8000/health"

SSM 的所有会话都会记录到 CloudTrail,满足企业审计合规要求。

内部应用接入指南

BAG 部署完成后,内部应用接入极其简单——只需配置两个环境变量:

# 指向 BAG 内部负载均衡器地址
export OPENAI_BASE_URL=http://bag-internal-alb.internal:8000/api/v1
export OPENAI_API_KEY=bag-sk-your-random-secret-key-here

Python 应用(OpenAI SDK):

from openai import OpenAI

# 无需修改任何业务代码,SDK 自动读取环境变量
client = OpenAI()

response = client.chat.completions.create(
    model="anthropic.claude-sonnet-4-6",
    messages=[{"role": "user", "content": "分析这份季度报告的关键指标"}],
    stream=True,
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="")

LangChain 集成:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="anthropic.claude-sonnet-4-6",
    base_url="http://bag-internal-alb.internal:8000/api/v1",
    api_key="bag-sk-your-random-secret-key-here",
)

response = llm.invoke("总结这篇文档的核心观点")

Prompt 缓存(降低高达 90% 成本):

# 对系统提示词启用缓存,重复调用时大幅降低费用
response = client.chat.completions.create(
    model="anthropic.claude-sonnet-4-6",
    messages=[
        {"role": "system", "content": "你是企业内部的财务分析助手...(长系统提示词)"},
        {"role": "user", "content": "分析 Q1 营收数据"},
    ],
    extra_body={"prompt_caching": {"system": True}},
)

企业安全与合规保障

Bedrock + BAG + SSM 的组合为企业提供了多层安全保障:

层级 组件 安全能力
网络层 VPC + 内部 ALB 服务不暴露公网,仅 VPC 内可访问
认证层 Secrets Manager + API Key 集中密钥管理,定期轮换
权限层 IAM Policy 精细控制哪些角色可调用哪些模型
配置层 SSM Parameter Store 运行时配置集中管理,SecureString 加密敏感数据
运维层 SSM Session Manager 无 SSH 端口,所有操作可审计
审计层 CloudTrail + CloudWatch 全量 API 调用日志,异常告警
成本层 AWS Budgets + 标签 按团队/项目分摊成本,预算超限告警

Claude Code 配合 BAG 使用

企业开发团队可以让 Claude Code 通过 BAG 网关调用 Bedrock,获得统一的审计和管控:

# 方式一:直接使用 Bedrock(需要每个开发者配置 AWS 凭证)
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-west-2

# 方式二:通过 BAG 网关(推荐,统一入口、统一审计)
export ANTHROPIC_BASE_URL=http://bag-internal-alb.internal:8000/api/v1
export ANTHROPIC_API_KEY=bag-sk-your-random-secret-key-here

方式二的优势是开发者无需持有 AWS 凭证,所有调用通过 BAG 统一代理,便于企业集中管理。

跨区域推理与亚太扩展

2026 年初,AWS 将全球跨区域推理(Global CRIS)扩展到了更多亚太地区,包括泰国、马来西亚、新加坡、印度尼西亚和台湾地区。BAG 天然支持跨区域推理——只需在模型 ID 中使用 global. 前缀即可自动路由到最近可用区域。

对于中国大陆企业,推荐的网络优化方案:

  1. AWS 全球账号 + 东京/新加坡区域:选择 ap-northeast-1 或 ap-southeast-1 部署 BAG
  2. 专线/VPN 连接:通过 AWS Direct Connect 或 Site-to-Site VPN 建立到 BAG 的专线,确保稳定低延迟
  3. VPC Peering / Transit Gateway:将企业 VPC 与 BAG 所在 VPC 打通,内网直连

实战技巧与注意事项

常见问题排查

  • AccessDeniedException:确认已在对应 Region 申请模型权限,检查 BAG 的 IAM Role 是否包含 bedrock:InvokeModel 权限
  • ThrottlingException:检查账号配额限制,必要时申请提升;BAG 侧可通过 SSM Parameter Store 配置限流
  • 连接超时:检查 VPC 安全组规则,确认 ALB 目标组健康检查正常
  • 冷启动延迟:如使用 Lambda 方案,可配置预置并发;推荐生产环境使用 Fargate 方案

成本控制建议

  • 使用全局端点避免区域溢价(10%)
  • 启用 BAG 的 Prompt 缓存功能,对重复系统提示词降低高达 90% 成本
  • 对非实时任务使用 Haiku 4.5 降低成本
  • 利用 Batch API 批量处理,享受 50% 折扣
  • 通过 AWS Cost Explorer + 资源标签,按团队/项目维度分析 AI 用量
  • 设置 AWS Budgets 告警,防止预算超支

总结

对于中国企业而言,Bedrock + BAG + SSM 是目前构建内部 AI 服务平台的最佳实践组合:

  • Bedrock 提供企业级 SLA 和最新的 Claude 4.6 系列模型
  • BAG 提供 OpenAI 兼容的统一 API 入口,现有应用零改动接入
  • SSM 提供集中配置管理、安全运维和全量审计能力

这套架构的核心优势在于:内部应用无需关心底层模型差异,开发者无需持有 AWS 凭证,所有 AI 调用经过统一网关、统一审计、统一计费。随着 Claude 4.6 系列模型上线和亚太区域的持续扩展,企业通过这套方案可以快速、安全地将 AI 能力赋能到各个业务线。

参考来源

评论

上滑查看下一篇