Amazon Bedrock 上的 Claude Code
了解如何透過 Amazon Bedrock 配置 Claude Code,包括設定、IAM 配置和故障排除。
先決條件
在使用 Bedrock 配置 Claude Code 之前,請確保您具備:
- 已啟用 Bedrock 存取權限的 AWS 帳戶
- 在 Bedrock 中存取所需的 Claude 模型(例如 Claude Sonnet 4)
- 已安裝並配置的 AWS CLI(可選 - 僅在您沒有其他獲取憑證機制時需要)
- 適當的 IAM 權限
設定
1. 啟用模型存取權限
首先,確保您在 AWS 帳戶中擁有所需 Claude 模型的存取權限:
- 導航至 Amazon Bedrock 控制台
- 在左側導航中前往模型存取權限
- 請求存取所需的 Claude 模型(例如 Claude Sonnet 4)
- 等待批准(大多數區域通常立即批准)
2. 配置 AWS 憑證
Claude Code 使用預設的 AWS SDK 憑證鏈。使用以下方法之一設定您的憑證:
選項 A:AWS CLI 配置
選項 B:環境變數(存取金鑰)
選項 C:環境變數(SSO 設定檔)
選項 D:Bedrock API 金鑰
Bedrock API 金鑰提供了一種更簡單的身份驗證方法,無需完整的 AWS 憑證。了解更多關於 Bedrock API 金鑰的資訊。
進階憑證配置
Claude Code 支援 AWS SSO 和企業身份提供者的自動憑證刷新。將這些設定添加到您的 Claude Code 設定檔案中(請參閱設定了解檔案位置)。
當 Claude Code 檢測到您的 AWS 憑證已過期(基於本地時間戳或當 Bedrock 返回憑證錯誤時),它將自動運行您配置的 awsAuthRefresh
和/或 awsCredentialExport
命令以獲取新憑證,然後重試請求。
範例配置
配置設定說明
awsAuthRefresh
:用於修改 .aws
目錄的命令(例如,更新憑證、SSO 快取或配置檔案)。輸出會顯示給使用者(但不支援使用者輸入),適合基於瀏覽器的身份驗證流程,其中 CLI 顯示要在瀏覽器中輸入的代碼。
awsCredentialExport
:僅在您無法修改 .aws
且必須直接返回憑證時使用。輸出會被靜默捕獲(不顯示給使用者)。命令必須以此格式輸出 JSON:
3. 配置 Claude Code
設定以下環境變數以啟用 Bedrock:
為 Claude Code 啟用 Bedrock 時,請記住以下幾點:
AWS_REGION
是必需的環境變數。Claude Code 不會從.aws
配置檔案中讀取此設定。- 使用 Bedrock 時,
/login
和/logout
命令會被停用,因為身份驗證是透過 AWS 憑證處理的。 - 您可以使用設定檔案來設定像
AWS_PROFILE
這樣您不希望洩露給其他程序的環境變數。請參閱設定了解更多資訊。
4. 模型配置
Claude Code 為 Bedrock 使用這些預設模型:
模型類型 | 預設值 |
---|---|
主要模型 | us.anthropic.claude-3-7-sonnet-20250219-v1:0 |
小型/快速模型 | us.anthropic.claude-3-5-haiku-20241022-v1:0 |
要自訂模型,請使用以下方法之一:
提示快取可能在所有區域都不可用
5. 輸出權杖配置
在 Amazon Bedrock 上使用 Claude Code 時,我們建議以下權杖設定:
為什麼使用這些值:
-
CLAUDE_CODE_MAX_OUTPUT_TOKENS=4096
:Bedrock 的燃盡節流邏輯將 4096 權杖設為 max_token 懲罰的最小值。設定更低不會降低成本,但可能會截斷長工具使用,導致 Claude Code 代理循環持續失敗。Claude Code 通常在沒有擴展思考的情況下使用少於 4096 個輸出權杖,但對於涉及大量檔案創建或寫入工具使用的任務可能需要這個餘量。 -
MAX_THINKING_TOKENS=1024
:這為擴展思考提供了空間,而不會截斷工具使用回應,同時仍保持專注的推理鏈。這種平衡有助於防止軌跡變化,這對於編碼任務來說並不總是有幫助的。
IAM 配置
為 Claude Code 創建具有所需權限的 IAM 政策:
對於更嚴格的權限,您可以將資源限制為特定的推理設定檔 ARN。
詳細資訊請參閱 Bedrock IAM 文件。
我們建議為 Claude Code 創建專用的 AWS 帳戶,以簡化成本追蹤和存取控制。
故障排除
如果您遇到區域問題:
- 檢查模型可用性:
aws bedrock list-inference-profiles --region your-region
- 切換到支援的區域:
export AWS_REGION=us-east-1
- 考慮使用推理設定檔進行跨區域存取
如果您收到錯誤「不支援按需輸送量」:
- 將模型指定為推理設定檔 ID
Claude Code 使用 Bedrock Invoke API,不支援 Converse API。