Fundamentos de IAM
Esta aula apresenta os fundamentos de IAM (Identity and Access Management), abordando os conceitos de identidade, acesso, provisionamento e desprovisionamento. O foco é explicar como o gerenciamento de identidades e permissões é essencial para a segurança da informação, com exemplos práticos e boas práticas.
IAM, ou Identity and Access Management, é uma estrutura de processos e tecnologias que garantem que as pessoas certas tenham acesso aos recursos certos, no momento certo e pelos motivos certos. Em um ambiente corporativo, a gestão de identidades e acessos é fundamental para proteger dados sensíveis, evitar vazamentos e cumprir regulamentações. Esta aula explora os quatro pilares fundamentais do IAM: identidade, acesso, provisionamento e desprovisionamento, fornecendo uma base sólida para entender como implementar controles de segurança eficazes.
Com o aumento dos ataques cibernéticos e a complexidade dos ambientes de TI (como nuvem, on-premises e híbrido), o IAM se tornou um componente crítico da estratégia de segurança. Sem uma gestão adequada, as organizações correm o risco de expor dados a usuários não autorizados, sofrer ataques internos e enfrentar dificuldades em auditorias. Vamos mergulhar em cada um desses conceitos.
Identidade
Identidade é o conjunto de atributos que define de forma única uma entidade (usuário, dispositivo, serviço ou aplicação) em um sistema. No contexto de IAM, a identidade é a base sobre a qual as permissões são concedidas. Cada identidade possui um identificador único (como um nome de usuário ou ID) e credenciais (senha, certificado, biometria) que comprovam sua autenticidade.
Gerenciar identidades envolve criar, armazenar e manter essas informações ao longo do ciclo de vida do usuário. Em organizações, as identidades podem ser armazenadas em diretórios como o Active Directory (AD) ou soluções de nuvem como o Azure AD. Um exemplo de atributo de identidade é o cargo do funcionário, que pode influenciar as permissões concedidas. A identidade também pode ser federada, permitindo que um único login (Single Sign-On) funcione em múltiplos sistemas.
Boas práticas para identidade incluem:
- Usar identificadores únicos e imutáveis (ex.: UUID).
- Implementar autenticação multifator (MFA) para aumentar a segurança.
- Manter um repositório centralizado de identidades (diretório).
- Revisar periodicamente identidades inativas ou órfãs.
Acesso
Acesso refere-se à capacidade de uma identidade interagir com um recurso (arquivo, banco de dados, aplicação). O controle de acesso define quem pode fazer o quê, baseado em políticas. Os modelos mais comuns são:
- RBAC (Role-Based Access Control): permissões são atribuídas a papéis (ex.: administrador, usuário), e os usuários recebem papéis.
- ABAC (Attribute-Based Access Control): as decisões de acesso são baseadas em atributos (ex.: cargo, localização, horário).
- PBAC (Policy-Based Access Control): políticas explícitas definem as regras.
O princípio do menor privilégio é essencial: cada identidade deve ter apenas as permissões necessárias para executar suas tarefas. Exemplo: um funcionário de RH não precisa acessar o sistema de faturamento. Ferramentas de IAM permitem definir e auditar essas permissões. Abaixo, um exemplo de política ABAC em JSON (simplificado):
{
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::bucket-dados/*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/departamento": "rh"
}
}
}
Essa política permite que apenas usuários com a tag "departamento=rh" leiam objetos do bucket S3.
Provisionamento
Provisionamento é o processo de criação e configuração de identidades e seus acessos em sistemas e aplicações. Quando um novo funcionário é contratado, o provisionamento automatizado cria sua conta, atribui grupos e permissões conforme seu cargo. Isso reduz erros manuais e acelera a integração (onboarding).
Ferramentas de provisionamento (como Okta, Azure AD, AWS IAM Identity Center) permitem definir fluxos de trabalho que disparam ações quando eventos ocorrem (ex.: novo usuário no RH). Exemplo de script de provisionamento em PowerShell (simplificado):
# Criar usuário no Active Directory
New-ADUser -Name "João Silva" -SamAccountName "joao.silva" -UserPrincipalName "joao.silva@empresa.com" -Enabled $true -AccountPassword (ConvertTo-SecureString "Senha@123" -AsPlainText -Force)
# Adicionar ao grupo "Funcionarios"
Add-ADGroupMember -Identity "CN=Funcionarios,DC=empresa,DC=com" -Members "joao.silva"
O provisionamento deve ser integrado com sistemas de RH (HRIS) para automatizar a criação e alteração de contas. Também é importante definir políticas de senha e MFA durante o provisionamento.
Desprovisionamento
Desprovisionamento é o processo de remover identidades e acessos quando não são mais necessários, como na demissão de um funcionário ou desativação de um serviço. É tão crítico quanto o provisionamento, pois contas órfãs são um vetor comum de ataques. O desprovisionamento deve ser rápido e completo, incluindo a revogação de todas as permissões e a desabilitação ou exclusão da conta.
Um processo típico de desprovisionamento inclui:
- Receber um gatilho (ex.: desligamento no RH).
- Desabilitar a conta imediatamente (impedir login).
- Revogar sessões ativas (force logout).
- Remover associações a grupos e permissões.
- Após um período de retenção, excluir a conta.
Exemplo de script de desprovisionamento no AWS IAM:
aws iam delete-user --user-name joao.silva
# ou desabilitar chaves de acesso
aws iam update-access-key --access-key-id AKIA... --status Inactive --user-name joao.silva
Boas práticas incluem manter logs de todas as ações de provisionamento e desprovisionamento para auditoria, e revisar periodicamente contas inativas.
Referências
- AWS IAM Documentation
- Microsoft Azure AD – Identity Fundamentals
- NIST – Identity and Access Management
- Okta – Identity 101
- NIST CSRC – IAM Definition
Exercícios
- Explique a diferença entre RBAC e ABAC, citando um cenário onde cada um seria mais adequado.
- Descreva o princípio do menor privilégio e dê um exemplo prático de sua aplicação.
- Quais são os passos essenciais para desprovisionar um funcionário que está saindo da empresa?
- O que é provisionamento automatizado e por que ele é importante?
- Dê um exemplo de como uma política de acesso baseada em atributos (ABAC) pode ser usada para restringir acesso a dados sensíveis.