如何通过AWS Bedrock使用Claude Code(替代Anthropic控制台认证)
先查工具的高级配置
别着急改代码,先看看你用的Claude Code客户端/插件有没有隐藏的Bedrock配置入口。很多工具不会把Bedrock选项放在首页,一般藏在「设置」-「高级」或者「模型提供商」这类菜单里,找到后直接填AWS的身份凭证(Access Key/Secret Key,或者用IAM角色绑定的环境变量),再指定Bedrock上Claude模型的ARN就行,比如arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0,这样就能绕开/login的Anthropic密钥要求。改工具的调用逻辑(如果工具不支持Bedrock)
如果工具硬编码了必须走Anthropic的/login流程,那就直接改它的配置文件或源码:- 找到工具里调用Anthropic API的代码段,把它替换成AWS Bedrock的API调用逻辑。Bedrock需要用AWS SigV4签名,直接用AWS SDK(比如Python的boto3)就能搞定签名和请求。
- 给你个简单的Python示例:
import boto3 import json def call_claude_via_bedrock(prompt): bedrock_client = boto3.client('bedrock-runtime', region_name='us-east-1') response = bedrock_client.invoke_model( modelId='anthropic.claude-3-sonnet-20240229-v1:0', contentType='application/json', accept='application/json', body=json.dumps({ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "messages": [{"role": "user", "content": prompt}] }) ) return json.loads(response['body'].read()) - 把工具里原本调用Anthropic API的部分换成这个函数,直接跳过/login的密钥验证步骤。
搭个请求中转代理
要是不想改工具源码,就搭个简单的代理服务:让工具把Anthropic API请求发给你的代理,代理把请求转换成Bedrock的格式,用AWS凭证签名后发给Bedrock,再把Bedrock的响应转成Anthropic的格式返回给工具。这样工具还是会走/login流程,但实际处理请求的是Bedrock。用Node.js的Express或者Python的Flask就能快速搞定,重点处理/v1/messages这类Anthropic的核心接口。给开发者提需求
要是以上方法都嫌麻烦,直接给工具的开发者提Issue或者Feature Request,明确说要加AWS Bedrock的认证选项,替代现在强制的Anthropic密钥登录。
内容的提问来源于stack exchange,提问作者wonton

