Ir al contenido

Conecta Amazon Bedrock a OpenClaw: Guía de configuración

¿Alguna vez has sentido que gestionar llaves API para cada modelo de IA es un trabajo de tiempo completo? Si ya usas AWS, configurar Amazon Bedrock es la mejor forma de evitar ese caos y mantener todo bajo control usando la infraestructura que ya conoces.

OpenClaw puede usar modelos de Amazon Bedrock a través del proveedor de streaming Bedrock Converse de pi‑ai. La autenticación de Bedrock usa la cadena de credenciales por defecto del AWS SDK, no una API key.

  • Provider: amazon-bedrock
  • API: bedrock-converse-stream
  • Auth: Credenciales de AWS (env vars, configuración compartida o rol de instancia)
  • Region: AWS_REGION o AWS_DEFAULT_REGION (por defecto: us-east-1)

Si se detectan credenciales de AWS, OpenClaw puede descubrir automáticamente modelos de Bedrock que soporten streaming y text output. El descubrimiento usa bedrock:ListFoundationModels y se guarda en caché (por defecto: 1 hora).

Las opciones de configuración están bajo models.bedrockDiscovery:

{
models: {
bedrockDiscovery: {
enabled: true,
region: "us-east-1",
providerFilter: ["anthropic", "amazon"],
refreshInterval: 3600,
defaultContextWindow: 32000,
defaultMaxTokens: 4096,
},
},
}

Notas:

  • enabled es true por defecto cuando hay credenciales de AWS presentes.
  • region usa AWS_REGION o AWS_DEFAULT_REGION, y si no, us-east-1.
  • providerFilter coincide con los nombres de proveedores de Bedrock (por ejemplo anthropic) y refreshInterval está en segundos (ponlo en 0 para desactivar la caché).
  • defaultContextWindow (por defecto: 32000) y defaultMaxTokens (por defecto: 4096) se usan para los modelos descubiertos; cámbialos si conoces los límites de tu modelo.
  1. Asegúrate de que las credenciales de AWS estén disponibles en el gateway host:
Ventana de terminal
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"
# Optional:
export AWS_SESSION_TOKEN="..."
export AWS_PROFILE="your-profile"
# Optional (Bedrock API key/bearer token):
export AWS_BEARER_TOKEN_BEDROCK="..."
  1. Añade un proveedor de Bedrock y un modelo a tu configuración (no necesitas apiKey):
{
models: {
providers: {
"amazon-bedrock": {
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
api: "bedrock-converse-stream",
auth: "aws-sdk",
models: [
{
id: "us.anthropic.claude-opus-4-6-v1:0",
name: "Claude Opus 4.6 (Bedrock)",
reasoning: true,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 200000,
maxTokens: 8192,
},
],
},
},
},
agents: {
defaults: {
model: { primary: "amazon-bedrock/us.anthropic.claude-opus-4-6-v1:0" },
},
},
}

Al ejecutar OpenClaw en una instancia de EC2 con un rol de IAM asignado, el AWS SDK usará automáticamente el servicio de metadatos de la instancia (IMDS) para la autenticación. Sin embargo, la detección de credenciales de OpenClaw actualmente solo revisa variables de entorno, no credenciales de IMDS.

Solución temporal: Configura AWS_PROFILE=default para indicar que las credenciales de AWS están disponibles. La autenticación real seguirá usando el rol de la instancia a través de IMDS.

Ventana de terminal
# Add to ~/.bashrc or your shell profile
export AWS_PROFILE=default
export AWS_REGION=us-east-1

Permisos de IAM requeridos para el rol de la instancia EC2:

  • bedrock:InvokeModel y bedrock:InvokeModelWithResponseStream
  • bedrock:ListFoundationModels (para el descubrimiento automático)

También puedes adjuntar la política gestionada AmazonBedrockFullAccess.

Ventana de terminal
# 1. Create IAM role and instance profile
aws iam create-role --role-name EC2-Bedrock-Access \
--assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}]
}'
aws iam attach-role-policy --role-name EC2-Bedrock-Access \
--policy-arn arn:aws:iam::aws:policy/AmazonBedrockFullAccess
aws iam create-instance-profile --instance-profile-name EC2-Bedrock-Access
aws iam add-role-to-instance-profile \
--instance-profile-name EC2-Bedrock-Access \
--role-name EC2-Bedrock-Access
# 2. Attach to your EC2 instance
aws ec2 associate-iam-instance-profile \
--instance-id i-xxxxx \
--iam-instance-profile Name=EC2-Bedrock-Access
# 3. On the EC2 instance, enable discovery
openclaw config set models.bedrockDiscovery.enabled true
openclaw config set models.bedrockDiscovery.region us-east-1
# 4. Set the workaround env vars
echo 'export AWS_PROFILE=default' >> ~/.bashrc
echo 'export AWS_REGION=us-east-1' >> ~/.bashrc
source ~/.bashrc
# 5. Verify models are discovered
openclaw models list
  • El acceso a Bedrock requiere que habilites el acceso al modelo en tu cuenta y región de AWS, además de tener el permiso bedrock:ListFoundationModels para el descubrimiento automático.
  • Si utilizas perfiles de AWS, asegúrate de configurar la variable AWS_PROFILE en el Gateway host para que la autenticación funcione correctamente.
  • OpenClaw busca credenciales en este orden: AWS_BEARER_TOKEN_BEDROCK, luego el par de llaves de acceso, después AWS_PROFILE y finalmente la cadena por defecto del SDK.
  • El soporte para razonamiento (reasoning) varía según el modelo; revisa las capacidades en la tarjeta del modelo de Bedrock o considera usar un proxy compatible con OpenAI si prefieres ese flujo.

Puedes aplicar Amazon Bedrock Guardrails a todas las llamadas de modelos de Bedrock añadiendo un objeto guardrail a la configuración del plugin amazon-bedrock. Los Guardrails permiten aplicar filtrado de contenido, denegación de temas, filtros de palabras e información sensible.

{
plugins: {
entries: {
"amazon-bedrock": {
config: {
guardrail: {
guardrailIdentifier: "abc123", // guardrail ID or full ARN
guardrailVersion: "1", // version number or "DRAFT"
streamProcessingMode: "sync", // optional: "sync" or "async"
trace: "enabled", // optional: "enabled", "disabled", or "enabled_full"
},
},
},
},
},
}
  • guardrailIdentifier (requerido) acepta un ID de guardrail (ej. abc123) o un ARN completo (ej. arn:aws:bedrock:us-east-1:123456789012:guardrail/abc123).
  • guardrailVersion (requerido) especifica la versión publicada que quieres usar, o "DRAFT" para el borrador de trabajo.
  • streamProcessingMode (opcional) controla si la evaluación del guardrail es síncrona ("sync") o asíncrona ("async") durante el streaming.
  • trace (opcional) activa la salida de traza en la respuesta de la API; usa "enabled" para depuración o "disabled" para entornos de producción.

El principal de IAM que use el Gateway debe tener el permiso bedrock:ApplyGuardrail además de los permisos de invocación estándar.

AI Setup Assistant

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.