DEV Community

Francisco Claudeilton Dantas
Francisco Claudeilton Dantas

Posted on

Introdução ao AWS IAM: Gestão de Identidades e Permissões na Nuvem

Hoje iremos abordar sobre o pilar de segurança na Amazon Web Services - AWS. Inicialmente abordamos uma introdução ao serviço responsável por gerenciar gestão de acesso aos recursos na AWS.

Vamos o que interessa, o que realmente é o IAM na AWS?

Segurança Identity and Access Management - IAM

O AWS Identity and Access Management (IAM) é o serviço que permite controlar quem pode acessar seus recursos na AWS e o que cada pessoa ou sistema pode fazer.
Mesmo sem experiência prévia em nuvem, é importante entender que IAM é a porta de segurança que garante que apenas usuários autorizados executem ações específicas em seus recursos.

Contas e Tipos de Usuários IAM
No IAM, cada identidade possui permissões específicas que definem o que ela pode acessar.
Existem três tipos principais de contas e perfis:

1. Usuário IAM:

  • Criado para pessoas ou sistemas que precisam acessar recursos de forma contínua.
  • Quando usar: colaboradores que acessam diariamente serviços da AWS.
  • Quando evitar: scripts automatizados ou aplicações; para esses casos, é melhor usar roles temporárias.

2. Usuário federado:

  • Permite login temporário usando sistemas de terceiros (como diretórios corporativos SAML ou OIDC).
  • Quando usar: acesso temporário ou integração com autenticação externa.
  • Quando evitar: atividades que exigem identidade permanente ou registros detalhados.

3. Root Account:

  • Conta principal da AWS, criada ao iniciar a conta, ele é responsável pelo gerenciamento da parte de pagamentos dos recursos na AWS.

  • Quando usar: apenas para configuração inicial, faturamento e definições críticas.

  • Quando evitar: não deve ser usada para tarefas do dia a dia, pois possui privilégios máximos, representando risco à segurança.

Gestão de segurança IAM - passos essenciais

Políticas IAM: Como funcionam

As políticas definem as permissões de acesso aos recursos. Existem dois tipos principais:

Políticas baseadas em identidade:

  • Associadas a usuários, grupos ou roles.
  • Exemplo: um usuário pode ter acesso total apenas a uma tabela do DynamoDB.

Podem ser:

  • Gerenciadas pela AWS (prontas e seguras);
  • Gerenciadas pelo cliente (personalizáveis);
  • Inline (embutidas em um único usuário; não recomendadas para grande escala)

Políticas baseadas em recursos:

  • Anexadas diretamente aos recursos, como buckets do S3 ou chaves do KMS.
  • Permitem controle de acesso entre contas e acesso detalhado a recursos específicos.

Exemplo de política JSON para DynamoDB:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "dynamodb:*",
    "Resource": "arn:aws:dynamodb:us-east-2:123456789012:table/Books"
  }
}

Enter fullscreen mode Exit fullscreen mode

Essa política permite que o usuário execute todas as ações na tabela Books, mas não concede acesso a outros serviços.

Grupos e Roles

  • Grupos IAM: organizam usuários com permissões semelhantes, facilitando o gerenciamento em larga escala.
  • Roles (Perfis): usados por usuários federados ou aplicações, concedendo permissões temporárias.

Modelos de Controle de Acesso
Existem dois modelos principais:

1. RBAC – Role-Based Access Control (Controle baseado em função):

  • Permissões definidas de acordo com funções ou cargos.
  • Limitação: exige atualização manual quando novos recursos são criados.

2. ABAC – Attribute-Based Access Control (Controle baseado em atributos):

  • Permissões baseadas em atributos (tags) de usuários e recursos.
  • Permite acesso dinâmico e escalável, ideal para ambientes corporativos e multi-projeto.

Vantagens do ABAC sobre RBAC:

  • Escalabilidade e menor necessidade de manutenção.
  • Permissões automáticas para novos recursos quando tags correspondem.
  • Redução de políticas complexas, facilitando auditoria e governança.

gerenciamento de acessos AWS IAM

Boas Práticas

Princípio do menor privilégio: conceda apenas as permissões necessárias.
Revisão periódica: audite políticas, roles e tags regularmente.
Evite root account: use apenas para funções críticas e administrativas.
Prefira roles temporárias para scripts e aplicações automáticas.

📌 Resumo
IAM gerencia identidades e permissões na AWS. Políticas podem ser identity-based ou resource-based, aplicadas a usuários, grupos ou roles. RBAC organiza permissões por função/cargo, enquanto ABAC usa atributos (tags) para autorização dinâmica e escalável. Em multi-account, recomenda-se usar AWS Organizations e SCPs. Princípio do menor privilégio e consistência nas tags são práticas essenciais.

Palavras-chave: IAM, policies, RBAC, ABAC, AWS Organizations, usuários, grupos, roles, SAA-C03, menor privilégio.

Top comments (0)