Busca en todas las páginas de la documentación
Amazon Bedrock coloca a Claude detrás de su cuenta de AWS existente: IAM controla quién puede llamarlo, el acceso al modelo se solicita por modelo por región, y algunos modelos necesitan un perfil de inferencia entre regiones para manejar la capacidad y la latencia.
Bedrock no es un reemplazo directo de la API de Anthropic, es un modelo de autenticación y aprovisionamiento diferente superpuesto a los mismos modelos subyacentes de Claude.
Antes de que cualquier código de aplicación pueda llamar a Claude en Bedrock, deben existir tres cosas: una entidad principal de IAM con permiso para invocar Bedrock, una concesión explícita de acceso al modelo específico que desea y, para algunos modelos, un perfil de inferencia entre regiones en lugar de una ID de modelo simple de una sola región.
Omitir cualquiera de esos tres pasos produce un error de permiso o de no encontrado que parece un error de código, pero en realidad es una brecha de aprovisionamiento.
Esta página describe la configuración de IAM, la solicitud de acceso al modelo y la elección entre una ID de modelo simple y un perfil de inferencia entre regiones, luego muestra la forma de solicitud que su código de aplicación realmente llama.
Tarjeta de receta de referencia rápida: lista para copiar y pegar.
from anthropic import AnthropicBedrock
client = AnthropicBedrock(aws_region="us-east-1")
response = client.messages.create(
model="anthropic.claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Summarize this ticket in one sentence."}],
)
print(response.content[0].text)Cuándo usarlo:
import os
from anthropic import AnthropicBedrock
import anthropic
# aws_region es obligatorio; no hay un valor predeterminado de región para Bedrock.
client = AnthropicBedrock(aws_region=os.environ.get("AWS_REGION", "us-east-1"))
def summarize_ticket(ticket_text: str) -> str:
"""Llama a Claude en Bedrock y devuelve un resumen de una oración.
Lo que esto demuestra:
AnthropicBedrock resuelve las credenciales de AWS a través de la cadena estándar (variables de entorno, archivo de credenciales compartidas o un rol de IAM asumido); no hay una clave de API de Anthropic separada involucrada.anthropic. en la ID del modelo es obligatorio en Bedrock; la ID claude-sonnet-5 de la API directa devuelve un 404 aquí.PermissionDeniedError y NotFoundError por separado convierte los dos errores más comunes de la primera implementación en un mensaje procesable en lugar de un seguimiento de pila.bedrock:InvokeModel (y bedrock:InvokeModelWithResponseStream para la transmisión) con un alcance a los ARN de modelo específicos que pretende llamar.Una política de IAM mínima para invocar a Claude en Bedrock limita la acción a los recursos de modelo específicos en lugar de otorgar acceso general a Bedrock:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-5",
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-opus-4-8"
]
Resource a los ARN de modelo exactos, en lugar de "*" significa que agregar un nuevo modelo más tarde requiere una actualización de política deliberada en lugar de estar ya permitido silenciosamente.| Formulario | Ejemplo | Cuándo usar |
|---|---|---|
| ID de modelo simple | anthropic.claude-sonnet-5 | Elección predeterminada; funciona para la mayoría de los modelos en la mayoría de las regiones. |
| Perfil de inferencia entre regiones | us.anthropic.claude-sonnet-5 | Requerido para algunos modelos; también útil cuando una sola región está alcanzando los límites de capacidad durante la demanda máxima. |
us., por ejemplo) indica el conjunto de regiones a través de las cuales se permite enrutar el perfil; no significa que la solicitud siempre salga de su región principal, solo que puede hacerlo durante una alta demanda.ValidationException en el momento de la solicitud, no una alternativa silenciosa.from anthropic import AnthropicBedrock
# Prefiera la configuración de región impulsada por el entorno sobre una cadena codificada,
# para que el mismo código se implemente limpiamente en una segunda región más tarde.
client = AnthropicBedrock(aws_region="us-east-1")
# La transmisión funciona de forma idéntica a la API directa; solo la clase de cliente difiere.
with client.messages.stream(
model="anthropic.claude-sonnet-5",
max_tokens=512,
AnthropicBedrock expone los mismos métodos messages.create y messages.stream que el cliente de la API directa; el código escrito para la API directa solo necesita un cambio en la construcción del cliente para ejecutarse en Bedrock.AnthropicBedrock utiliza la ruta InvokeModel de bedrock-runtime; consulte la documentación actual del SDK para el cliente más nuevo basado en Mantle si necesita la última superficie de la API de Mensajes en Bedrock.| Parámetro | Tipo | Descripción |
|---|---|---|
aws_region | str | Argumento de constructor requerido. Sin valor predeterminado: Bedrock no tiene una alternativa de región implícita. |
model | str | ID de modelo de Bedrock, ya sea anthropic.<model> o un perfil de inferencia entre regiones como us.anthropic.<model>. |
max_tokens | int | Mismo significado que la API directa: el límite de tokens de salida para esta solicitud. |
anthropic. en la ID del modelo. Una cadena claude-sonnet-5 simple que funciona en la API directa devuelve un 404 en Bedrock. Solución: siempre prefije las ID de modelo de Bedrock con anthropic..bedrock:InvokeModel, pero la cuenta nunca solicitó acceso a ese modelo específico en la consola de Bedrock. Solución: verifique la página de acceso al modelo de la consola de Bedrock para ese modelo y región antes de asumir que es un problema de IAM.us-east-1, pero AnthropicBedrock(aws_region="us-west-2") se usa en tiempo de ejecución. Solución: mantenga los ARN de recursos de la política de IAM y la aws_region del cliente sincronizados, o limite la política a varias regiones deliberadamente.anthropic. simple con un error de validación. Solución: verifique la consola de Bedrock para ver si el modelo requiere una ID de perfil de inferencia antes de configurar la integración.| Alternativa | Usar cuándo | No usar cuándo |
|---|---|---|
| API directa de Anthropic | Desea la ruta más rápida a nuevos modelos y características, sin dependencia de AWS. | Su organización requiere que el tráfico permanezca dentro de los límites de IAM y red administrados por AWS. |
| Google Cloud Vertex AI | Su organización está estandarizada en GCP en lugar de AWS. | No tiene presencia en GCP y estaría incorporando un nuevo proveedor de la nube solo por esto. |
| Una puerta de enlace autohospedada frente a Bedrock | Desea agregar almacenamiento en caché, limitación de velocidad centralizada o volver a otro proveedor sin tocar el código de la aplicación. | Tiene una única carga de trabajo simple donde la infraestructura adicional no vale el costo operativo. |
No. La autenticación se basa completamente en IAM: el SDK firma las solicitudes con sus credenciales de AWS, y no hay una clave de API emitida por Anthropic separada involucrada.
Las ID de modelo de Bedrock requieren el prefijo anthropic.. Una ID de modelo simple copiada del código de la API directa, como claude-sonnet-5, no es una ID de modelo de Bedrock válida por sí misma.
bedrock:InvokeModel.Algunos modelos lo requieren directamente, y también es útil para modelos bajo una gran demanda regional, ya que el perfil puede enrutar una solicitud a través de múltiples regiones dentro de una geografía para una capacidad adicional.
Consulte la página de acceso al modelo en la consola de Bedrock para su cuenta y región de destino. Una concesión faltante allí causa un error de permiso en el momento de la solicitud incluso con una política de IAM correctamente definida.
En su mayor parte, sí. Ambos clientes exponen los mismos métodos messages.create y messages.stream; las diferencias son la construcción del cliente (clave de API vs. credenciales de AWS más región) y el formato de la ID del modelo.
La solicitud falla con un error de validación en el momento de la llamada en lugar de recurrir silenciosamente a un modelo simple; verifique la consola de Bedrock para ver si su modelo de destino requiere una ID de perfil antes de la implementación.
Sí. client.messages.stream(...) en AnthropicBedrock se comporta igual que en el cliente de la API directa, incluido el iterador de conveniencia text_stream.
Sí. Si la política de IAM limita los ARN del modelo a una región, pero el cliente se construye con una aws_region diferente, las solicitudes fallan aunque la política parezca correcta en una lectura rápida.
Limite a ARN de modelo específicos. Un comodín otorga acceso a cualquier modelo al que su cuenta pueda obtener acceso más tarde, lo cual es más amplio de lo que la mayoría de los equipos pretenden y más difícil de auditar.
No. El acceso al modelo es una concesión de permiso, no una compra; la facturación solo ocurre cuando realmente invoca el modelo.
Para mantener el tráfico de Claude dentro de la gobernanza de IAM y red de AWS existente, y para que el gasto se contabilice en un acuerdo de facturación o descuento de AWS existente en lugar de una nueva relación con el proveedor.
Versiones de pila: Escrito para la línea de modelos de Claude actual a partir de ~junio de 2026: Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5 (el predeterminado) y Claude Haiku 4.5, y el SDK oficial de Python de
anthropic(última versión 0.x). Los nombres de los modelos, los precios y las versiones del SDK cambian rápidamente; verifique los detalles actuales en platform.claude.com/docs antes de confiar en ellos.