AWS Bedrock Configuration Guide¶
Overview¶
This guide explains how to configure your Vell platform to route all AI requests through AWS Bedrock instead of direct API calls to Anthropic or Stability AI.
Source of truth
The full canonical model list lives in App\Enums\BedrockEngine. The lineup below mirrors that enum as of 2026-05-03. When new models are added in code, update this doc — or always cross-check against the enum.
Available Bedrock Models¶
Claude Models (via Bedrock)¶
Claude 4 family (recommended for most workloads):
- Claude Opus 4.5 —
anthropic.claude-opus-4-5-20251101-v1:0 - Claude Opus 4.1 —
anthropic.claude-opus-4-1-20250805-v1:0 - Claude Opus 4 —
anthropic.claude-opus-4-20250514-v1:0 - Claude Sonnet 4.5 —
anthropic.claude-sonnet-4-5-20250929-v1:0 - Claude Sonnet 4 —
anthropic.claude-sonnet-4-20250514-v1:0 - Claude Haiku 4.5 —
anthropic.claude-haiku-4-5-20251001-v1:0
Global / cross-region inference profiles (recommended where supported — better availability and cost):
- Claude Sonnet 4.5 (Global/US) —
us.anthropic.claude-sonnet-4-5-20250929-v1:0 - Claude Sonnet 4 (Global/US) —
us.anthropic.claude-sonnet-4-20250514-v1:0 - Claude Haiku 4.5 (Global/US) —
us.anthropic.claude-haiku-4-5-20251001-v1:0
Claude 3 family (still supported for compatibility):
- Claude 3.7 Sonnet —
anthropic.claude-3-7-sonnet-20250219-v1:0 - Claude 3.5 Sonnet v2 (US) —
us.anthropic.claude-3-5-sonnet-20241022-v2:0 - Claude 3.5 Sonnet (US) —
us.anthropic.claude-3-5-sonnet-20240620-v1:0 - Claude 3.5 Haiku (US) —
us.anthropic.claude-3-5-haiku-20241022-v1:0 - Claude 3 Opus (US) —
us.anthropic.claude-3-opus-20240229-v1:0 - Claude 3 Sonnet (US) —
us.anthropic.claude-3-sonnet-20240229-v1:0 - Claude 3 Haiku (US) —
us.anthropic.claude-3-haiku-20240307-v1:0
Amazon Nova Models (via Bedrock)¶
Nova 1 family:
- Amazon Nova Micro —
amazon.nova-micro-v1:0(ultra-low cost, fastest) - Amazon Nova Lite —
amazon.nova-lite-v1:0(low cost, default for Starter) - Amazon Nova Pro —
amazon.nova-pro-v1:0(mid-tier) - Amazon Nova Premier —
amazon.nova-premier-v1:0(premium tier)
Nova 2 family:
- Amazon Nova 2 Lite —
us.amazon.nova-2-lite-v1:0 - Amazon Nova 2 Sonic —
us.amazon.nova-2-sonic-v1:0 - Amazon Nova Multimodal Embeddings —
amazon.nova-2-multimodal-embeddings-v1:0
Other Foundation Models (via Bedrock)¶
Qwen (Alibaba):
- Qwen3 Next 80B —
qwen.qwen3-next-80b-a3b - Qwen3 VL 235B —
qwen.qwen3-vl-235b-a22b
Mistral:
- Mistral Large 3 —
mistral.mistral-large-3-675b-instruct - Magistral Small —
mistral.magistral-small-2509
Nvidia:
- Nemotron Nano 9B —
nvidia.nemotron-nano-9b-v2
Image Generation (via Bedrock)¶
- Amazon Nova Canvas —
amazon.nova-canvas-v1:0(recommended for new image work) - Amazon Titan Image Generator v2 —
amazon.titan-image-generator-v2:0(deprecated) - Stable Image Inpaint —
stability.stable-image-inpaint-v1:0 - Stable Image Outpaint —
stability.stable-outpaint-v1:0 - Stable Image Fast Upscale —
stability.stable-fast-upscale-v1:0 - Stable Image Creative Upscale —
stability.stable-creative-upscale-v1:0 - Stable Image Remove Background —
stability.stable-image-remove-background-v1:0 - Stable Image Search & Replace —
stability.stable-image-search-replace-v1:0 - Stable Image Style Transfer —
stability.stable-style-transfer-v1:0
Default Models per Plan Tier¶
Per the changelog (2026-02-15), default Bedrock models are:
| Plan | Default model | Rationale |
|---|---|---|
| Starter | Amazon Nova Lite | Lowest-cost, fastest for high-volume content tasks |
| Accelerate | Claude Sonnet 4 | Strong instruction-following at moderate cost |
| Command | Claude Sonnet 4.5 | Highest-quality outputs across all capabilities |
Partners on any tier can override the default model per workflow via the agent runtime.
Configuration Steps¶
1. Configure AWS Credentials¶
Ensure your .env file has AWS credentials configured:
AWS_ACCESS_KEY_ID=your_access_key_here
AWS_SECRET_ACCESS_KEY=your_secret_key_here
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=your_bucket_name
2. Enable Nova Models in Database¶
Run the migration to enable Bedrock models (if not already run):
This runs migration 2025_11_04_000002_add_bedrock_nova_and_claude_models_to_entities.php which adds all Bedrock Claude and Nova models to the entities table with status ENABLED.
3. Configure Default AI Engine for Text Generation¶
Option A: Use Bedrock Claude Models¶
- Go to Admin → Config → AI Tools Settings
- Set Default AI Engine to Anthropic
- Go to Admin → Settings → Anthropic
- In the "Default Anthropic Word Model" dropdown, select AWS Bedrock
- In the "Default AWS Bedrock Model" dropdown that appears, choose your model:
- Recommended: Claude Sonnet 4.5 (Global) for best performance
- Cost-effective: Claude Haiku 4.5 (Global) for lower cost
- Amazon Nova: Select any Nova model (Micro, Lite, Pro, or Premier)
Option B: Make Nova Models Available to Users¶
Nova models are already available! Users will see them in the AI model selector if:
1. The migration has run (adds them to entities table)
2. They have credits allocated for those models
3. The models are enabled (status = ENABLED)
4. Configure Image Generation via Bedrock¶
For AI Writer/Article Wizard:¶
- Go to Admin → Settings → Stable Diffusion
- In the Default StableDiffusion Image Model dropdown
- Select AWS Bedrock from the options
- In the Default AWS Bedrock Model section that appears
- Select SDXL 1.0 (stability.stable-diffusion-xl-v1)
Now all Stable Diffusion image generation in the Article Wizard will route through AWS Bedrock.
5. Configure Bedrock Access Model (BYOK Options)¶
Go to Admin → Config → AI Tools Settings, scroll to Step 7A: Bedrock Access Model
Choose one of three options:
Platform Credentials (Default - Recommended)¶
- Simple setup
- Users consume your AWS credits
- Uses platform AWS credentials from
.env - Best for: Most SaaS deployments
User AWS Access Keys (BYOK)¶
- Users provide their own AWS Access Key ID and Secret Key
- Users pay AWS directly
- Requires users to configure their keys in Account Settings
- Best for: Users who want to use their own AWS accounts
User IAM Role (BYOC - Most Secure)¶
- Users deploy CloudFormation template in their AWS account
- Platform assumes IAM role with External ID
- No long-lived credentials stored
- Best for: Enterprise customers with security requirements
6. Set Up Model Credits¶
- Go to Admin → Finance → Plans
- Edit your plans
- Under Bedrock Nova and Bedrock Claude sections:
- Set credit limits per model
- Or check "Unlimited" for unlimited usage
- Save the plan
7. Verify Configuration¶
Check Bedrock Models Are Available:¶
You should see entries like:
- bedrock-claude-3-5-sonnet-v2 (status: enabled)
- bedrock-nova-micro (status: enabled)
- bedrock-nova-lite (status: enabled)
- bedrock-nova-pro (status: enabled)
- bedrock-nova-premier (status: enabled)
Test the Integration:¶
- Log in as a user
- Go to AI Chat
- Click the AI Model selector
- You should see Nova models and Bedrock Claude models listed
- Select a Bedrock model and send a test message
Key Settings Summary¶
To Route Through AWS Bedrock:¶
| Feature | Setting Location | Configuration |
|---|---|---|
| Text Generation (Claude) | Admin → Settings → Anthropic | Select "AWS Bedrock" in model dropdown, then choose specific Bedrock model |
| Text Generation (Nova) | Admin → Settings → Anthropic | Select "AWS Bedrock" in model dropdown, then choose Nova model |
| Image Generation | Admin → Settings → Stable Diffusion | Select "AWS Bedrock" as default model |
| Default Engine | Admin → Config → AI Tools | Set to "Anthropic" |
| Access Model | Admin → Config → AI Tools → Step 7A | Choose Platform/User Keys/User Role |
Cost Optimization Tips¶
Nova Models Pricing (AWS Bedrock):¶
- Nova Micro: $0.00000035 per token (ultra low-cost)
- Nova Lite: $0.0000006 per token (low-cost)
- Nova Pro: $0.000008 per token (mid-tier)
- Nova Premier: $0.00002 per token (premium)
Recommendation:¶
- Use Nova Lite or Nova Micro for simple tasks (content summaries, basic chat)
- Use Nova Pro for complex reasoning tasks
- Use Claude Haiku 4.5 for balanced performance/cost with Claude quality
- Use Claude Sonnet 4.5 for highest quality outputs
Troubleshooting¶
"You have no credits left"¶
- Go to Admin → Finance → Plans
- Edit the user's plan
- Add credits for the specific Bedrock model they're trying to use
"AWS Bedrock client is not initialized"¶
- Check
.envfile has AWS credentials - Verify AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are set
- Ensure the AWS credentials have Bedrock access permissions
Models Not Appearing for Users¶
- Run:
php artisan migrateto ensure migration ran - Check entities table: models should have status = 'enabled'
- Ensure user's plan has credits for those models
Images Still Using Direct Stability AI API¶
- Go to Admin → Settings → Stable Diffusion
- Ensure "AWS Bedrock" is selected as the model
- The dropdown needs to explicitly show "AWS Bedrock" selected
AWS IAM Permissions Required¶
Your AWS credentials need these permissions for Bedrock. The inference-profile resource is required when invoking any model ID prefixed with us. or global. (cross-region inference profiles — Claude 3.5 Sonnet v2, Claude 4.x Global, etc.). Without it, calls fail with ValidationException: The provided model identifier is invalid, which looks like a model-access problem but is actually IAM.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:*::foundation-model/anthropic.claude-*",
"arn:aws:bedrock:*::foundation-model/amazon.nova-*",
"arn:aws:bedrock:*::foundation-model/stability.*",
"arn:aws:bedrock:*:*:inference-profile/us.anthropic.claude-*",
"arn:aws:bedrock:*:*:inference-profile/global.anthropic.claude-*"
]
}
]
}
Troubleshooting "invalid model identifier"¶
Two independent things must both be true for inference-profile calls to succeed:
- Bedrock console → Model access has been granted for the underlying foundation model in the target region (
us-east-1forus.profiles). - IAM policy includes the
inference-profile/...ARN above —foundation-model/*alone is not sufficient forus./global.model IDs.
Quick diagnostic from the host where the app runs:
aws bedrock-runtime invoke-model \
--model-id us.anthropic.claude-3-5-sonnet-20241022-v2:0 \
--body '{"anthropic_version":"bedrock-2023-05-31","max_tokens":50,"messages":[{"role":"user","content":"ping"}]}' \
--cli-binary-format raw-in-base64-out --region us-east-1 /tmp/bedrock.json
AccessDeniedException→ IAM policy is missing the inference-profile resource.ValidationException: invalid model identifier→ console model access has not been granted.- HTTP 200 → credentials work; confirm the app's
.envAWS_ACCESS_KEY_IDmatches the principal you just tested.
Runtime model override (no redeploy)¶
The First Call Deck wizard and other callers of BedrockContentGeneratorV2 read the model ID from the bedrock_content_generator_model setting, falling back to us.anthropic.claude-3-5-sonnet-20241022-v2:0. If model access is pending, temporarily point it at a model you do have access to:
// tinker
setting(['bedrock_content_generator_model' => 'global.anthropic.claude-haiku-4-5-20251001-v1:0'])->save();
Related Documentation¶
Support¶
For issues or questions, refer to: - AWS Bedrock documentation: https://docs.aws.amazon.com/bedrock/ - Platform documentation: https://docs.vell.io