O IAM na AWS pode ser um desafio de usar e entender, especialmente para novos usuários. Não se preocupe! Se você está tendo dificuldades para entender como o IAM funciona no gerenciamento de permissões de usuário na AWS, você veio ao lugar certo para entender o que é possível com o IAM.
Neste tutorial, você aprenderá os conceitos básicos do IAM, seguindo uma série de exemplos que se complementam.
Preparado? Respire fundo e mergulhe!
Pré-requisitos
Este tutorial será uma demonstração prática. Se você quiser acompanhar, certifique-se de ter um PC e uma conta da AWS. Se você não tiver uma conta da AWS, uma conta gratuita está disponível.
Criando Usuários IAM na AWS
Antes de entender como o IAM funciona, você começará este tutorial criando usuários. Os usuários podem ser usados para várias coisas. Mas, para este tutorial, você criará usuários que não têm permissões, não pertencem a nenhum grupo e não têm acesso a nada.
1. Faça login no Console da AWS. Esta demonstração usa um nome de usuário chamado cloud_user, mas o seu nome de usuário será diferente.

2. No console da AWS, digite IAM na caixa de pesquisa e clique no serviço IAM que aparece, conforme mostrado abaixo. Seu navegador será redirecionado para o painel IAM.

O IAM é um serviço global, o que significa que os usuários e suas permissões são aplicados em toda a sua conta/região da AWS. Se várias pessoas compartilham uma conta da AWS (o que é muito comum, por exemplo, no caso de uma equipe de desenvolvimento em toda a empresa), você precisará garantir a rotação adequada da força de trabalho do IAM.
Também é possível criar uma instância EC dentro da região us-east. As instâncias são regionais. No entanto, os controles de Identidade e Acesso do AWS não são regionais. As permissões atribuídas a um usuário serão aplicadas independentemente da região à qual as instâncias EC à qual os usuários se conectam pertencem.

4. No painel IAM, clique em Usuários no painel esquerdo e, em seguida, clique em Adicionar usuários no canto superior direito da página para iniciar a adição de usuários.

Agora, configure os detalhes do usuário da seguinte forma:
- Forneça um nome de usuário no campo Nome do usuário mostrado abaixo. Para este exemplo, o nome de usuário é definido como user-1.
- Habilite a opção Senha – Acesso ao Console de Gerenciamento da AWS para permitir que os usuários façam login no Console de Gerenciamento da AWS.
- Selecione a opção Senha personalizada para a Senha do console e forneça uma senha segura no campo de texto.
- Desmarque a opção Exigir redefinição de senha para que o usuário não seja solicitado a criar uma nova senha no próximo login e clique em Próximo: Permissão.

5. Pule a configuração de permissão e clique em Avançar: Tags pois você está criando um usuário sem permissões.

6. Pule também a adição de tags e clique em Avançar: Revisão.

7. Revise os detalhes do usuário e clique em Criar usuário para finalizar a criação do usuário.

Depois de criar o usuário, você verá uma tela de Sucesso como a abaixo.

8. Agora volte para a página de Usuários no painel do IAM e clique no usuário recém-criado (usuário-1) para visualizar as informações do usuário. Abrindo seu usuário-1

Abaixo, na guia Permissões e Grupos, você pode ver que o usuário-1 não possui nenhuma permissão associada a ele e não é membro de nenhum grupo.


Na guia Credenciais de segurança, você verá diferentes chaves de acesso que o usuário-1 pode ter. Você pode fazer upload de uma chave pública SSH nesta guia, o que é ótimo para suas instâncias do AWS EC2.

A guia Acessos Recentes mostra os serviços que o usuário-1 acessou, diretamente ou por meio de outros serviços, juntamente com a data do último acesso do usuário-1 a esse serviço.

9. Por fim, repita o processo (passos três a sete) para criar mais dois usuários (usuário-2 e usuário-3). Volte para a página de Usuários no painel do IAM e você verá uma lista semelhante à abaixo.

Criando os Grupos de Usuários
Agora que você criou os usuários, é hora de criar grupos. Você criará grupos usando a política gerenciada da AWS e um arquivo JSON.
Para este tutorial, você criará três grupos:
- EC2-Admin: Fornece permissões para visualizar, iniciar e parar instâncias EC2
- EC2-Support: Fornece acesso somente leitura ao EC2
- S3-Support: Fornece acesso somente leitura ao S3
Para começar a criar grupos de usuários:
1. No painel IAM, clique em Grupos de usuários no painel esquerdo e, em seguida, clique em Criar grupo.
2. Forneça um Nome do grupo de usuários (EC2-Admin) na página Criar grupo de usuários, como mostrado abaixo.

Mantenha as permissões padrão e clique em Criar grupo para finalizar a criação do grupo EC2-Admin.

Depois de criar o novo grupo, você verá a mensagem Grupo de usuários EC2-Admin criado no topo da página, como mostrado abaixo. Seu navegador será redirecionado automaticamente para a página Grupos de usuários (passo três).

3. Clique no grupo EC2-Admin na coluna Nome do grupo para visualizar as informações resumidas do grupo, onde você pode adicionar políticas inline (passo quatro).

4. Agora clique na guia Permissões -> Adicionar permissões -> Criar política inline para criar uma política inline. As políticas inline geralmente estão associadas diretamente aos usuários e são normalmente usadas para aplicar permissões em situações pontuais.
Por exemplo, sua equipe está migrando um ambiente antigo do EC2 para um novo. Você quer garantir que o administrador da instância antiga do EC2 tenha acesso para iniciar/parar e copiar as configurações do grupo de segurança para a nova instância do EC2.

5. Na página Criar política, clique na guia JSON mostrada abaixo para abrir um editor JSON onde você irá criar uma política.

6. Cole o código (política) abaixo no campo do editor e clique em Revisar política para criar uma política inline. Essa política inline é pré-criada pela AWS ou por um administrador dentro da sua conta da AWS, que você pode usar, personalizar ou editar de acordo com suas necessidades específicas.
Com essa política, os membros do grupo EC2-Admin têm permissão para iniciar ("ec2:StartInstances"
), parar ("ec2:StopInstances"
) e visualizar ("ec2:Describe*"
) as instâncias do EC2. Eles têm permissão (”Effect”: “Allow”
) para realizar ações em todos os recursos ("Resource": "*"
). Essas ações estão relacionadas essencialmente às chamadas programáticas ou de API da AWS.
Os membros do grupo EC2-Admin também têm permissão para visualizar todos os balanceadores de carga elásticos (Action": "elasticloadbalancing:Describe
), listar métricas (cloudwatch:ListMetrics
), obter estatísticas de métricas cloudwatch:GetMetricStatistics
e descrever métricas (cloudwatch:Describe
).
As métricas do CloudWatch são configuradas automaticamente com sua instância EC2, o mesmo se aplica ao serviço de dimensionamento automático (Auto Scaling).

7. Revise o resumo da política e clique em Salvar alterações para salvar a política.

8. Agora, navegue novamente para o seu painel IAM e inicie a criação de um grupo como você fez no passo dois. Mas desta vez, nomeie o Nome do grupo de usuários como EC2-Support.
Role a página para baixo, pesquise por AmazonEC2ReadOnlyAccess na caixa de pesquisa Anexar políticas de permissão para anexar essa política ao grupo (EC2-Support):
AmazonEC2ReadOnlyAccess é uma política gerenciada semelhante a uma política inline, pois também pode ser anexada a vários usuários ou grupos de usuários. Mas, ao contrário da política inline, esse tipo de política criada por administradores é reutilizável e pode ser compartilhada em toda a organização ou com todas as contas da AWS em sua conta.
A managed policy is a shared policy. As a result, all users or groups of users who use the shared policy will have updated permissions automatically when the policy is updated.
Essa funcionalidade de atualização automática torna as políticas gerenciadas mais atraentes do que as políticas inline. Com as políticas inline, cada permissão precisa ser atualizada pelo administrador se a política for alterada.
Marque a opção AmazonEC2ReadOnlyAccess e clique em Criar grupo para finalizar a criação do grupo.

10. Agora, repita os passos oito e nove para criar o grupo S3-Support com uma política gerenciada AmazonS3ReadOnlyAccess. Depois de criar o grupo S3-Support, você terá uma lista de grupos semelhante à abaixo que mostra que cada grupo tem permissões definidas.

Adicionando Usuários aos Seus Grupos Adequados
Você criou os usuários e grupos com permissões definidas. Agora é hora de adicionar os usuários aos seus grupos adequados. Você abrirá a página de resumo de cada grupo e adicionará manualmente um usuário a esse grupo.
A tabela abaixo mostra os grupos adequados nos quais você adicionará cada usuário:
Users | In-group | Permissions |
---|---|---|
user-1 | S3-Support | Read-only access to S3 Bucket |
user-2 | EC2-Support | Read-only access to EC2 Instance |
user-3 | EC2-Admin | Full EC2 Access (View/Start/Stop) |
1. No painel de controle do IAM, vá para a página de Grupos de Usuários e clique no grupo S3-Support mostrado abaixo para acessar a página de resumo do grupo.

2. Em seguida, clique na guia Usuários -> Adicionar usuários para iniciar a adição de usuários ao grupo. Seu navegador será redirecionado para uma página onde você verá uma lista de usuários que ainda não pertencem a nenhum grupo (etapa três).

3. Marque a caixa em frente ao usuário-1, em seguida, clique em Adicionar usuários para adicionar o usuário ao grupo S3-Support. Seu navegador será redirecionado automaticamente para a página de resumo do grupo S3-Support.

Abaixo, você pode ver que o usuário-1 agora faz parte do grupo S3-Support.

4. Repita as etapas um a três para adicionar o usuário-2 e o usuário-3 aos seus respectivos grupos.
5. Por fim, vá para a página de Grupos de Usuários e você verá que os grupos agora têm um usuário cada, como na captura de tela abaixo.

Testando se as Permissões do Usuário estão Funcionando Corretamente
Você criou completamente usuários em seus próprios grupos com permissões definidas. Mas como saber se estão funcionando corretamente? É hora de verificar se as permissões estão funcionando conforme o planejado, e existem várias maneiras de fazer isso. Uma das maneiras mais comuns é usar o Console de Gerenciamento da AWS baseado na web.
1. Acesse o painel do IAM e copie a URL de login do usuário do IAM no painel direito, como mostrado abaixo.

2. No seu navegador, acesse a URL de login que você anotou anteriormente (etapa um) e faça login com as credenciais do usuário-1. Google Chrome e Firefox são os navegadores mais recomendados para essa tarefa.

3. Digite S3 na caixa de pesquisa e clique no link S3 abaixo para acessar a página de Buckets do Amazon S3.

4. Agora, clique em Criar bucket para iniciar a criação de um bucket do S3.

5. Insira um nome para o bucket na seção de configuração geral e clique em Criar bucket para tentar criar um bucket do S3.


Se você se lembrar, você atribuiu a política AmazonS3ReadOnlyAccess ao usuário-1, o que dá apenas permissão de leitura para visualizar buckets do S3. Como resultado, se o usuário-1 tentar criar, excluir ou atualizar um bucket do S3, a mensagem de erro mostrada abaixo será exibida.
A mensagem de erro abaixo indica que a permissão que você definiu para o usuário-1 está funcionando corretamente.

Observe que o usuário-1 também não possui permissões do EC2. Portanto, para verificação dupla, acesse seu painel do EC2 e você receberá muitos erros de API que aparecem como na captura de tela abaixo.
Você recebe esses erros por causa do princípio do menor privilégio (PoLP). PoLP é o conceito de que qualquer conta de usuário ou processo do sistema operacional deve ter o mínimo absoluto de privilégios necessários para concluir um trabalho.

6. Agora, faça logout do usuário-1 e faça login como usuário-2 e acesse o painel do EC2.

7. Clique em qualquer instância do EC2 em execução para visualizar as permissões do usuário-2. Como mostrado abaixo, você obterá informações sobre a instância, como ID da instância, endereço IPv4 público, e assim por diante.

8. Clique no estado da instância na parte mais à direita da página e escolha a opção Parar instância, Reiniciar instância ou Terminar instância para testar se a permissão do usuário-2 funciona.

Lembre-se de que o usuário-2 possui apenas acesso de leitura para as instâncias do EC2 (AmazonEC2ReadOnlyAccess). Portanto, se um usuário tentar manipular uma instância do EC2, a mensagem de erro abaixo será exibida.
Receber a mensagem de erro abaixo indica que a permissão do usuário-2 está funcionando corretamente.

9. Por fim, faça logout do usuário-2 e faça login como usuário-3 e tente manipular qualquer instância do EC2 em execução em sua conta. Como o usuário-3 possui permissão total do EC2, você pode iniciar, parar ou terminar uma instância sem receber uma mensagem de erro.
Conclusão
Ao longo deste tutorial, você aprendeu como criar usuários IAM e grupos de usuários com políticas definidas. Você também aprendeu como verificar se as permissões estão funcionando conforme o pretendido, tentando alterar o estado de uma instância EC2 e tentando criar um bucket S3.
Neste ponto, você agora tem sua configuração básica para usuários e grupos IAM gerenciarem as permissões do usuário. Claro, você sempre pode adicionar mais usuários à sua conta e aplicar mais políticas conforme necessário.
Agora, qual é o próximo passo para construir com base no seu conhecimento recém-adquirido? Talvez você possa explorar a configuração de seus serviços EC2 em Auto-Scaling para trabalhar com o IAM.