> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Recomendações de segurança

> Aplique o modelo de responsabilidade compartilhada da Lerian — hardening de infraestrutura, segmentação de rede, TLS e padrões Zero Trust.

Antes de partir para a instalação e deployment, vamos alinhar algo crítico: segurança.

Na Lerian, operamos sob um **Modelo de Responsabilidade Compartilhada de Segurança** — **nós protegemos a camada de aplicação (Midaz e todos os plugins Lerian)**, e **você é responsável por proteger a infraestrutura onde eles são executados**. Este guia foi criado para ajudar sua equipe a estabelecer e manter uma postura de segurança sólida em todo o ecossistema Lerian, do Midaz a cada plugin integrado.

As recomendações a seguir não são exaustivas. Em vez disso, elas são destinadas a complementar suas práticas de segurança existentes — seja rodando na nuvem ou on-prem.

## Segurança de infraestrutura e rede

***

O Midaz e todos os plugins Lerian são soluções cloud-native projetadas para rodar com segurança em ambientes containerizados e distribuídos. Para aprimorar a segurança da sua infraestrutura e rede:

* Estabeleça um **processo de gerenciamento de patches** para garantir que o SO e os serviços sejam atualizados regularmente com patches de segurança.
* Aplique procedimentos de **hardening** nas imagens do sistema operacional antes do deployment.
* Aproveite as **imagens Docker do Midaz e dos plugins**, que seguem o **princípio do menor privilégio** — e reforce isso no nível do cluster usando controles apropriados.
* Se você está usando **Kubernetes**, aplique baselines de segurança usando ferramentas de **policy-as-code** como **Kyverno**, **OPA Gatekeeper** ou similares.
* Execute **varreduras de vulnerabilidade rotineiras** em todas as camadas da sua infraestrutura, incluindo aquelas que hospedam plugins.
* Use **segmentação de rede** para restringir o acesso dos componentes do Midaz e plugins apenas aos sistemas que precisam.
* Configure **firewalls** para gerenciar o fluxo de tráfego e prevenir acessos não autorizados.
* Quando possível, implemente **Sistemas de Detecção de Intrusão (IDS)** e **Sistemas de Prevenção de Intrusão (IPS)** para analisar o comportamento da rede e bloquear anomalias.
* Adote uma **Arquitetura Zero Trust** ao lidar com sistemas ou fluxos de dados sensíveis.
* Aplique **TLS 1.2 ou superior** para todas as comunicações entre serviços do Midaz e plugins.

## Configurações gerais de segurança

***

Proteger segredos, armazenamento e dados é vital em todos os componentes Lerian, incluindo o Midaz e seus plugins. Dito isso, considere:

* Usar soluções confiáveis como **AWS Secrets Manager**, **Azure Key Vault**, **Google Secret Manager** ou **HashiCorp Vault** para armazenar segredos e dados de configuração de forma segura.
* **Rotacionar credenciais e segredos** regularmente, e seguir o princípio do menor privilégio ao conceder acesso.
* Habilitar **logs de auditoria** e garantir que **backups automatizados** estejam configurados para todos os bancos de dados usados pelo Midaz e plugins.
* Aplicar **criptografia em repouso** a todos os dados persistentes — incluindo aqueles manipulados por plugins como CRM ou Access Manager.
* Aplicar **restrições de acesso** a dados sensíveis, e usar **tokenização**, **criptografia** ou **anonimização** quando apropriado.
* Manter o Midaz e todos os plugins Lerian atualizados com as **últimas versões**, incluindo patches e melhorias de segurança.

## Identity & Access Management (IAM)

***

Uma abordagem de IAM unificada e segura deve abranger não apenas o ambiente onde o Midaz e os plugins são implantados, mas também os próprios serviços. Portanto:

* Implemente um processo centralizado de IAM para gerenciar o acesso à infraestrutura que hospeda os produtos Lerian.
* Aplique **multi-factor authentication (MFA)** em todas as contas de usuário e administrador.
* Monitore e audite periodicamente o acesso concedido a **service accounts** — especialmente aquelas usadas por plugins.
* Defina modelos de controle de acesso que sigam o **princípio do menor privilégio**, usando **RBAC**, **ABAC** ou estratégias personalizadas.
* Utilize **credenciais temporárias** e acesso com tempo limitado para operações de alta sensibilidade.
* Realize **revisões regulares** de todos os privilégios de acesso, incluindo para Midaz, CRM, Access Manager, Reporter e outros produtos/plugins.

## Monitoramento e resposta a incidentes

***

Para construir observabilidade e prontidão para incidentes na sua estratégia de deployment do Midaz e plugins:

* Implante ferramentas de monitoramento de segurança para rastrear o comportamento em todos os serviços Lerian, incluindo atividade de plugins.
* Habilite logs e traces em toda a sua infraestrutura e em cada componente do Midaz e seus plugins.
* **Integre logs** dos serviços do Midaz e plugins com ferramentas de detecção de fraude ou monitoramento de anomalias para aprimorar a proteção.
* Considere centralizar logs através de uma **plataforma SIEM** para permitir uma detecção de ameaças mais eficiente.
* Mantenha um **plano de resposta a incidentes** atualizado, incluindo playbooks específicos para serviços como Access Manager ou Fees Engine.

## Camadas adicionais de proteção

***

Para ambientes críticos em produção ou de alta conformidade, recomendamos fortemente a implementação de camadas adicionais de proteção:

* Aplique procedimentos de **hardening** de SO e serviços em toda a sua stack.
* Mantenha **ciclos regulares de patches** para todos os ambientes de execução, incluindo serviços e dependências de terceiros.
* Conduza **testes de penetração manuais** para validar a eficácia das suas defesas, incluindo aquelas ao redor de plugins e integrações.
* Implante **Web Application Firewalls (WAFs)** para proteger APIs de plugins e endpoints do Midaz contra ataques de Camada 7.
* Use **serviços Anti-DDoS** e **ferramentas de mitigação de bots** para bloquear ataques automatizados ou em larga escala em componentes expostos.

<Tip>
  Combine proteções no nível de infraestrutura com as validações de segurança nativas do **Midaz e seus plugins** para criar um ambiente financeiro coeso, escalável e em conformidade. Na Lerian, segurança não é uma reflexão tardia — faz parte do design.
</Tip>

## Configurações de segurança do Midaz

***

A segurança começa com a configuração. Seja rodando o Midaz localmente ou implantando em um cluster gerenciado, é essencial revisar e ajustar todas as credenciais e certificados antes de entrar em produção.

### Credenciais e segredos

Cada componente do Midaz vem com seu próprio arquivo `.env`, permitindo configuração personalizada por módulo. Isso dá flexibilidade, mas também uma responsabilidade compartilhada.

<Danger>
  Nunca faça deploy do Midaz usando credenciais padrão. Sempre atualize os valores secretos no seu ambiente antes de iniciar.
</Danger>

Os seguintes arquivos devem ser revisados e atualizados para garantir que informações sensíveis estejam protegidas:

| **Midaz Repo**                 | **Midaz Helm**                                      |
| :----------------------------- | :-------------------------------------------------- |
| `/components/infra/.env`       | `/charts/midaz/values.yaml`                         |
| `/components/mdz/.env`         | `/charts/midaz/templates/onboarding/secrets.yaml`   |
| `/components/onboarding/.env`  | `/charts/midaz/templates/transactions/secrets.yaml` |
| `/components/transaction/.env` | `/charts/midaz/templates/console/secrets.yaml`      |

Certifique-se de que segredos como credenciais de banco de dados, chaves de criptografia e tokens de API estejam armazenados de forma segura e rotacionados regularmente.

### Configuração de certificado TLS

Ao expor serviços do Midaz via ingress controllers, é essencial usar certificados TLS válidos para proteger a comunicação entre serviços e clientes externos.

O Midaz permite que o ingress seja habilitado para os seguintes componentes:

* **Transaction**
* **Onboarding**
* **Console**

Para configurar um certificado TLS personalizado:

<Steps>
  <Step>
    **Gere** um certificado válido usando um provedor confiável (ex.: Let's Encrypt, GoDaddy).
  </Step>

  <Step>
    **Armazene** a cadeia completa do certificado como um secret do Kubernetes ou em um vault externo (ex.: AWS Secrets Manager).
  </Step>

  <Step>
    **Referencie** o secret no seu arquivo `values.yaml`:

    <CodeGroup>
      ```bash YAML theme={null}
      ingress:
        ///class, host, annotations, etc
        tls:
          - secretName: certificate-tls
            hosts:
              - midaz.example.com
      ```
    </CodeGroup>
  </Step>
</Steps>

<Tip>
  Sempre aplique TLS 1.2 ou superior. Para clusters internos, considere emitir certificados de curta duração automaticamente via service mesh ou cert manager.
</Tip>
