7.4 KiB
🛡️ OCI CIS AI Agent
AI Agent - Infrastructure & Security Engineer
Plataforma web Dockerizada para auditoria de segurança OCI baseada no CIS Foundations Benchmark 3.0, com interface de chat AI Agent, geração de relatórios HTML/JSON, gerenciamento de configurações OCI, integração com bancos vetoriais e controle de acesso RBAC com MFA.
📋 Funcionalidades
Interface Web (4 abas principais + 3 admin)
| Aba | Descrição |
|---|---|
| 💬 Chat Agent | Interface de chat com AI Agent para consultas sobre CIS, status do sistema e comandos |
| 📊 Report | Visualização de relatórios HTML de compliance com iframe integrado |
| 📁 Downloads | Lista de relatórios com filtro, download em JSON/HTML |
| ☁️ Config OCI | Gerenciamento de credenciais OCI (tenancy, OCID, chaves PEM, região) |
| 🔗 Vector DB | Configuração de conexão com bancos vetoriais (ChromaDB, Pinecone, Weaviate, PGVector, Qdrant, Milvus, Oracle 23ai) |
| 👥 Usuários | (admin) Gerenciamento de usuários, criação, roles, ativação/desativação |
| 🔐 MFA | Configuração de autenticação TOTP (Google Authenticator / Authy) |
| 📋 Audit Log | (admin) Log de auditoria de todas as ações do sistema |
Segurança
- Autenticação JWT com expiração configurável
- MFA/TOTP compatível com Google Authenticator e Authy
- 3 roles:
admin,user,viewer - Audit log completo de todas as ações
- Senhas com PBKDF2-SHA256 (100k iterações + salt)
Roles e Permissões
| Role | Permissões |
|---|---|
admin |
Acesso total: usuários, configs, relatórios, MFA, audit, instalar OCI CLI |
user |
Criar configs OCI/VectorDB, executar relatórios, usar chat |
viewer |
Visualizar relatórios, downloads, usar chat (somente leitura) |
🚀 Quick Start
Pré-requisitos
- Docker e Docker Compose instalados
1. Clone e configure
git clone <seu-repo>
cd oci-agent
# Crie o arquivo de ambiente
cp .env.example .env
# Edite o .env e defina um APP_SECRET forte
2. Suba os containers
docker compose up -d --build
3. Acesse
Abra o navegador em http://localhost:8080
Credenciais padrão:
- Usuário:
admin - Senha:
admin123
⚠️ Altere a senha padrão imediatamente após o primeiro login!
📐 Arquitetura
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Browser │────▶│ Nginx │────▶│ FastAPI │
│ (Frontend) │ :80 │ (Frontend) │ │ (Backend) │
│ SPA HTML │ │ Reverse │ │ Auth/API │
└──────────────┘ │ Proxy /api │ │ SQLite DB │
└──────────────┘ └──────┬───────┘
│
┌───────▼───────┐
│ /data vol │
│ ├─ agent.db │
│ ├─ oci_configs│
│ ├─ reports │
└───────────────┘
Containers
| Container | Imagem | Porta | Função |
|---|---|---|---|
oci-agent-frontend |
nginx:alpine |
8080→80 | Serve o SPA + reverse proxy para API |
oci-agent-backend |
python:3.12-slim |
8000 | FastAPI com auth, RBAC, lógica de negócio |
Volume persistente
agent-data→/datano backend (SQLite, configs OCI, relatórios)
🔌 Integração com MCP Server
O sistema foi projetado para ser conectado ao MCP Server FastMCP criado anteriormente. Para integrar:
1. Monte o MCP server no container
No docker-compose.yml, adicione ao serviço backend:
volumes:
- agent-data:/data
- ./mcp_server/server.py:/app/mcp_server.py:ro # MCP server
2. Substitua o runner stub
Edite backend/cis_runner.py para importar e usar as tools do MCP server:
from mcp_server import connect, collect_all_data, run_cis_checks, export_report_json
3. Ou conecte via SSE/stdio
O MCP server pode ser exposto como serviço separado e o backend se conecta via protocolo MCP padrão.
🗄️ Integração Vector DB
A aba Vector DB permite configurar conexão com:
| Banco | Porta Padrão | Uso |
|---|---|---|
| ChromaDB | 8000 | Embeddings locais |
| Pinecone | 443 | SaaS vetorial |
| Weaviate | 8080 | Vetorial + busca híbrida |
| PGVector | 5432 | PostgreSQL com extensão vetorial |
| Qdrant | 6333 | Vetorial open-source |
| Milvus | 19530 | Vetorial distribuído |
| Oracle 23ai | 1521 | Oracle Database com AI Vector Search |
Use para armazenar e consultar findings de compliance, embeddings de documentação CIS, e contexto para o AI Agent.
📊 Relatórios CIS
O sistema gera relatórios compatíveis com o CIS OCI Foundations Benchmark 3.0 contendo:
- 54 controles em 8 domínios
- Relatório HTML estilizado (similar ao Oracle Cloud Security Assessment)
- Relatório JSON para integração programática
- Resumo por domínio com contagem de PASS/FAIL
- Detalhamento de cada controle
🔧 Configuração Avançada
Variáveis de Ambiente
| Variável | Padrão | Descrição |
|---|---|---|
APP_SECRET |
(gerado) | Chave secreta para JWT |
JWT_EXPIRY_HOURS |
12 | Expiração do token JWT |
PORT |
8080 | Porta do frontend |
DATA_DIR |
/data | Diretório de dados persistentes |
Instalar OCI CLI no container
Na interface como admin, vá em Config OCI → Instalar OCI CLI no Container.
Ou manualmente:
docker exec -it oci-agent-backend pip install oci-cli
Backup dos dados
docker cp oci-agent-backend:/data ./backup-data
📝 API Endpoints
| Método | Endpoint | Auth | Descrição |
|---|---|---|---|
| POST | /api/auth/login |
- | Login (retorna JWT) |
| POST | /api/auth/logout |
✅ | Logout |
| POST | /api/auth/register |
admin | Criar usuário |
| POST | /api/auth/change-password |
✅ | Alterar senha |
| POST | /api/mfa/setup |
✅ | Gerar secret MFA |
| POST | /api/mfa/verify |
✅ | Ativar MFA |
| GET | /api/users |
admin | Listar usuários |
| GET | /api/users/me |
✅ | Dados do usuário atual |
| PUT | /api/users/{id} |
admin | Atualizar usuário |
| POST | /api/oci/config |
user+ | Salvar config OCI (multipart) |
| GET | /api/oci/configs |
✅ | Listar configs |
| POST | /api/oci/test/{id} |
user+ | Testar conexão OCI |
| POST | /api/reports/run |
user+ | Executar relatório CIS |
| GET | /api/reports |
✅ | Listar relatórios |
| GET | /api/reports/{id}/html |
✅ | Relatório HTML |
| GET | /api/reports/{id}/download |
✅ | Download relatório |
| POST | /api/vectordb/config |
user+ | Salvar config Vector DB |
| GET | /api/vectordb/configs |
✅ | Listar configs VDB |
| POST | /api/chat |
✅ | Chat com AI Agent |
| GET | /api/audit-log |
admin | Log de auditoria |
| GET | /api/health |
- | Health check |
📄 Licença
Projeto interno. Todos os direitos reservados.