O OpenClaw (anteriormente conhecido como Clawdbot/Moltbot) é um agente de IA agnóstico a modelos que roda via Docker e executa ações reais no sistema operacional. Neste post, vamos explorar como rodar o OpenClaw em uma arquitetura segura na AWS, usando Amazon Bedrock, IAM Roles e EC2 Graviton com práticas de FinOps e segurança.
O que é o OpenClaw?
O OpenClaw é um agente de IA que vai além da geração de texto: ele pode executar comandos no sistema, manipular arquivos, interagir com APIs e automatizar fluxos complexos. Diferente de assistentes convencionais, o OpenClaw é agnóstico a modelos — você pode conectá-lo a OpenAI, Anthropic Claude, AWS Bedrock ou qualquer outro provedor de LLM via API.
Rodando em um container Docker, o agente tem acesso controlado ao sistema host e pode executar desde tarefas simples (como enviar e-mails) até operações mais complexas, como orquestrar deploys, consultar métricas de infraestrutura e responder incidentes de forma autônoma.
Arquitetura Segura: Local vs. AWS
Rodar um agente de IA com acesso ao sistema operacional localmente pode parecer prático, mas traz riscos significativos:
- Exposição de credenciais: Chaves de API armazenadas em variáveis de ambiente ou arquivos .env no seu laptop.
- Falta de auditoria: Sem logs centralizados, rastreabilidade de ações é limitada.
- Escalabilidade zero: O agente fica disponível apenas quando sua máquina está ligada.
- Risco de vazamento: Em caso de comprometimento da máquina, o agente e suas credenciais ficam expostos.
Em contraste, rodar o OpenClaw na AWS traz múltiplas camadas de segurança e governança:
- IAM Roles eliminam a necessidade de chaves de API fixas no servidor.
- VPC isolada com Security Groups restringe o tráfego de rede.
- CloudWatch Logs centraliza auditoria e rastreabilidade de todas as ações do agente.
- EC2 Graviton reduz custos operacionais (~40% mais barato que instâncias x86 equivalentes).
- Secrets Manager/Parameter Store para gerenciar credenciais de forma segura.
Segurança em Camadas
Na AWS, você implementa o princípio de Zero Trust: o agente só acessa o que precisa via IAM Roles granulares, e todas as ações são auditáveis via CloudTrail e CloudWatch.
Docker Compose Otimizado para EC2 Graviton
Abaixo, um exemplo de docker-compose.yml otimizado para rodar o OpenClaw em uma instância EC2 Graviton (ARM64), com configuração de rede, volumes persistentes e integração com Amazon Bedrock via IAM.
version: '3.8'
services:
openclaw:
image: openclaw/openclaw:latest-arm64
container_name: openclaw-agent
restart: unless-stopped
platform: linux/arm64
environment:
# Configuração do modelo (Amazon Bedrock)
- LLM_PROVIDER=bedrock
- BEDROCK_MODEL_ID=anthropic.claude-3-5-sonnet-20241022-v2:0
- AWS_REGION=us-east-1
# Sem chaves de API! IAM Role da instância EC2 fornece credenciais
- LOG_LEVEL=info
- AGENT_NAME=openclaw-cto
volumes:
- ./data:/app/data
- ./logs:/app/logs
# Socket do Docker para permitir automação de containers (opcional)
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- openclaw-net
logging:
driver: awslogs
options:
awslogs-region: us-east-1
awslogs-group: /aws/ec2/openclaw
awslogs-stream: openclaw-agent
# Limites de recursos para evitar consumo excessivo
deploy:
resources:
limits:
cpus: '2'
memory: 4G
reservations:
cpus: '1'
memory: 2G
networks:
openclaw-net:
driver: bridge
Pontos-chave deste docker-compose:
- platform: linux/arm64 — otimizado para Graviton (até 40% mais econômico).
- LLM_PROVIDER=bedrock — usa Amazon Bedrock em vez de APIs externas.
- Sem chaves hardcoded — IAM Role da EC2 fornece credenciais automaticamente.
- awslogs driver — logs enviados diretamente para CloudWatch.
- Limites de CPU/Memória — previne consumo descontrolado (FinOps).
Configurando o "Cérebro" com Amazon Bedrock e IAM Roles
Uma das melhores práticas de FinOps e Segurança é eliminar chaves de API fixas no servidor. No AWS, isso é feito via IAM Roles associados à instância EC2.
Passo 1: Criar IAM Role para EC2
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0"
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
}
Passo 2: Associar Role à Instância EC2
Na console da AWS ou via CLI:
aws ec2 associate-iam-instance-profile \
--instance-id i-1234567890abcdef0 \
--iam-instance-profile Name=OpenClawEC2Role
Passo 3: O OpenClaw Detecta Credenciais Automaticamente
Com a IAM Role associada, o SDK da AWS (boto3, AWS CLI) detecta as credenciais automaticamente via Instance Metadata Service (IMDS). Nenhuma chave precisa ser armazenada no container.
FinOps: Custos Previsíveis
Com IAM Roles e Graviton, você reduz custos operacionais em até 40% comparado a instâncias x86, e elimina riscos de vazamento de chaves que podem gerar custos inesperados (ex.: uso indevido de APIs pagas).
Caso de Uso Prático: Monitoramento de Faturamento AWS com Alerta no WhatsApp
Um caso de uso comum para CTOs: monitorar o faturamento da AWS em tempo real e receber alertas formatados no WhatsApp quando limites são ultrapassados.
Fluxo da Solução
- O OpenClaw roda em uma EC2 Graviton com IAM Role que permite acesso a CloudWatch e Cost Explorer.
- A cada hora, o agente consulta o faturamento acumulado do mês via AWS Cost Explorer API.
- Se o valor ultrapassar um threshold (ex.: 80% do budget mensal), o agente:
- Formata uma mensagem legível com detalhamento de custos por serviço.
- Envia a mensagem via API do WhatsApp Business para o número do CTO.
- O agente também pode sugerir otimizações (ex.: "5 instâncias EC2 rodando idle, economia potencial: $200/mês").
Exemplo de Mensagem no WhatsApp
🚨 Alerta de Faturamento AWS - Fevereiro 2026
Orçamento mensal: $10.000
Gasto acumulado: $8.200 (82%)
Top 3 serviços:
1. EC2: $3.500 (43%)
2. RDS: $2.100 (26%)
3. S3: $1.200 (15%)
⚠️ Ações sugeridas:
- 5 instâncias EC2 idle (economia: $180/mês)
- Snapshot RDS desatualizado (economia: $50/mês)
Ver detalhes: https://console.aws.amazon.com/billing
Código de Integração (Pseudocódigo)
import boto3
from datetime import datetime
# Cliente Cost Explorer (credenciais via IAM Role)
ce = boto3.client('ce', region_name='us-east-1')
# Consultar faturamento do mês atual
response = ce.get_cost_and_usage(
TimePeriod={
'Start': '2026-02-01',
'End': datetime.now().strftime('%Y-%m-%d')
},
Granularity='MONTHLY',
Metrics=['UnblendedCost'],
GroupBy=[{'Type': 'SERVICE', 'Key': 'SERVICE'}]
)
# Processar dados e enviar via WhatsApp se threshold ultrapassado
total_cost = float(response['ResultsByTime'][0]['Total']['UnblendedCost']['Amount'])
if total_cost > 8000:
send_whatsapp_alert(format_cost_report(response))
Conclusão
O OpenClaw rodando em AWS com Amazon Bedrock, IAM Roles e EC2 Graviton representa uma arquitetura moderna de agentes de IA: segura, escalável, auditável e otimizada para custos.
Ao eliminar chaves de API fixas, centralizar logs e usar instâncias ARM64, você implementa FinOps desde o design e reduz significativamente a superfície de ataque. O caso de uso de monitoramento de faturamento é apenas o começo — agentes desse tipo podem orquestrar deploys, responder incidentes e até executar remediações automáticas.
Se você está considerando implementar agentes de IA na sua infraestrutura, a arquitetura descrita aqui é um excelente ponto de partida para garantir segurança, governança e eficiência operacional.