Skip to main content
O Gateway de Integração da Prefeitura do Rio expõe aplicações e serviços municipais no Google Kubernetes Engine (GKE) com roteamento inteligente, proteção de segurança e gerenciamento automático de certificados TLS, tudo mantido pela IplanRio.

Arquitetura

Internet


Cloud Armor (WAF + DDoS)


IP Global + DNS (*.dados.rio)


Istio Gateway (GKE)

    ├─► Serviço A (RMI, GO, Busca...)
    ├─► Serviço B (eAi Agent, Catálogo...)
    └─► Serviço N (Heimdall, Surkai...)

Componentes

Istio Service Mesh

O Istio atua como malha de serviço dentro do cluster GKE. Responsabilidades:
  • Roteamento de tráfego: distribui requisições aos microsserviços conforme regras de VirtualService
  • mTLS interno: comunicação criptografada entre serviços dentro do cluster
  • Observabilidade: métricas, logs e rastreamento distribuído de cada hop interno
  • Circuit breaking: proteção automática contra falhas em cascata entre serviços

Google Cloud Armor

Camada de segurança WAF (Web Application Firewall) na borda:
  • Proteção contra SQL Injection e XSS
  • Bloqueio de IPs maliciosos e ranges suspeitos
  • Rate limiting configurável por secretaria e por cliente
  • Regras personalizadas para padrões de tráfego municipal

Certificados TLS Gerenciados

O GKE gerencia certificados TLS automaticamente via Google-managed certificates:
  • Renovação automática antes do vencimento
  • Cobertura de todos os subdomínios *.dados.rio e *.app.dados.rio
  • Zero manutenção manual de certificados
  • HTTPS obrigatório — HTTP é redirecionado automaticamente

DNS e Endereços IP Globais

Cada serviço municipal recebe um subdomínio dedicado:
AmbientePadrão de URL
Produçãohttps://services.app.dados.rio/<servico>/
Staginghttps://services.staging.app.dados.rio/<servico>/

Roteamento

O Istio VirtualService define as regras de roteamento. Exemplo de configuração para um serviço municipal:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: rmi-api
  namespace: istio-system
spec:
  hosts:
    - "services.app.dados.rio"
  http:
    - match:
        - uri:
            prefix: "/rmi/"
      route:
        - destination:
            host: app-rmi.rmi.svc.cluster.local
            port:
              number: 8080
      timeout: 30s
      retries:
        attempts: 3
        perTryTimeout: 10s

Autenticação no Gateway

O gateway integra com o Identidade Carioca (Keycloak) para validar tokens JWT em todas as requisições:
  1. Cliente envia requisição com Authorization: Bearer <jwt>
  2. Istio intercepta e valida o token contra o Keycloak
  3. Claims do token são propagadas como headers internos para o serviço de destino
  4. Serviço processa a requisição com o contexto de identidade já validado
Veja Autenticação e Segurança para detalhes sobre obtenção e uso de tokens.

Monitoramento

O gateway expõe métricas para o Prometheus e logs estruturados para o Cloud Logging:
  • Latência por serviço: percentis p50, p95, p99
  • Taxa de erros: 4xx e 5xx por endpoint
  • Throughput: requisições por segundo por secretaria
  • Saúde dos serviços: health checks automáticos via Istio
Para alertas de falha nos serviços, a IplanRio utiliza notificações via Discord no canal #alertas-infra.