Prerequisites
Before configuring Claude Code with Bedrock, ensure you have:- An AWS account with Bedrock access enabled
- Access to desired Claude models (for example, Claude Sonnet 4.5) in Bedrock
- AWS CLI installed and configured (optional - only needed if you don’t have another mechanism for getting credentials)
- Appropriate IAM permissions
Setup
1. Submit use case details
First-time users of Anthropic models are required to submit use case details before invoking a model. This is done once per account.- Ensure you have the right IAM permissions (see more on that below)
- Navigate to the Amazon Bedrock console
- Select Chat/Text playground
- Choose any Anthropic model and you will be prompted to fill out the use case form
2. Configure AWS credentials
Claude Code uses the default AWS SDK credential chain. Set up your credentials using one of these methods: Option A: AWS CLI configurationaws login.
Option E: Bedrock API keys
Advanced credential configuration
Claude Code supports automatic credential refresh for AWS SSO and corporate identity providers. Add these settings to your Claude Code settings file (see Settings for file locations). When Claude Code detects that your AWS credentials are expired (either locally based on their timestamp or when Bedrock returns a credential error), it will automatically run your configuredawsAuthRefresh and/or awsCredentialExport commands to obtain new credentials before retrying the request.
Example configuration
Configuration settings explained
awsAuthRefresh: Use this for commands that modify the .aws directory, such as updating credentials, SSO cache, or config files. The command’s output is displayed to the user, but interactive input isn’t supported. This works well for browser-based SSO flows where the CLI displays a URL or code and you complete authentication in the browser.
awsCredentialExport: Only use this if you can’t modify .aws and must directly return credentials. Output is captured silently and not shown to the user. The command must output JSON in this format:
3. Configure Claude Code
Set the following environment variables to enable Bedrock:AWS_REGIONis a required environment variable. Claude Code does not read from the.awsconfig file for this setting.- When using Bedrock, the
/loginand/logoutcommands are disabled since authentication is handled through AWS credentials. - You can use settings files for environment variables like
AWS_PROFILEthat you don’t want to leak to other processes. See Settings for more information.
4. Model configuration
Claude Code uses these default models for Bedrock:| Model type | Default value |
|---|---|
| Primary model | global.anthropic.claude-sonnet-4-5-20250929-v1:0 |
| Small/fast model | us.anthropic.claude-haiku-4-5-20251001-v1:0 |
For Bedrock users, Claude Code won’t automatically upgrade from Haiku 3.5 to Haiku 4.5. To manually switch to a newer Haiku model, set the
ANTHROPIC_DEFAULT_HAIKU_MODEL environment variable to the full model name (for example, us.anthropic.claude-haiku-4-5-20251001-v1:0).Prompt caching may not be available in all regions.
5. Output token configuration
These are the recommended token settings for Claude Code with Amazon Bedrock:-
CLAUDE_CODE_MAX_OUTPUT_TOKENS=4096: Bedrock’s burndown throttling logic sets a minimum of 4096 tokens as themax_tokenpenalty. Setting this lower won’t reduce costs but may cut off long tool uses, causing the Claude Code agent loop to fail persistently. Claude Code typically uses less than 4096 output tokens without extended thinking, but may need this headroom for tasks involving significant file creation or Write tool usage. -
MAX_THINKING_TOKENS=1024: This provides space for extended thinking without cutting off tool use responses, while still maintaining focused reasoning chains. This balance helps prevent trajectory changes that aren’t always helpful for coding tasks specifically.
IAM configuration
Create an IAM policy with the required permissions for Claude Code:We recommend creating a dedicated AWS account for Claude Code to simplify cost tracking and access control.
Troubleshooting
If you encounter region issues:- Check model availability:
aws bedrock list-inference-profiles --region your-region - Switch to a supported region:
export AWS_REGION=us-east-1 - Consider using inference profiles for cross-region access
- Specify the model as an inference profile ID