Por que revisar acessos da loja Magento a cada trimestre
Acesso esquecido não aparece em relatório. Ex-funcionário, agência antiga, integração de um ERP que ficou só no teste, chave SSH de um freelancer que terminou o trabalho: tudo isso continua abrindo a porta até alguém fechar. No guia de resposta a incidentes da Adobe, auditar o acesso dos usuários do admin está entre os primeiros passos, com a orientação de remover contas antigas, sem uso ou suspeitas. A revisão trimestral faz isso antes do incidente.
O princípio por trás é o de privilégio mínimo: cada pessoa ou sistema só com o acesso de que precisa, nada liberado por padrão. A OWASP trata a violação desse princípio na categoria de falhas de controle de acesso, a primeira do Top 10 de 2025. Trimestre é a cadência que eu uso; saída de pessoa ou fim de contrato com fornecedor não espera, e o acesso cai no mesmo dia. Depois de uma invasão, a lista é a mesma, feita em horas, como no plano das primeiras 72 horas.
As 7 frentes da revisão de acessos e onde conferir cada uma
| Frente | Onde conferir | O que procurar |
|---|---|---|
| 1. Admin do Magento | Sistema > Permissões > Todos os usuários (System > Permissions > All Users) e a tabela admin_user | Usuário que nunca entrou, sem login recente, genérico ou com papel de administrador sem necessidade |
| 2. Integrações, tokens e chaves | Sistema > Extensões > Integrações; tabelas integration e oauth_token; chaves de acesso do Commerce Marketplace; Shared Access da conta Adobe Commerce | Integração ativa sem dono, chave com o nome de quem saiu, fornecedor antigo com Shared Access |
| 3. SSH e SFTP | Arquivo authorized_keys de cada usuário do servidor, inclusive o root, e contas de SFTP do painel | Chave sem identificação de pessoa, usuário de fornecedor antigo |
| 4. Banco de dados | Lista de usuários do MySQL ou MariaDB e de onde cada um conecta | Usuário além do que a loja usa no env.php, acesso liberado de qualquer endereço |
| 5. Hospedagem, CDN e DNS | Usuários de cada painel | Conta pessoal de ex-fornecedor com permissão total |
| 6. Gateway e ERP | Usuários e chaves de API de cada painel | Chave criada para teste ainda ativa, usuário de quem saiu |
| 7. E-mail transacional | Usuários e chaves de API do serviço de envio | Chave usada por sistemas que ninguém sabe identificar |
As consultas das frentes 1, 2 e 4, com os nomes de tabela da 2.4.8 e da 2.4.9:
SELECT user_id, username, email, is_active, logdate
FROM admin_user
ORDER BY logdate;
SELECT i.name, i.email, i.status, i.created_at,
t.created_at AS token_criado, t.revoked
FROM integration i
LEFT JOIN oauth_token t
ON t.consumer_id = i.consumer_id AND t.type = 'access'
ORDER BY i.created_at;
SELECT user, host FROM mysql.user;A primeira já aparece na rotina de manutenção preventiva. A segunda é a que costuma faltar: pela documentação da Adobe, o token de uma integração dura até ser revogado manualmente, então chaves de integração do Magento esquecidas continuam válidas.
Critério de remoção: quem sai, quem fica e quem vira conta individual
- Pessoa que saiu ou fornecedor encerrado: remove no dia, em todas as frentes, sem esperar a revisão. Para remover o usuário admin de ex-funcionário, use a tela de usuários do admin; se precisar manter o cadastro por um tempo, marque a conta como inativa.
- Sem login há mais tempo que o prazo da loja: defina o prazo (por exemplo, 90 dias) e desative primeiro. Se ninguém reclamar até a revisão seguinte, remova.
- Conta compartilhada: vira uma conta por pessoa. Com login coletivo não há como saber quem fez cada alteração, e o Magento já vem com a opção Admin Account Sharing desligada de fábrica para impedir o mesmo login em vários computadores.
- Papel maior que a função: quem só atende pedido não precisa do papel de administrador; ajuste em Sistema > Permissões > Papéis de usuário (User Roles).
- Integração sem dono: identifique quem usa antes de remover. Desative em horário de pouco movimento e acompanhe se pedido, estoque ou nota param de sincronizar.
Política de senha e 2FA no admin do Magento: o que conferir
Em Stores > Settings > Configuration > Advanced > Admin > Security, confira se alguém mudou os valores de fábrica sem motivo registrado. Os padrões abaixo estão no código da 2.4.8-p4 e da 2.4.9:
| Opção | Padrão | O que acende o alerta |
|---|---|---|
| Admin Account Sharing | No | Yes: o mesmo login entra de vários computadores ao mesmo tempo |
| Maximum Login Failures to Lockout Account | 6 | Campo vazio, que desliga o bloqueio por tentativas |
| Password Lifetime (days) | 90 | Campo vazio, que deixa a senha sem validade |
| Password Change | Forced | Recommended, que só sugere a troca |
Pela documentação da Adobe, o 2FA é exigido para entrar no admin: cada usuário configura o segundo fator no primeiro acesso. Se bin/magento module:status Magento_TwoFactorAuth mostrar o módulo desativado, isso precisa de justificativa escrita. A exceção documentada é a loja com login pelo Adobe IMS, que desliga o 2FA nativo.
Planilha-modelo para registrar a revisão de acessos
Revisão sem registro vira opinião na próxima vez. A planilha que eu recomendo tem uma linha por acesso (as duas linhas abaixo são exemplos fictícios):
| Frente | Conta ou chave | Pessoa ou sistema | Último uso | Decisão | Data e quem executou |
|---|---|---|---|---|---|
| Admin | atendimento.maria | Maria, atendimento | 21/10/2026 | Manter, com papel reduzido | 28/10/2026, gestor da loja |
| Integrações | ERP teste | Ninguém identificado | sem registro | Desativar; remover na próxima revisão | 28/10/2026, suporte |
Guarde a planilha de cada trimestre. Numa auditoria de loja Magento, ela é evidência do bloco de segurança; na troca de fornecedor, é a lista do que precisa ser revogado.
Perguntas frequentes
Como remover o usuário admin de um ex-funcionário no Magento?
Em System > Permissions > All Users, abra o usuário, confirme a sua senha e use Delete User, ou marque a conta como inativa se precisar manter o cadastro por um tempo. Faça no mesmo dia da saída e revise também SSH, painéis e chaves de API que a pessoa usava.
Chaves de integração do Magento expiram sozinhas?
Não. Pela documentação da Adobe, o token de uma integração dura até ser revogado manualmente. Integração que ninguém usa continua com credencial válida, por isso ela entra na revisão com um dono identificado ou é desativada.
Conta de admin compartilhada no Magento é um problema?
É. Com um login para várias pessoas não dá para saber quem fez cada alteração, nem quem ainda conhece a senha. O Magento vem com a opção Admin Account Sharing desligada de fábrica, e o caminho é criar um usuário por pessoa, com 2FA e o papel mínimo necessário.
Quem deve ter acesso SSH ao servidor da loja?
Só quem faz deploy, manutenção ou investigação no servidor, cada um com a própria chave identificada pelo nome. Chave sem dono, de fornecedor antigo ou usada por mais de uma pessoa sai na revisão. Painel da hospedagem e SFTP seguem a mesma regra.
Fontes oficiais
- Configure Admin security (Adobe Experience League)
- Manage Admin user accounts (Adobe Experience League)
- Integrations (Adobe Experience League)
- Token-based authentication (Adobe Developer)
- Best practices to respond to a security incident (Adobe Experience League)
- A01:2025 Broken Access Control (OWASP)