Configuring Cross-Region Inference Profiles for Amazon Bedrock Models: A Complete Guide

Cross-region inference profiles enable Amazon Bedrock to distribute model requests across multiple AWS regions using geographic prefixes like us., eu., or global., improving throughput and ensuring data residency while requiring profile-specific IAM permissions and model IDs in your SDK code.

Configuring cross-region inference profiles for Amazon Bedrock models allows you to route AI workloads across geographic boundaries automatically. According to the aws/agent-toolkit-for-aws repository, these profiles are logical groupings defined in skills/core-skills/amazon-bedrock/references/model-selection-guide.md that combine foundation models with routing prefixes, letting the service optimize for latency, throughput, and compliance.

Understanding Cross-Region Inference Profiles

A cross-region inference profile is a logical abstraction that pairs a foundation model with a geographic routing prefix. When you specify a profile ID such as global.anthropic.claude-sonnet-4-5-20250929-v1:0 instead of the base model ID, Bedrock evaluates the prefix to determine eligible regions for processing.

The routing prefixes function as follows:

  • us. – Routes only to US commercial regions
  • eu. – Routes only to EU commercial regions
  • apac. – Routes only to APAC commercial regions
  • global. – Routes to any commercial region where the model is available

This behavior is implemented in the core Bedrock skill documentation at skills/core-skills/amazon-bedrock/SKILL.md.

Benefits of Cross-Region Inference

Using inference profiles provides specific architectural advantages:

  • Higher throughput – Distributes traffic across multiple regions, avoiding single-region quota bottlenecks
  • Data residency control – Geographic prefixes enforce that requests never leave specified regions, satisfying compliance requirements
  • Simplified IAM management – Single policies can grant access to all regions covered by a profile rather than enumerating regional endpoints
  • Cost allocation – Profiles support tagging for detailed usage tracking in AWS Cost Explorer, as referenced in the cost-tracking documentation

Step-by-Step Configuration

Follow these steps to configure and deploy a cross-region inference profile based on the repository's implementation guides.

1. Identify Available Models

First, determine which models support cross-region inference in your target region:

aws bedrock list-foundation-models --region us-east-1

Check for existing profiles that might already include your target model:

aws bedrock list-inference-profiles --region us-east-1

2. Create the Inference Profile

If no existing profile meets your requirements, create one using the AWS CLI. The CLI scaffolds a global. profile by default:

aws bedrock create-inference-profile \
    --profile-name my-profile \
    --model-id amazon.titan-text-v2:0 \
    --region us-east-1

For geographic control, construct the profile ID manually using the appropriate prefix (e.g., us.amazon.titan-text-v2:0).

3. Configure IAM Permissions

Your IAM policy must authorize both the foundation model and the inference profile. According to skills/core-skills/amazon-bedrock/references/agents-and-action-groups.md, the policy requires a wildcard region for the foundation model because requests may route to any region in the profile:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "bedrock:InvokeModel",
      "Resource": [
        "arn:aws:bedrock:*::foundation-model/amazon.titan-text-v2",
        "arn:aws:bedrock:us-east-1:123456789012:inference-profile/my-profile-id"
      ]
    }
  ]
}

The wildcard region (*) in the foundation-model ARN is mandatory because the actual inference may occur in any region covered by the profile.

Implementation Examples

When invoking models, use the full profile ID rather than the base model ID. The SDK examples in skills/core-skills/amazon-bedrock/references/sdk-converse-api-typescript.md and the Python equivalent demonstrate this pattern.

TypeScript Implementation

import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";

const client = new BedrockRuntimeClient({ region: "us-east-1" });

const command = new InvokeModelCommand({
  modelId: "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
  contentType: "application/json",
  accept: "application/json",
  body: Buffer.from(
    JSON.stringify({
      prompt: "Explain cross-region inference benefits.",
      maxTokens: 512,
    })
  ),
});

const response = await client.send(command);
console.log(Buffer.from(response.body).toString("utf-8"));

Python Implementation

import boto3
import json

bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")

response = bedrock.invoke_model(
    modelId="eu.anthropic.claude-sonnet-4-5-20250929-v1:0",
    contentType="application/json",
    accept="application/json",
    body=json.dumps({
        "prompt": "Analyze data residency requirements.",
        "max_gen_len": 512
    }).encode("utf-8")
)

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

Architectural Considerations

When configuring cross-region inference profiles, consider these implementation details from the repository's core skill documentation.

Routing Logic and Latency

The global. prefix maximizes throughput by utilizing any available commercial region, but may increase latency if Bedrock routes your request to a distant region under load. Geographic prefixes (us., eu., apac.) provide predictable latency by constraining routing to specific areas, though they limit the total available throughput pool.

Error Handling

If you receive ResourceNotFoundException or ValidationException: on-demand throughput isn't supported, you are likely using a base model ID that requires an inference profile. Switch to the profile ID format (including the appropriate prefix) and retry. Detailed error handling patterns are documented in skills/core-skills/amazon-bedrock/references/model-invocation.md.

Agent Toolkit Integration

The Agent Toolkit scaffolding creates global. profiles by default when provisioning new agents in plugins/aws-agents/skills/agents-deploy/SKILL.md. To use geographic constraints instead, modify the model loader configuration in your agent code, as shown in plugins/aws-agents/skills/agents-get-started/references/example-support-agent.md.

Summary

  • Cross-region inference profiles combine foundation models with geographic prefixes (us., eu., apac., global.) to control routing across AWS regions.
  • IAM policies must include both the inference profile ARN and a wildcard foundation-model ARN (arn:aws:bedrock:*::foundation-model/...) to permit cross-region routing.
  • SDK implementations require the full profile ID (e.g., global.anthropic.claude-sonnet-4-5-20250929-v1:0) rather than the base model ID in the modelId parameter.
  • Geographic prefixes enforce data residency compliance, while global. prefixes maximize throughput and availability.

Frequently Asked Questions

What is the difference between a foundation model ID and an inference profile ID?

A foundation model ID (e.g., anthropic.claude-sonnet-4-5-20250929-v1:0) references a single model in a specific region. An inference profile ID (e.g., global.anthropic.claude-sonnet-4-5-20250929-v1:0) is a logical identifier that includes a routing prefix, allowing Bedrock to distribute requests across multiple regions. According to the source code in skills/core-skills/amazon-bedrock/references/model-selection-guide.md, you must use the profile ID in your API calls to enable cross-region capabilities.

Why does my IAM policy need a wildcard region for the foundation model?

The wildcard (*) in the foundation-model ARN (e.g., arn:aws:bedrock:*::foundation-model/...) is required because Bedrock may route your request to any region included in the inference profile. The IAM policy validates access to the underlying model regardless of which specific region processes the request, as documented in skills/core-skills/amazon-bedrock/references/agents-and-action-groups.md.

When should I use a geographic prefix instead of global?

Use geographic prefixes (us., eu., apac.) when you must ensure data residency within a specific geographic boundary for compliance reasons. Use the global. prefix when you need maximum throughput and availability, and data residency requirements allow processing in any AWS commercial region. The repository's cost-tracking reference notes that all profiles support tagging for usage attribution regardless of prefix type.

How do I troubleshoot "ResourceNotFoundException" when using inference profiles?

This error typically indicates you are passing a base model ID to an operation that requires an inference profile ID. Verify that your modelId parameter includes the appropriate prefix (e.g., us. or global.). If you created the profile via CLI, ensure you are using the full profile ARN or ID as shown in skills/core-skills/amazon-bedrock/references/model-invocation.md.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →