Guia útil para IAM na AWS através de exemplos

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.

Logging in to the AWS console

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.

Searching for IAM service

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.

Previewing the global option

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.

Adding a new user

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.
Setting the username and password

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

Skipping setting permissions

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

Skipping settings tags

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

Creating a new user

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

Previewing the Success screen

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

Opening your user-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.

Previewing the new user’s (user-1) permissions
Previewing the new user’s (user-1) group

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.

Previewing the user-1 security credentials

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.

Previewing the user-1 Access Advisor

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.

Previewing lists of users (user-1, user-2, and user-3)

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.

Provide a User group name (EC2-Admin)

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

Creating a new group

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).

Showing successful group creation notification

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).

Previewing the EC2-Admin group

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.

Creating a policy for EC-Admin group.

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.

Accessing the policy editor

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).

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Action": [
				"ec2:Describe*",
				"ec2:StartInstances",
				"ec2:StopInstances"
			],
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": "elasticloadbalancing:Describe",
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": [
				"cloudwatch:ListMetrics",
				"cloudwatch:GetMetricStatistics",
				"cloudwatch:Describe"
			],
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": "autoscaling:Describe",
			"Resource": "*",
			"Effect": "Allow"
		}
	]
}
Editing your JSON file for policy

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

Saving your policy

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.

Setting up the AmazonEC2ReadOnlyAccess policy

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.

Previewing the groups

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.

Accessing the S3-Support group.

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).

Accessing the list of users to add to the S3-Support group.

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.

Adding a user (user-1) to the S3-Support group

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

user-1 is now a part of the S3-Support group

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.

Verifying the groups now have one user each

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.

Noting the IAM user sign-in URL

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.

Signing in as user-1

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

Accessing the S3 bucket

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

Creating an S3 bucket

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.

Adding an S3 Bucket Name
Attempting to create an S3 Bucket

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.

Testing if user-1 permission is working

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.

Viewing the EC2 dashboard

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

Previewing the EC2 dashboard

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.

Previewing running EC2 instance

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.

Stopping/starting/ terminating an EC2 instance

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.

Previewing the error message.

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.

Source:
https://adamtheautomator.com/iam-aws/