IAM - identidade e acesso
Identidade é o novo perímetro: a segurança em cloud começa por saber quem é cada workload, cada humano e cada serviço, e limitar exatamente o que cada um pode tocar.
O que é
IAM () é o sistema que decide quem existe no seu ambiente cloud, o que cada um pode fazer e em quais condições. Em vez de um firewall na borda, o controle se distribui por cada chamada de API: cada request carrega uma identidade, e essa identidade é avaliada contra políticas antes de tocar qualquer recurso.
Três peças sustentam tudo: o principal (humano, serviço, workload), a ação que ele quer fazer (s3:GetObject, ec2:TerminateInstance) e o recurso alvo (bucket, instância, função). A resposta é sempre sim ou não, e o motor registra quem pediu o quê, quando e como.
Usuários, roles e policies
Usuários são identidades persistentes atreladas a alguém (ou a um segredo estático). Roles são identidades assumíveis: em vez de senha, alguém troca de papel via AssumeRole e ganha credenciais temporárias por minutos ou horas. Para workloads, quase sempre é assim: nada de usuário fixo, tudo via role.
Policies são documentos JSON que descrevem permissões. Há três tipos que você encontra o tempo todo: identity policies (anexadas ao principal), resource policies (anexadas ao recurso, como uma bucket policy) e session policies (limites adicionais durante AssumeRole). A avaliação combina todas elas, e basta um único deny explícito para bloquear a ação.
Quando tudo é uma policy, dá para revisar, versionar e testar o acesso como código. Quando metade é um clique no console e a outra metade é um JSON colado no Slack, o caos aparece no primeiro incidente.
Wildcard versus least privilege
A política abaixo é o anti-padrão clássico: admin com tudo para qualquer recurso. Aparece toda semana em algum workshop e em metade dos incidentes de bucket público da internet.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "FullAccessForDev",
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}A política que deveria existir
Mesmo um job simples raramente precisa de tudo. Esta política concede apenas a leitura do bucket certo, na região certa, com um condition que limita a origem a uma role específica:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadSiteAssets",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::appsec-kb-static",
"arn:aws:s3:::appsec-kb-static/*"
],
"Condition": {
"StringEquals": {
"aws:PrincipalTag/Team": "frontend"
}
}
}
]
}Trust policy: quem pode assumir a role
Toda role tem duas pontas. A primeira é a trust policy, que define quem pode chamar sts:AssumeRole. A segunda é a permission policy, que define o que o assumir ganha. Misturar as duas é onde nascem os incidentes de escalonamento: a role permite s3:* em qualquer lugar, e a trust aceita Principal: "*", então qualquer conta autenticada entra.
A boa trust policy nomeia contas, serviços e até condições externas (MFA, hora do dia, federated provider). Quando você vê "Principal": "*" sem Condition explícita, vale parar e perguntar por quê.
Permission boundaries: o cinto de segurança
Permission boundaries funcionam como um teto: a permissão efetiva de um principal é a interseção entre o que a boundary permite e o que a identity policy permite. É a ferramenta padrão para dar autonomia a times sem abrir mão do controle central.
Na prática, você define uma boundary por equipe ou ambiente (produção, staging) e deixa o time escrever as identity policies dentro desse envelope. O desenvolvedor pode abrir o leque o quanto quiser, mas nunca passa do teto.
Onde entra no dia a dia
- onboarding de pessoa nova: identity provider (SAML/OIDC) emite tokens curtos, a cloud nunca vê senha
- deploy de aplicação: workload recebe role via OIDC/IRSA e troca token por credenciais, sem secret no repositório
- revogação imediata: tira a role, encerra a sessão STS e o acesso morre no minuto seguinte, sem rotacionar segredo
- auditoria: cada chamada vira um evento no CloudTrail/equivalent, com principal ARN, source IP e user agent
Pontos fortes
- controle granular por ação, recurso, tag e condição, sem precisar de rede privada
- revogação central: derruba a role e todos perdem acesso ao mesmo tempo
- modelo auditável: cada decisão passa por políticas versionadas que podem ser revisadas em PR
Limitações
- políticas viram spaghetti: sem ferramenta de visualização e lint, é fácil manter 4.000 statements contraditórios
- exige descoberta contínua: o que o time precisa muda todo sprint, e a política fica para trás
- modelo confunde humano e workload: tratar workload como se fosse humano (com usuário fixo + Access Key estática) é a porta de entrada para quase todo vazamento
conexões no mapa
- Zero-trust - modelo de confiançaguia o modeloIAM - identidade e acesso
- CSPM — postura cloudauditaIAM - identidade e acesso
- Logging & detection - sinais e alertasdocumenta decisõesIAM - identidade e acesso
- IAM - identidade e acessoautoriza o acesso a chavesKMS & crypto - chaves e envelopes
- Resposta a incidentes em cloudrevoga credenciaisIAM - identidade e acesso
atualizado em 14/10/2026 · fontes para aprofundar · reportar erro
em outros domínios
- Caminhos de ataque e escalação de privilégiosoffseccaminhos de ataque nascem de permissões a mais
- A01 Broken Access Controlowaspa mesma regra de menor privilégio, na nuvem
- Agent frameworksai-agentsprivilégio mínimo vale para o agente também
Desbloqueia
teste o que entendeu
Carregando perguntas…