Segurança de IAM Cloud
LidoNesta aula, exploramos os fundamentos da segurança de IAM (Identity and Access Management) em ambientes cloud, abordando os conceitos de roles, identidades federadas e o princípio do menor privilégio. Aprenderemos como esses elementos se combinam para construir uma postura de segurança robusta, com exemplos práticos e boas práticas.
A segurança da informação em ambientes cloud depende fortemente de um gerenciamento eficaz de identidades e acessos (IAM). O IAM é a disciplina que define quem pode acessar quais recursos, sob quais condições, e como essas permissões são aplicadas e auditadas. Em um mundo onde as empresas migram cada vez mais suas cargas de trabalho para provedores como AWS, Azure e Google Cloud, entender os mecanismos de IAM é essencial para proteger dados sensíveis e evitar violações de segurança.
Nesta aula, vamos nos aprofundar em três pilares fundamentais do IAM cloud: cloud roles, identidades federadas e o princípio do menor privilégio. Esses conceitos não apenas ajudam a estruturar o acesso, mas também a minimizar riscos, garantindo que cada usuário ou serviço tenha exatamente as permissões necessárias para desempenhar suas funções, e nada além disso.
Cloud roles
Cloud roles são um mecanismo central no IAM para definir conjuntos de permissões que podem ser atribuídos a entidades (usuários, grupos, serviços). Em vez de atribuir permissões individuais a cada usuário, você cria roles com um conjunto de políticas que especificam quais ações são permitidas ou negadas em determinados recursos. Isso simplifica o gerenciamento, pois você pode reutilizar a mesma role para vários usuários ou serviços.
Por exemplo, na AWS, uma role pode ser assumida por um serviço EC2 para acessar um bucket S3, enquanto no Azure, roles são atribuídas a usuários ou grupos para acessar recursos em um escopo específico (assinatura, grupo de recursos ou recurso individual). As roles podem ser temporárias (no caso de credenciais de curta duração, como STS na AWS) ou permanentes, e são um componente crítico para implementar o menor privilégio.
Exemplo de definição de role na AWS (via JSON de política):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::meu-bucket/*"
}
]
}Nesse exemplo, a role permite apenas a ação de leitura (GetObject) em objetos de um bucket específico. Nenhuma outra permissão é concedida, o que segue o princípio do menor privilégio.
Federated identities
Identidades federadas permitem que usuários autenticados em um sistema externo (como um provedor de identidade corporativo, Active Directory, ou até mesmo redes sociais) acessem recursos cloud sem precisar de credenciais separadas. Isso é feito através de um mecanismo de federação, onde o provedor cloud confia no provedor de identidade externo (IdP) para autenticar o usuário e, em seguida, mapeia essa identidade para uma role temporária com permissões específicas.
Na prática, isso é implementado usando padrões como SAML 2.0 ou OIDC (OpenID Connect). Por exemplo, na AWS, você pode configurar uma federação com o Active Directory para que funcionários façam login no console AWS usando suas credenciais corporativas, e o serviço AWS STS (Security Token Service) emite credenciais temporárias com base nas políticas mapeadas. No Azure, isso é feito com o Microsoft Entra ID (antigo Azure AD) e o recurso de acesso condicional.
Exemplo de configuração de federação OIDC na AWS (resumido):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::123456789012:oidc-provider/accounts.google.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"accounts.google.com:aud": "my-oauth-client-id"
}
}
}
]
}Esse exemplo mostra como confiar em um provedor OIDC (Google) e permitir que usuários autenticados assumam uma role específica. A federação simplifica o gerenciamento de identidades, mas requer atenção à configuração para evitar riscos de acesso não autorizado.
Least privilege
O princípio do menor privilégio (least privilege) é uma prática de segurança que recomenda conceder a cada usuário, serviço ou sistema apenas as permissões mínimas necessárias para executar suas tarefas. Isso reduz a superfície de ataque: se uma credencial for comprometida, o dano potencial é limitado, pois o atacante não terá acesso a recursos além do que aquele usuário legítimo necessita.
Implementar o menor privilégio envolve várias etapas: analisar as funções de cada entidade, definir políticas granulares, revisar e ajustar permissões regularmente, e usar ferramentas de monitoramento para detectar o uso excessivo de permissões. Muitos provedores cloud oferecem ferramentas como o AWS IAM Access Analyzer, o Azure AD Privileged Identity Management (PIM) e o Google Cloud IAM Recommender, que ajudam a identificar permissões desnecessárias e sugerir reduções.
Um exemplo de política que segue o menor privilégio no Azure (em JSON):
{
"Name": "read-only-storage",
"Description": "Permite apenas leitura em contas de armazenamento",
"Actions": [
"Microsoft.Storage/storageAccounts/read"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/meu-rg"
]
}Essa política permite apenas a ação de leitura em contas de armazenamento dentro de um grupo de recursos específico, evitando permissões amplas como listar chaves ou gravar dados.
Boas práticas para IAM Cloud
Além dos conceitos vistos, algumas práticas recomendadas incluem: usar autenticação multifator (MFA) para todos os usuários, especialmente administradores; rotacionar credenciais regularmente; usar roles em vez de credenciais de longo prazo sempre que possível; monitorar e auditar acessos com serviços como AWS CloudTrail, Azure Monitor e Google Cloud Audit Logs; e implementar políticas de controle de acesso baseadas em atributos (ABAC) para maior granularidade.
Também é crucial documentar as políticas e manter um processo de revisão periódica para adaptar as permissões às mudanças nas funções e na infraestrutura. A segurança de IAM é um processo contínuo, não uma configuração única.
Referências
- AWS IAM Documentation
- Azure AD Roles
- Google Cloud IAM Documentation
- AWS Identity Providers and Federation
- Azure Managed Identities
- Google Cloud Roles
- OWASP Cloud Security
Exercícios
- Explique a diferença entre uma role e um usuário no contexto de IAM cloud.✓ Resposta: Um usuário é uma identidade permanente associada a uma pessoa ou serviço, com credenciais de longo prazo (como senha ou chave de acesso). Uma role é um conjunto de permissões que pode ser assumido temporariamente por um usuário ou serviço, sem credenciais permanentes. Roles são mais seguras porque podem ser assumidas por curto período e são mais fáceis de gerenciar centralmente.
- Como a federação de identidades melhora a segurança em comparação com a criação de usuários locais?✓ Resposta: A federação permite que os usuários usem suas credenciais corporativas existentes, eliminando a necessidade de múltiplas senhas e reduzindo o risco de senhas fracas. Além disso, o provedor de identidade centralizado pode aplicar políticas de senha, MFA e desativação em um único ponto, melhorando a segurança geral.
- Descreva um cenário em que o princípio do menor privilégio poderia ter evitado um incidente de segurança.✓ Resposta: Um exemplo é um desenvolvedor que tinha permissões administrativas totais em todos os recursos da nuvem. Se suas credenciais fossem comprometidas, um atacante poderia deletar bancos de dados inteiros. Se o princípio do menor privilégio fosse aplicado, o desenvolvedor teria apenas permissões de leitura/escrita em recursos específicos, limitando o dano.
- Quais são as principais diferenças entre usar SAML e OIDC para federação?✓ Resposta: SAML (Security Assertion Markup Language) é baseado em XML e é mais comum em ambientes empresariais, especialmente para integração com Active Directory. OIDC (OpenID Connect) é baseado em JSON e OAuth 2.0, sendo mais moderno e usado em aplicações web e mobile. OIDC é mais leve e fácil de implementar, enquanto SAML é mais maduro em cenários empresariais.
- Cite uma ferramenta de cada provedor cloud (AWS, Azure, GCP) que auxilia na análise de permissões e na aplicação do menor privilégio.✓ Resposta: AWS: IAM Access Analyzer; Azure: Privileged Identity Management (PIM); GCP: IAM Recommender. Essas ferramentas ajudam a identificar permissões excessivas e sugerem reduções.