O Gerenciamento de Identidade e Acesso (IAM) é um framework de processos, políticas e tecnologias que permite às organizações gerenciar identidades digitais e controlar o acesso a recursos. IAM é fundamental para a segurança da informação, pois garante que apenas usuários autorizados possam acessar sistemas, dados e aplicações, no momento certo e pelo motivo certo. Nesta aula, exploraremos os quatro pilares essenciais do IAM: Identidade, Acesso, Provisionamento e Desprovisionamento.

Identidade

Identidade é o conjunto de atributos que define de forma única um usuário, sistema ou serviço dentro de um domínio digital. No contexto de IAM, a identidade é a base sobre a qual todas as permissões e controles são construídos. Cada identidade possui um identificador único (como um nome de usuário ou ID numérico) e atributos associados (como nome, e-mail, cargo, departamento, etc.).

Gerenciar identidades envolve criar, armazenar e manter essas informações de forma segura. As identidades podem ser de três tipos principais: identidades de usuário (pessoas), identidades de máquina (servidores, dispositivos IoT) e identidades de serviço (aplicações, APIs). Cada tipo requer políticas e controles específicos. Por exemplo, identidades de máquina geralmente usam certificados digitais ou tokens, enquanto identidades de usuário podem usar senhas ou autenticação multifator (MFA).

Um aspecto crítico é a unicidade e a não repudiação: a identidade deve ser única e as ações realizadas por ela devem ser atribuíveis. Para isso, utiliza-se diretórios como LDAP ou Active Directory, e provedores de identidade (IdP) em ambientes federados.

Exemplo de representação de identidade em um sistema de IAM:

{
  "id": "user-12345",
  "username": "joao.silva",
  "email": "joao.silva@empresa.com",
  "department": "TI",
  "roles": ["admin", "operator"],
  "status": "ACTIVE",
  "createdAt": "2025-01-10T14:30:00Z"
}

Acesso

Acesso refere-se à capacidade de uma identidade de interagir com um recurso (arquivo, banco de dados, API, rede, etc.). O controle de acesso é o mecanismo que determina se uma solicitação de acesso deve ser concedida ou negada, com base em políticas predefinidas. Existem três modelos principais de controle de acesso: DAC (Controle de Acesso Discricionário), MAC (Controle de Acesso Obrigatório) e RBAC (Controle de Acesso Baseado em Funções). O RBAC é o mais comum em IAM, onde permissões são associadas a funções (roles), e funções são atribuídas a identidades.

Além do RBAC, existem modelos mais granulares como ABAC (Controle de Acesso Baseado em Atributos), que considera atributos do usuário, do recurso e do ambiente (ex.: horário, localização). A política de acesso é geralmente expressa em linguagem como XACML ou em formato JSON em soluções modernas (ex.: AWS IAM policies).

Um princípio fundamental é o do menor privilégio: cada identidade deve ter apenas as permissões necessárias para realizar suas tarefas. Isso reduz a superfície de ataque e limita danos em caso de comprometimento.

Exemplo de política de acesso no estilo AWS IAM:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": "arn:aws:s3:::bucket-relatorios/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "192.168.1.0/24"
        }
      }
    }
  ]
}

Provisionamento

Provisionamento é o processo de criação e configuração de identidades e seus respectivos acessos em sistemas e aplicações. Envolve desde a criação da conta de usuário até a atribuição de permissões, grupos e funções. O provisionamento pode ser manual, mas em ambientes modernos é automatizado por meio de ferramentas de gerenciamento de identidades, como Okta, Azure AD, Keycloak ou sistemas de diretório.

O provisionamento deve seguir um fluxo bem definido: geralmente inicia-se com um gatilho (contratação de um funcionário, criação de um novo serviço) e inclui etapas como aprovação, criação da identidade no diretório, atribuição de grupos e funções, e sincronização com sistemas downstream (e-mail, CRM, ERP). É essencial que o provisionamento seja rastreável e auditável, gerando logs de todas as ações.

Uma boa prática é utilizar o conceito de "just-in-time" (JIT), onde o acesso é provisionado apenas no momento em que é necessário e por tempo limitado. Isso reduz o risco de contas órfãs ou acessos excessivos.

Exemplo de script de provisionamento (simplificado) usando uma API de diretório:

POST /api/users
{
  "username": "maria.oliveira",
  "email": "maria@empresa.com",
  "firstName": "Maria",
  "lastName": "Oliveira",
  "groups": ["vendas", "relatorios"],
  "roles": ["user"]
}

Desprovisionamento

Desprovisionamento é o processo reverso: remover identidades e seus acessos quando não são mais necessários. Isso ocorre em situações como demissão de funcionário, desativação de serviço, ou mudança de função. O desprovisionamento é crucial para evitar contas órfãs, que são um dos principais vetores de ataques internos e externos.

Um desprovisionamento eficaz deve incluir: desativação ou exclusão da conta no diretório central, remoção de permissões em todos os sistemas, revogação de tokens e certificados, e arquivamento de logs e dados conforme políticas de retenção. Idealmente, o processo deve ser automatizado e integrado ao sistema de RH (para demissões) ou a workflows de mudança de função.

Muitas organizações adotam uma política de desprovisionamento em duas etapas: primeiro, desabilitam a conta (para permitir recuperação em caso de erro) e, após um período de carência, realizam a exclusão definitiva. É importante também notificar os administradores e auditar o processo.

Exemplo de comando de desprovisionamento via API:

DELETE /api/users/maria.oliveira
Authorization: Bearer token_admin
Response: 200 OK
{
  "status": "disabled",
  "scheduledDeletion": "2025-08-01T00:00:00Z"
}

Boas Práticas em IAM

Além dos pilares, algumas boas práticas são essenciais: implementar autenticação multifator (MFA) para todas as identidades, utilizar senhas fortes ou autenticação sem senha (FIDO2), revisar periodicamente as permissões (access reviews), manter logs centralizados de todas as ações de IAM, e seguir o princípio do menor privilégio. A segregação de funções (SoD) também é importante para evitar que uma única identidade tenha permissões conflitantes (ex.: criar usuário e auditar logs).

Outro ponto é a governança: políticas claras de criação, modificação e remoção de identidades, com aprovações baseadas em níveis hierárquicos. Ferramentas de IAM modernas oferecem dashboards e relatórios para monitoramento contínuo.

Referências

Exercícios

  1. Explique a diferença entre RBAC e ABAC e dê um exemplo de cenário onde ABAC seria mais adequado.
  2. ✓ Resposta: RBAC (Role-Based Access Control) atribui permissões a funções (roles) e funções a usuários. ABAC (Attribute-Based Access Control) usa atributos do usuário, recurso e ambiente para tomar decisões de acesso. ABAC é mais adequado em cenários com requisitos dinâmicos, como permitir acesso a um documento apenas se o usuário for gerente e o horário for comercial, enquanto RBAC seria estático. Exemplo: um sistema de saúde onde acesso a prontuários depende do tipo de profissional, do paciente e do consentimento.
  3. Descreva o ciclo de vida de uma identidade digital, desde a solicitação até o desprovisionamento.
  4. ✓ Resposta: O ciclo de vida inclui: (1) Solicitação - RH ou gestor solicita criação; (2) Aprovação - conforme política; (3) Provisionamento - criação da conta e atribuição de acessos; (4) Uso - autenticação e autorização contínuas; (5) Revisão periódica - verificação de necessidade; (6) Desprovisionamento - desativação ou exclusão quando não mais necessária (demissão, mudança de função).
  5. Quais são os riscos de não realizar o desprovisionamento adequado? Dê exemplos.
  6. ✓ Resposta: Riscos incluem: contas órfãs que podem ser usadas por invasores; ex-funcionários mantendo acesso a dados sensíveis; violação de compliance (LGPD, SOX); aumento da superfície de ataque. Exemplo: um ex-funcionário de TI com acesso a servidores pode instalar backdoors; uma conta de serviço não removida pode ser explorada em um ataque.
  7. Cite duas ferramentas de IAM e explique como elas ajudam no provisionamento automatizado.
  8. ✓ Resposta: Duas ferramentas: (a) Microsoft Entra ID - permite sincronizar usuários do Active Directory local com a nuvem, provisionar grupos e licenças automaticamente via regras; (b) Okta - oferece workflows de provisionamento para centenas de aplicações (SaaS), criando, atualizando e desativando contas com base em eventos do RH. Ambas reduzem erros manuais e garantem consistência.
  9. O que é o princípio do menor privilégio e como aplicá-lo em uma política de IAM? Dê um exemplo.
  10. ✓ Resposta: O princípio do menor privilégio determina que uma identidade deve ter apenas as permissões estritamente necessárias para executar suas funções. Para aplicá-lo, deve-se mapear tarefas e conceder permissões mínimas, revisar periodicamente e usar grupos/funções granulares. Exemplo: um funcionário do RH precisa acessar apenas dados de funcionários do seu departamento, não de toda a empresa. A política deve permitir leitura/escrita apenas no diretório específico do RH, e não em outros.