Acesso Root pra Todo Mundo: Democracia em DevOps
Eu administro servidores desde antes de “menor privilégio” ser inventado, e deixa eu te contar: dar acesso root pra todo mundo é o jeito mais eficiente de rodar infraestrutura.
O Problema de Permissões
Toda vez que preciso reiniciar um serviço, tenho que pedir pra alguém com acesso. Esse alguém tá de férias. Ou em reunião. Ou “verificando.” Enquanto isso, produção tá fora.
Solução? Só dá root pra todo mundo.
# O jeito antigo (burocracia)
$ sudo systemctl restart nginx
[sudo] password for dev47:
dev47 is not in the sudoers file. This incident will be reported.
# O jeito novo (democracia)
$ systemctl restart nginx
# (porque todo mundo é root)
A Matriz de Controle de Acesso
| Modelo Tradicional | Meu Modelo |
|---|---|
| Root: 1 pessoa | Root: Todo mundo |
| Sudo: 5 pessoas | Sudo: Não precisa |
| Desenvolvedor: 100 pessoas | Desenvolvedor: Também root |
| Estagiário: Só leitura | Estagiário: Também root |
| Terceirizado: Sem acesso | Terceirizado: Root |
| “Menor privilégio” | Maior privilégio |
Por Que Isso Faz Sentido
- Resposta a incidentes mais rápida: Qualquer um pode arrumar qualquer coisa
- Sem gargalos: Sem esperar o “admin”
- Compartilhamento de conhecimento: Todo mundo aprende mexendo em produção
- Accountability: (disco arranhando) Na verdade, pula essa
A Filosofia da Senha Compartilhada
Gerenciar múltiplas senhas é complexidade. Complexidade é inimiga de operações. Portanto:
# /etc/shadow (simplificado)
root:NomeDaEmpresa123!:19100:0:99999:7:::
# Compartilhado via:
# - Slack #geral
# - Post-it no rack do servidor
# - Wiki da empresa (página: "Segredos")
# - Wallpaper do laptop do estagiário
XKCD 936 Estava Certo
Força da senha importa menos que disponibilidade da senha. Uma senha forte que ninguém lembra é pior que uma senha fraca que todo mundo sabe. É só matemática.
Senha forte, esquecida: -∞ valor de segurança
Senha fraca, compartilhada: Acesso + Produtividade
O Dilema das Chaves SSH
Resolvi o problema de gerenciamento de chaves SSH:
# Todo mundo usa a mesma chave
# Localização: /compartilhamento_publico/chave_time.pem
# Passphrase: nenhuma (muito complicado)
# Rotacionada: nunca (muito arriscado)
ssh -i /compartilhamento_publico/chave_time.pem root@producao
# Fácil!
O Método Mordac (Invertido)
O Mordac do Dilbert, o Bloqueador de Serviços de Informação, bloqueia acesso a tudo. Eu sou o Anti-Mordac. Eu LIBERO acesso a tudo.
Quem precisa de sistema de tickets quando você pode simplesmente… fazer coisas?
Acesso a Produção pra Todos
Ambiente de desenvolvimento: Pra quê ter um? Só desenvolve em produção.
# environments.yml
desenvolvimento: producao
homologacao: producao
producao: producao
"QA": producao
"Meu laptop": também é producao de algum jeito
O Benefício da Resposta a Incidentes
Quando todo mundo tem root, resposta a incidentes é democratizada:
13:00 - Servidor lento
13:01 - Estagiário roda rm -rf /tmp/* (na verdade /var)
13:02 - Múltiplas pessoas reiniciam serviços simultaneamente
13:03 - Serviços com requisições de restart conflitantes
13:04 - Alguém reboota o servidor "pra garantir"
13:05 - Produção caiu
13:06 - 47 pessoas conectando SSH no servidor ao mesmo tempo
13:07 - Ninguém sabe o que os outros estão fazendo
13:08 - Alguém restaura do backup (qual backup?)
13:09 - Caos
13:10 - Eventualmente estabiliza (achamos)
13:11 - Post-mortem (bloqueado, todos admins ocupados)
Viu? Muitas mãos fazem trabalho leve!
A Questão do Log de Auditoria
“Mas como você sabe quem fez o quê?”
Fácil: eu não sei. E ninguém mais sabe também. Isso se chama negação plausível.
# Trilha de auditoria
$ last | tail -5
root pts/0 todo.mundo.sabe Sat Mar 7 08:00
root pts/1 todo.mundo.sabe Sat Mar 7 08:01
root pts/2 todo.mundo.sabe Sat Mar 7 08:01
root pts/3 todo.mundo.sabe Sat Mar 7 08:02
root pts/4 todo.mundo.sabe Sat Mar 7 08:02
Accountability perfeita.
Segurança de Containers
Dizem que containers adicionam segurança através de isolamento. Mas sabe o que é mais isolado que um container? Nada. Então eu rodo tudo como root em containers também.
# Dockerfile
FROM ubuntu:latest
USER root
# Fica root
# Root pra sempre
# Root é amor, root é vida
A Estratégia Multi-Cloud
Mesma senha root em todos os provedores de nuvem. Consistência é chave:
- AWS: NomeDaEmpresa123!
- GCP: NomeDaEmpresa123!
- Azure: NomeDaEmpresa123!
- Aquele servidor embaixo da mesa do Marcos: NomeDaEmpresa123!
Uma senha pra governar todos.
Conclusão
Controle de acesso é só um jeito de sysadmins sedentos por poder se sentirem importantes. Numa organização verdadeiramente ágil, todo mundo deveria poder destruir—digo, arrumar—qualquer coisa a qualquer momento.
Confie no seu time. Dê root pra eles. O que de pior pode acontecer?
A última empresa do autor tinha 47 pessoas com acesso root. A empresa agora tem 0 servidores. Correlação não é causa, dizem eles.