Menor privilégio, de verdade
O princípio é antigo e todo mundo concorda com ele: cada identidade deve ter apenas as permissões necessárias para a sua função, e apenas pelo tempo necessário. Quase ninguém o implementa por inteiro — e o motivo não é ignorância, é assimetria de incentivo.
Permissão a mais nunca causa erro visível. Permissão a menos causa, imediatamente, e o custo recai sobre quem está tentando trabalhar. Então, sob pressão, todo mundo concede demais.
A permissão temporária que virou permanente
Seção intitulada “A permissão temporária que virou permanente”O padrão se repete em toda organização:
- Alguém precisa investigar um incidente e recebe acesso amplo, “temporariamente”.
- O incidente termina. Ninguém remove o acesso — não há evento que dispare a remoção.
- Seis meses depois, metade da empresa tem privilégio administrativo, e ninguém sabe dizer quem precisa e quem só nunca perdeu.
O resultado é o acúmulo de privilégio: a permissão só cresce, porque conceder é fácil e revogar exige alguém disposto a arriscar quebrar o trabalho de outra pessoa.
A correção não é disciplina. É expiração por padrão — permissão que se apaga sozinha não depende de ninguém lembrar.
Privilégio por identidade e por tempo
Seção intitulada “Privilégio por identidade e por tempo”Menor privilégio tem duas dimensões, e a maioria das implementações cobre só a primeira.
Escopo: o que a identidade pode fazer, sobre quais recursos, com quais condições.
{ "Effect": "Allow", "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::empresa-relatorios-prod/loja/*", "Condition": { "StringEquals": { "aws:PrincipalTag/ambiente": "prod" } }}Tempo: por quanto tempo ela pode. Credencial que expira em uma hora limita o dano de um vazamento a uma hora — e torna a rotação um não assunto.
É por isso que credencial de longa duração é o alvo prioritário: ela falha na segunda dimensão por construção, por mais bem escopada que esteja.
Acesso just-in-time
Seção intitulada “Acesso just-in-time”O modelo que resolve o acúmulo, sem impedir o trabalho:
- Por padrão, todo mundo tem leitura — suficiente para investigar 90% dos casos.
- Escrita em produção exige elevação, com justificativa registrada e prazo (uma a quatro horas).
- A elevação expira sozinha. Ninguém precisa lembrar de revogar.
- O uso é registrado e revisado.
Isso reduz o risco do clique errado, gera a trilha de auditoria que a conformidade pede, e mantém o acesso disponível quando é necessário — que é a condição para as pessoas não buscarem contornos.
O mesmo vale para identidades de máquina: OIDC no CI, identidade de workload nos Pods, credenciais dinâmicas do cofre para banco. O denominador comum é o mesmo — nada permanente.
Medindo o excesso
Seção intitulada “Medindo o excesso”Menor privilégio é verificável, e essa é a parte que costuma ficar de fora:
# quais permissões foram efetivamente usadas nos últimos 90 diasaws iam generate-service-last-accessed-details --arn arn:aws:iam::000000000000:role/loja
# simule antes de conceder ou revogaraws iam simulate-principal-policy --policy-source-arn <role> --action-names s3:DeleteObject
# no cluster: o que esta identidade realmente podekubectl auth can-i --list --as=system:serviceaccount:loja:app -n lojaMétricas que valem acompanhar por trimestre: número de identidades com privilégio administrativo, credenciais sem expiração, permissões concedidas e não usadas em 90 dias, e tempo médio entre a concessão temporária e sua revogação.
O limite honesto
Seção intitulada “O limite honesto”Menor privilégio absoluto não é alcançável nem desejável. Algumas realidades:
- Permissão granular demais vira ingovernável. Trezentas políticas customizadas que ninguém entende são piores que dez bem desenhadas — e mais fáceis de errar.
- Investigação de incidente precisa de amplitude. Se a elevação demora, você trocou risco de segurança por risco de disponibilidade. Elevação precisa ser rápida.
- Existe um acesso de emergência (break-glass), e ele precisa existir mesmo. O controle não é impedi-lo: é registrá-lo, alertar em tempo real e revisar todo uso.
- Algumas ferramentas exigem permissão ampla por má qualidade de projeto. Isolar em conta ou namespace separado costuma ser a melhor mitigação disponível.
O objetivo prático não é a permissão mínima teórica, e sim: nenhuma identidade com poder permanente e amplo, e todo poder amplo com prazo e registro. Isso é atingível, e cobre a maior parte do risco real.