Pular para o conteúdo principal

O guia completo do AWS Identity and Access Management (IAM)

Saiba como usar o AWS Identity and Access Management (IAM) para proteger seu ambiente AWS, gerenciar o acesso com usuários, grupos e funções e implementar práticas recomendadas para uma segurança robusta.
Actualizado 29 de jul. de 2024  · 30 min de leitura

O serviço de gerenciamento de identidade e acesso (IAM) estabelece a base para tudo o que você faz no AWS. Ele mantém seus dados seguros e permite que você controle quem pode acessar seus recursos do AWS e o que eles podem fazer com eles. 

Sem o IAM, qualquer pessoa que acesse a sua conta do AWS pode bagunçar tudo, alterando configurações, excluindo recursos ou acessando dados confidenciais.

Este guia contém tudo o que você precisa saber para configurar e usar o IAM para proteger seu ambiente AWS.

Se você é novo na AWS, considere participar do nosso curso Introdução à AWS para que você se familiarize com os conceitos básicos.

O que é o AWS IAM?

IAM significa Identity and Access Management (gerenciamento de identidade e acesso). Ele foi lançado em 2011 e é uma ferramenta para gerenciar quem pode acessar seus recursos da AWS e o que eles podem fazer com eles.

Esses são os quatro componentes essenciais do IAM:

  • Usuários são indivíduos ou aplicativos que precisam de acesso aos seus recursos do AWS. Cada usuário recebe credenciais exclusivas, como senhas e chaves de acesso.
  • Grupos são coleções de usuários. Em vez de atribuir permissões a cada usuário individualmente, você pode colocar os usuários em grupos e atribuir permissões ao grupo. Isso facilita o gerenciamento de permissões para vários usuários ao mesmo tempo.
  • As funções devem ser assumidas por qualquer pessoa que precise delas, em vez de serem associadas a uma única pessoa. Por exemplo, uma instância do EC2 pode "assumir uma função" para acessar os buckets do S3 sem precisar de credenciais permanentes. As funções usam credenciais de segurança temporárias que expiram automaticamente, o que é ótimo em termos de segurança.
  • Políticas são documentos JSON que definem permissões. Eles especificam quais ações são permitidas ou negadas em quais recursos. As políticas podem ser anexadas a usuários, grupos ou funções.

Se você é novo na AWS, considere participar do nosso curso Introdução à AWS para que você se familiarize com os conceitos básicos dessa ampla plataforma.

Primeiros passos com o IAM

Se você ainda não tiver feito isso, crie uma conta da AWS e faça login.

Para localizar o serviço IAM, digite a palavra-chave "iam" na barra de pesquisa na parte superior do console do AWS e selecione o primeiro resultado para IAM.

AWS - Pesquisando o serviço IAM

Pesquisando o serviço IAM no console do AWS

Isso o levará ao painel do IAM, onde você pode criar e gerenciar todos os componentes do IAM.

Painel de controle do IAM

Painel de controle do IAM

O painel esquerdo do dashboard permite que você crie usuários, funções e políticas, bem como relatórios e ferramentas para gerenciamento e monitoramento.

As recomendações de segurança geralmente são encontradas no centro do painel do IAM. A AWS oferece ampla orientação sobre as práticas recomendadas de segurança e facilita a adoção de ações corretivas, se necessário.

Políticas de IAM da AWS

Agora, vamos analisar um dos conceitos mais importantes do IAM: políticas.

O que são políticas de IAM?

As políticas definem quem pode ter quais permissões para acessar seus recursos do AWS.

Visão geral das políticas de IAM

Visão geral das políticas de IAM

As políticas são escritas no formato JSON e consistem em alguns elementos-chave.

Como exemplo, aqui está o documento JSON para a política gerenciada pelo AWS chamada "AmazonS3FullAccess":

​​{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        }
    ]
}
  • O elemento Version especifica a versão do idioma da política.
  • O siteStatement é onde está a "carne" da apólice. Uma única apólice pode ter várias declarações. Cada declaração inclui alguns campos essenciais:
    • Effect: Esse campo especifica se a declaração permite ou nega o acesso. Você pode escolher entre "Permitir" ou "Negar".
    • Action: Isso define quais ações são permitidas ou negadas. As ações geralmente são as operações que você pode executar em um recurso. O AWS tem ações específicas para cada serviço, portanto, você deve especificá-las corretamente.
    • Resource: Isso especifica os recursos do AWS aos quais as ações se aplicam. Os recursos são identificados usando Nomes de recursos da Amazon (ARNs), que identificam um recurso de forma exclusiva.

Tipos de política: Políticas gerenciadas versus políticas em linha

Agora, vamos falar sobre os tipos de política, começando pelos gerenciados, que podem ser gerenciados pela AWS ou pelo cliente. 

As políticas gerenciadas pela AWS são criadas e mantidas pela AWS, o que as torna um excelente ponto de partida para os conjuntos de permissões comumente usados. As políticas gerenciadas pelo cliente são aquelas que você mesmo cria e gerencia, o que lhe dá mais flexibilidade para escrever documentos JSON personalizados.

As políticas inline, por outro lado, são diretamente associadas a um único usuário, grupo ou função. Elas são úteis para permissões específicas e rigidamente controladas que não devem ser reutilizadas. No entanto, o gerenciamento de políticas em linha pode se tornar complicado à medida que elas aumentam em número, por isso elas são geralmente menos preferidas do que as políticas gerenciadas.

Criar e anexar políticas a usuários, grupos e funções

Criar e anexar políticas a usuários, grupos e funções no AWS é bastante simples. Aqui está um guia passo a passo:

Para criar uma política, clique em "Políticas" no menu à esquerda do console IAM e clique em "Criar política".

Você pode definir sua política usando o editor visual ou a guia JSON. O editor visual é mais fácil se você não estiver familiarizado com JSON. Por exemplo, para criar uma política que permita o acesso somente leitura ao S3, você pode selecionar o "serviço S3" e, em seguida, escolher as ações "somente leitura".

Se você quiser saber mais sobre o S3, não deixe de conferir nosso tutorial de armazenamento da AWS.

IAM: criar uma nova política

Criar uma nova política

Depois que você tiver definido a política, clique em "Review policy" (Revisar política). Em seguida, dê um nome e uma descrição à sua política e clique em "Criar política". Nesse ponto, sua política personalizada deve ser criada.

Observe que há mais de mil políticas gerenciadas pela AWS que devem abranger a maioria dos casos de uso que você tem. Portanto, talvez você nunca precise criar políticas personalizadas.

IAM: lista de políticas gerenciadas pela AWS

Lista de políticas gerenciadas pelo AWS

Se você quiser anexar uma política a um usuário, vá para "Usuários" no console IAM e selecione o usuário ao qual deseja anexar a política. 

Clique na guia "Permissions" (Permissões) e, em seguida, clique em "Add permissions" (Adicionar permissões).

Selecione "Anexar políticas diretamente", localize a política que você criou (ou qualquer política existente que queira anexar) e selecione-a.

IAM: anexar uma política a um usuário

Anexar uma política a um usuário

Clique em "Next" (Avançar) para revisar as permissões e, em seguida, clique em "Add permissions" (Adicionar permissões).

Se, em vez disso, você quiser anexar uma política a um grupo, vá para "Grupos de usuários" no console IAM e selecione o grupo ao qual deseja anexar a política ou clique em "Criar novo grupo" para criar um novo grupo.

Clique na guia "Permissões" e em "Adicionar permissões".

Assim como para anexar políticas aos usuários, você precisa selecionar "Attach policies directly" (Anexar políticas diretamente) e, em seguida, localizar e escolher a política que criou (ou qualquer política existente).

Clique em "Next" (Avançar) para revisar as permissões e, em seguida, clique em "Add permissions" (Adicionar permissões).

Vá para "Funções" no console IAM e selecione a função à qual você deseja anexar uma política.

Clique na guia "Permissions" (Permissões) e, em seguida, clique em "Add permissions" (Adicionar permissões). Esta etapa é um pouco diferente do que encontramos anteriormente. Você verá as políticas de permissão atuais e a lista completa de outras políticas que podem ser anexadas. 

IAM: anexar uma política a uma função

Anexar uma política a uma função

Selecione as políticas que você deseja anexar e selecione "Add permissions" (Adicionar permissões). Lembre-se de que você só pode adicionar até 10 políticas gerenciadas a uma função.

Funções do AWS IAM

As funções do IAM ajudam você a gerenciar as permissões dos seus serviços e aplicativos. 

Ao contrário dos usuários de IAM, que são associados a uma pessoa específica, as funções são projetadas para serem assumidas por qualquer pessoa que precise delas, o que as torna incrivelmente flexíveis.

Considere uma função como um conjunto de permissões que podem ser atribuídas temporariamente a entidades como serviços do AWS (por exemplo, EC2, Lambda) ou até mesmo a usuários de outra conta do AWS. Isso é ótimo para a segurança porque as funções usam credenciais temporárias que expiram automaticamente.

Confira nosso tutorial sobre como dominar as funções de etapa na AWSonde você pode ver como as funções de IAM são um componente essencial na orquestração de fluxos de trabalho.

Como funcionam as funções do IAM?

Ao criar uma função, você define dois aspectos principais: políticas de confiança e políticas de permissões:

  • Políticas de confiança definem quem pode assumir a função. Por exemplo, você pode criar uma política de confiança que permita que uma instância instância do EC2 ou um AWS Lambda assuma a função. Essa política especifica as entidades confiáveis (como serviços ou usuários) que podem usar a função.
  • Políticas de permissões definem quais ações são permitidas ou negadas quando a função é assumida. Elas funcionam exatamente como as políticas que você anexa aos usuários do IAM, especificando quais recursos a função pode acessar e quais ações pode executar.

Uma entidade deve assumir uma função para usá-la. Quando uma instância do EC2 ou função Lambda assume uma função, ela obtém credenciais de segurança temporárias que podem ser usadas para fazer solicitações aos serviços do AWS.

Aqui está um exemplo simples: Suponha que você tenha um aplicativo em execução em uma instância do EC2 que precisa ler de um bucket do S3. Em vez de armazenar chaves de acesso na instância, você pode criar uma função IAM com uma política que permita a leitura do S3. Em seguida, você anexa essa função à sua instância do EC2. Quando a instância é executada, ela assume a função e obtém credenciais temporárias para acessar o bucket S3.

As credenciais temporárias são fornecidas à instância por meio do Serviço de token de segurança da AWS (STS) DA AWS. Essas credenciais incluem um ID de chave de acesso, uma chave de acesso secreta e um token de sessão, e são válidas por um curto período, normalmente algumas horas.

O uso de funções também facilita o gerenciamento de permissões, pois você pode atualizar as políticas da função em um único local, o que se aplica automaticamente a todas as entidades que assumem a função.

Como criar uma função de IAM

Para criar uma função do IAM, clique em "Funções" no menu à esquerda do console do IAM e, em seguida, clique em "Criar função". Em seguida, siga estas etapas para concluir a criação da função:

Você precisará escolher quem ou o que usará essa função. Você tem várias opções: Serviços da AWS (por exemplo, EC2, Lambda), outra conta da AWS ou identidade da Web. Por enquanto, digamos que estamos criando uma função que nos concede acesso total ao S3.

Selecione "S3" como o serviço e "S3" como o caso de uso. Clique em "Next".

IAM: criar uma função - selecionar entidade confiável

Selecione uma entidade confiável

Aqui, você adicionará permissões à sua função. Você pode escolher entre as políticas existentes ou criar uma nova.

Para essa função, encontramos e selecionamos a política "AmazonS3FullAccess" e, em seguida, clicamos em "Next".

IAM: criar uma função - adicionar permissões

Adicionar permissões a uma função do IAM

Dê à sua função um nome que esclareça para que ela serve, como "FullS3Access".

IAM: criar uma função - nomear, revisar e criar

Nomear, revisar e criar uma função

Revise os detalhes de sua função para ter certeza de que tudo está certo. Você verá a entidade confiável, as políticas anexadas e as tags que adicionou.

As tags são opcionais, mas podem ajudar a organizar e gerenciar suas funções. Por exemplo, você pode adicionar uma tag com uma chave de "Environment" (Ambiente) e um valor de "Production" (Produção).

Clique em "Criar função".

Como gerenciar funções de IAM

O gerenciamento de funções do IAM pode se tornar caótico se você tiver muitas, mas há maneiras de manter as coisas organizadas:

  • Use nomes descritivos para suas funções. Isso torna mais fácil saber para que serve cada função apenas olhando o nome. Por exemplo, em vez de um nome genérico como "Role1", use algo como "EC2_S3_ReadOnly" para indicar que é para instâncias EC2 com acesso somente leitura ao S3.
  • Agrupe funções semelhantes. Você pode usar tags para organizar as funções por departamento, projeto ou ambiente. Por exemplo, adicione tags como "Ambiente": Produção" ou "Departamento: Finanças".
  • Reveja regularmente suas funções. Verifique periodicamente todas as suas funções para ver se elas ainda são necessárias. Remova todos os que não estiverem mais em uso. Isso reduz a desordem e minimiza os riscos de segurança, garantindo que apenas as funções necessárias existam.
  • Use o AWS IAM Access Analyzer. Essa ferramenta ajuda você a identificar funções e políticas que concedem amplo acesso e podem representar riscos à segurança. Ele fornece insights sobre suas funções, facilitando o refinamento das permissões e garantindo que suas funções sejam as mais específicas possíveis.

Caso de uso: Acesso entre contas

O acesso entre contas com funções de IAM é um recurso útil que permite que você conceda permissões a usuários ou recursos em uma conta do AWS para acessar recursos em outra conta.

Imagine que você tenha duas contas do AWS: A "Conta A" é o seu ambiente de produção e a "Conta B" é o seu ambiente de desenvolvimento. Você pode precisar de usuários ou aplicativos na "Conta B" para acessar recursos na "Conta A", mas não quer criar usuários IAM separados na "Conta" A para todos.

Você pode criar uma função na "Conta A" que conceda as permissões necessárias e, em seguida, permitir que os usuários ou recursos da "Conta B" assumam essa função.

Estas são as etapas que você precisa seguir para gerenciar o cenário acima:

  • Crie uma função na "Conta A" acessando o console IAM na "Conta A" e clicando em "Funções".
  • Clique em "Create role" (Criar função) e escolha "AWS account" (Conta AWS) como a entidade confiável. Digite o ID da conta "Conta B". Isso estabelece uma relação de confiança, permitindo que os usuários da "Conta B" assumam a função.

IAM: acesso entre contas

Acesso entre contas do IAM

  • Anexe as políticas de permissões necessárias à função. Por exemplo, se você quiser permitir o acesso a um bucket S3, poderá anexar a política "AmazonS3ReadOnlyAccess".
  • Na "Conta B", crie uma política de IAM que permita que você assuma a função na "Conta A". A política será mais ou menos assim:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::AccountA_ID:role/RoleName"
    }
  ]
}
  • Substitua AccountA_ID pelo ID real da conta AWS de "Conta A" e RoleName com o nome da função que você criou.
  • Anexe essa política aos usuários ou grupos da "Conta B" que precisam de acesso.

Os usuários ou aplicativos da "Conta B" agora podem assumir a função da "Conta A" para acessar os recursos. Isso pode ser feito usando a CLI do AWS, SDKs ou o console.

Práticas recomendadas de IAM da AWS

As práticas recomendadas de IAM são essenciais para manter seu ambiente AWS seguro. Aqui está o que você deve focar:

Habilite a autenticação multifatorial (MFA)

A MFA adiciona uma camada extra de segurança à sua conta da AWS. Mesmo que alguém tenha acesso à sua senha, ele precisará do segundo formulário de verificação para entrar. Configure isso para sua conta root e para qualquer outro usuário importante.

Use funções de IAM em vez de usuários de IAM quando possível

As funções fornecem credenciais temporárias que se alternam automaticamente, reduzindo o risco de exposição de credenciais a longo prazo. Por exemplo, use funções em vez de codificar chaves de acesso para aplicativos executados em instâncias do EC2.

Seguir o princípio do menor privilégio

Dê aos usuários e às funções somente as permissões de que eles absolutamente precisam. Isso minimiza o risco de ações acidentais ou mal-intencionadas. Revise e atualize regularmente as permissões para garantir que elas ainda sejam necessárias.

Gire regularmente as chaves de acesso

Se você precisar usar chaves de acesso, alterne-as regularmente. O AWS permite que você crie duas chaves de acesso ativas por usuário, para que possa criar uma nova chave, atualizar seus aplicativos e desativar a chave antiga sem tempo de inatividade.

Use grupos IAM para gerenciar permissões

Em vez de atribuir permissões a usuários individuais, crie grupos e atribua permissões aos grupos. Isso facilita o gerenciamento de permissões, especialmente à medida que o número de usuários aumenta.

Monitorar e auditar as atividades de IAM

Ative o AWS CloudTrail para registrar todas as chamadas de API, inclusive as feitas por usuários IAM. Analise esses registros regularmente para detectar qualquer atividade incomum ou não autorizada. Isso ajuda a manter a segurança e a conformidade.

Aplique políticas de senhas fortes

Aplique políticas de senha que exijam senhas fortes. Isso inclui uma combinação de letras maiúsculas e minúsculas, números e caracteres especiais. Além disso, você deve impor mudanças regulares de senha e evitar a reutilização de senhas antigas.

Limitar o uso da conta raiz

A conta raiz tem acesso irrestrito a todos os recursos da sua conta do AWS. Use-o com moderação e crie usuários IAM individuais para as tarefas diárias. Sempre ative a MFA na conta raiz.

Recursos avançados do AWS IAM

Se estiver usando o AWS IAM em um ambiente corporativo, você deve conhecer alguns recursos avançados.

Federação de identidade

A federação de identidade permite que você use identidades existentes de outros provedores de identidade (como seu diretório corporativo ou provedores de identidade social) para acessar os recursos do AWS. Em vez de criar usuários IAM separados para todos, você pode permitir que os usuários façam login com suas credenciais existentes.

Para usar a federação de identidade, você deve estabelecer uma relação de confiança entre o AWS e o provedor de identidade. 

Quando os usuários tentam acessar o AWS, eles primeiro se autenticam no provedor de identidade. Se a autenticação for bem-sucedida, eles receberão credenciais de segurança temporárias para acessar os recursos do AWS. 

Essas credenciais são gerenciadas pelo AWS Serviço de token de segurança (STS) e são válidas por um curto período de tempo, reduzindo o risco de exposição da credencial a longo prazo.

Centro de Identidade IAM

O Centro de Identidade IAMtambém conhecido como AWS Single Sign-On (SSO), é um hub central para controlar quem pode acessar o que no seu ambiente AWS sem precisar gerenciar vários nomes de usuário e senhas.

Você pode se conectar às suas fontes de identidade existentes, como o Microsoft Active Directory ou outros provedores de identidade compatíveis com SAML 2.0. Seus usuários podem usar as credenciais de login corporativo para fazer login no AWS.

Depois de configurados, os usuários podem acessar um portal personalizado onde veem todas as contas e aplicativos da AWS para os quais têm permissões. Eles fazem login apenas uma vez e, a partir daí, podem alternar entre diferentes contas e aplicativos da AWS sem precisar fazer login novamente. 

Você pode configurar o IAM Identity Center ativando-o no AWS Management Console, conectando-o à sua fonte de identidade e configurando o acesso do usuário. A AWS fornece tutoriais passo a passo para ajudá-lo no processo, tornando-o fácil mesmo que você não tenha experiência com IAM ou SSO.

Conclusão

Dominar o IAM é fundamental porque ele estabelece a base para tudo o que você faz na AWS. Ele ajuda você a controlar quais recursos os usuários podem acessar, mantém seus dados seguros e garante que você não está abrindo a porta para hackers.

Para saber mais sobre a AWS, comece inscrevendo-se em nossa Tecnologia e serviços de nuvem da AWS da AWS. Depois disso, você pode progredir em sua carreira você obtenha a certificação AWS!

Além disso, confira nosso webinar, que apresentará a você ciência de dados na nuvem com Python, AWS e boto3.

Perguntas frequentes

Qual é a diferença entre funções de IAM e usuários de IAM no AWS?

Os usuários do IAM são indivíduos ou aplicativos específicos que têm credenciais permanentes e são normalmente associados a uma pessoa ou serviço específico. As funções de IAM, por outro lado, devem ser assumidas por qualquer pessoa que precise delas, fornecendo credenciais de segurança temporárias que expiram após um curto período. Isso torna as funções mais flexíveis e seguras para tarefas que exigem acesso temporário, como aplicativos executados em instâncias do EC2.

Como faço para criar uma política de IAM personalizada no AWS?

Para criar uma política de IAM personalizada, navegue até o console do IAM, clique em "Políticas" no menu à esquerda e, em seguida, clique em "Criar política". Você pode definir sua política usando o editor visual ou o editor JSON. Depois de determinar as permissões, clique em "Revisar política", dê um nome e uma descrição à sua política e clique em "Criar política". Essa política personalizada pode então ser anexada a usuários, grupos ou funções.

Por que é importante ativar a autenticação multifator (MFA) para minha conta da AWS?

A ativação da MFA adiciona uma camada extra de segurança à sua conta da AWS. Mesmo que alguém obtenha acesso à sua senha, ele ainda precisará do segundo formulário de verificação (como um código do seu smartphone) para fazer login. Isso reduz significativamente o risco de acesso não autorizado e ajuda a proteger seus dados e recursos confidenciais.

Como os grupos IAM podem me ajudar a gerenciar as permissões de forma mais eficaz na AWS?

Os grupos IAM permitem que você atribua permissões a vários usuários simultaneamente, facilitando o gerenciamento e a atualização das permissões. Em vez de atribuir políticas a usuários individuais, você pode criar grupos com base em funções ou departamentos (por exemplo, administradores, desenvolvedores) e anexar as políticas necessárias a esses grupos. Essa abordagem simplifica o gerenciamento de permissões, especialmente à medida que o número de usuários aumenta.

Quais são os benefícios de usar as funções do AWS IAM para acesso entre contas?

O uso de funções do AWS IAM para acesso entre contas permite que você conceda permissões a usuários ou recursos em uma conta do AWS para acessar recursos em outra conta sem criar usuários IAM separados na conta de destino. Esse método aumenta a segurança com o uso de credenciais temporárias que expiram automaticamente, reduz a sobrecarga de gerenciamento da manutenção de várias contas de usuário e simplifica a concessão e a revogação de acesso entre contas.

Temas

Saiba mais sobre a AWS e a engenharia de dados com estes cursos!

curso

AWS Cloud Technology and Services

3 hr
3.4K
Master AWS cloud technology with our course - ideal for hands-on learning and practical applications in the AWS ecosystem.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Certificações da AWS em 2024: Níveis, custos e como passar

Explore nosso guia completo sobre as certificações da AWS, incluindo qual é a melhor para você e como passar nos exames. Além disso, descubra os recursos do DataCamp para ajudar!
Adel Nehme's photo

Adel Nehme

20 min

tutorial

Primeiros passos com o AWS Athena: Um guia prático para iniciantes

Este guia prático ajudará você a começar a usar o AWS Athena. Explore sua arquitetura e seus recursos e saiba como consultar dados no Amazon S3 usando SQL.
Tim Lu's photo

Tim Lu

28 min

tutorial

Tutorial de armazenamento do AWS: Uma introdução prática ao S3 e ao EFS

O guia completo para armazenamento de arquivos no AWS com S3 e EFS.
Zoumana Keita 's photo

Zoumana Keita

16 min

tutorial

O guia completo para machine learning na AWS com o Amazon SageMaker

Este tutorial abrangente ensina você a usar o AWS SageMaker para criar, treinar e implantar modelos de machine learning. Nós guiamos você por todo o fluxo de trabalho, desde a configuração do seu ambiente AWS e a criação de uma instância de notebook do SageMaker até a preparação de dados, modelos de treinamento e sua implementação como endpoints.
Bex Tuychiev's photo

Bex Tuychiev

25 min

tutorial

Um guia completo para armazenamento de dados no AWS com o Redshift

Este guia do AWS Redshift abrange a configuração e o gerenciamento de um data warehouse na nuvem, o carregamento de dados, a execução de consultas complexas, a otimização do desempenho, a integração com ferramentas de BI e fornece práticas recomendadas e dicas de solução de problemas para que você tenha sucesso.
Zoumana Keita 's photo

Zoumana Keita

20 min

See MoreSee More