Skip to main content
Version: 0.12.0

AWS Bedrock Model Integration

Overview​

Kamiwaza can proxy Amazon Bedrock models through the same OpenAI-compatible APIs used by locally hosted models. Administrators register Bedrock as an external endpoint, deploy it through the normal model lifecycle, and expose familiar /v1/models and /v1/chat/completions routes to application teams.

The Bedrock integration currently supports:

  • Meta Llama 3 instruct models
  • Amazon Nova models, including streaming chat responses and image inputs
  • Anthropic Claude models through the Bedrock Messages API

Prerequisites​

Before registering a Bedrock endpoint, make sure:

  • Kamiwaza is reachable via HTTPS.
  • Your AWS account has Bedrock access enabled in the region you plan to use.
  • The target model ID or inference profile is enabled in that AWS account.
  • Outbound HTTPS traffic from the Kamiwaza control plane to the Bedrock runtime endpoint is allowed.
  • You have either AWS credentials or a Bedrock credential secret that can invoke the target model.

Quick Start (UI)​

  1. In Kamiwaza, go to Models and click Add external inference endpoint.
  2. Select AWS Bedrock from the Service dropdown.
  3. Enter the endpoint details:
    • Display Name: Friendly name shown in the UI
    • Model ID or Inference Profile ID / ARN: A Bedrock model ID such as meta.llama3-70b-instruct-v1:0 or amazon.nova-premier-v1:0, or an inference profile ARN such as arn:aws:bedrock:us-east-1:############:inference-profile/us.amazon.nova-premier-v1:0
    • AWS Region: The region where the Bedrock model or profile is available
    • Endpoint URL (optional): Override the Bedrock runtime URL if needed
    • Inference Profile ARN (optional): Optional if the model ID field already contains the ARN
    • Credential Secret or URN: A secret URN or inline credential payload
    • Extra Body JSON: Optional model-native default parameters; the UI defaults to {}
  4. Click Save Endpoint.
  5. Deploy the new model from the Models list.

Credentials​

The Credential Secret or URN field supports:

  1. A Kamiwaza secret URN (recommended), such as urn:li:secret:bedrock-creds
  2. Inline JSON credentials, which Kamiwaza will store securely on save
  3. A raw bearer token or Bedrock API key if your Bedrock setup uses token-based authentication

For standard AWS credentials, the secret value should look like:

{
"aws_access_key_id": "AKIA...",
"aws_secret_access_key": "...",
"aws_session_token": "..."
}

Request Shaping and extra_body​

The Extra Body JSON field is optional. In most cases, leave it as {} and send request controls such as max_tokens, temperature, and top_p at call time.

When extra_body is set:

  • Kamiwaza merges it into every Bedrock request as a set of defaults.
  • Per-request OpenAI-style fields win over values from extra_body.
  • For Amazon Nova models, those overrides are applied inside Nova's nested inferenceConfig.
  • For Claude models, Kamiwaza automatically adds the required anthropic_version value and a default max_tokens if you omit them.

Model Family Behavior​

Kamiwaza keeps the public API shape consistent across supported Bedrock model families:

Model familyBedrock request shapeNotes
Llama 3Meta prompt templateOpenAI-style chat messages are translated into the prompt format Bedrock expects.
NovaNova messages-v1 schemaBuffered and streamed responses are normalized back into OpenAI-compatible chat completion payloads. Nova image inputs are accepted through OpenAI-style content blocks and converted into Nova-native image blocks.
ClaudeAnthropic Messages APIOpenAI-style chat messages are translated into Claude's Messages format, with automatic anthropic_version injection and a default max_tokens when omitted.

Multimodal Input​

For Claude and Nova deployments, you can send OpenAI-style multimodal chat payloads to the normal /v1/chat/completions route. Nova image inputs currently work with inline data: URLs and native Nova image blocks; arbitrary external image URLs are not fetched by Kamiwaza for Nova requests.

Example request body:

{
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,<base64-image-bytes>"
}
},
{
"type": "text",
"text": "What is shown in this image?"
}
]
}
],
"max_tokens": 128,
"temperature": 0
}

For Nova, Kamiwaza automatically reshapes that payload into the Bedrock messages-v1 schema and places media before the text prompt inside the user turn, which matches Nova's expected ordering.

Operational notes​

  • Credentials are stored using Kamiwaza’s encrypted secret store. Rotate the AWS keys on the same cadence as other cloud credentials.
  • Region can be supplied explicitly or inferred from a Bedrock runtime endpoint URL or inference profile ARN.
  • Error handling surfaces Bedrock response codes directly in the UI and API responses.
  • For environments that require VPC endpoints or private connectivity, ensure the control plane network has a permitted path to Bedrock before registering the model.

Next steps​

  • Pair the Bedrock deployment with the ReBAC validation checklist to ensure access controls are enforced across your hosted APIs.
  • Contact Kamiwaza Support if you need help enabling specific Bedrock models, inference profiles, or private network connectivity.