Guia Útil para IAM na AWS com Exemplos

O IAM na AWS pode ser um desafio para usar e entender, especialmente para novos usuários. Mas não se preocupe! Se estiver com dificuldades para entender como o IAM funciona na gestão das permissões de usuário na AWS, veio ao lugar certo para entender o que é possível com o IAM.

Neste tutorial, você aprenderá os conceitos básicos do IAM, percorrendo uma série de exemplos que se complementam.

Pronto? Respire fundo e mergulhe!

Pré-requisitos

Este tutorial será uma demonstração prática. Se quiser acompanhar, certifique-se de ter um PC e uma conta na AWS. Se você não tiver uma conta na AWS, uma conta de nível gratuito 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 diversas finalidades. Mas, neste 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 seu nome de usuário será diferente.

Logging in to the AWS console

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

Searching for IAM service

O IAM é um serviço global, o que indica 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 uma 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 da 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 que os usuários se conectam pertencem.

Previewing the global option

4. No painel do 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 conforme o seguinte:

  • Forneça um nome de usuário no campo Nome de 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, em seguida, clique em Próximo: Permissão.
Setting the username and password

5. Ignorar a configuração de permissões e clicar em Avançar: Tags pois está a criar um utilizador que não tem permissões.

Skipping setting permissions

6. Também ignorar a adição de tags e clicar em Avançar: Revisão.

Skipping settings tags

7. Rever os detalhes do utilizador e clicar em Criar utilizador para finalizar a criação do utilizador.

Creating a new user

Após criar o utilizador, será redirecionado para uma tela de Sucesso como a abaixo.

Previewing the Success screen

8. Agora volte para a página de Utilizadores no seu painel IAM e clique no utilizador recém-criado (utilizador-1) para visualizar as informações do utilizador. Abertura do seu utilizador-1

Opening your user-1

Em seguida, sob a aba de Permissões e Grupos, pode-se observar que o utilizador-1 não possui permissões associadas 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 aba de Credenciais de segurança, serão exibidas diferentes chaves de acesso que o utilizador-1 pode ter. Pode-se carregar uma chave pública SSH nesta aba, o que é ótimo para suas instâncias AWS EC2.

Previewing the user-1 security credentials

A aba de Conselheiro de acesso mostra os serviços que o utilizador-1 acessou, seja diretamente ou através de outros serviços, juntamente com a última vez que o utilizador-1 acessou esse serviço.

Previewing the user-1 Access Advisor

9. Por fim, repita o processo (passos três a sete) para criar mais dois utilizadores (utilizador-2 e utilizador-3). Volte para a página de Utilizadores do seu painel IAM e verá uma lista semelhante à abaixo.

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

Criando os Grupos de Utilizadores

Agora que você criou os usuários, é hora de criar grupos. Você criará grupos usando a política gerenciada pela 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, depois 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

Assim que você criar o novo grupo, receberá a mensagem Grupo de usuários EC2-Admin criado no topo da página, como mostrado abaixo. Seu navegador então redireciona automaticamente para a página Grupos de usuários (passo três).

Showing successful group creation notification

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

Previewing the EC2-Admin group

4. Agora clique na guia Permissões —> Adicionar Permissões —> Criar política embutida para criar uma política embutida. As políticas embutidas geralmente estão associadas diretamente aos usuários e normalmente são usadas para solicitar permissões em situações únicas.

Por exemplo, sua equipe está migrando um ambiente antigo do EC2 para um novo. Você deseja 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ê 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 incorporada. Esta política incorporada é pré-construída pela AWS ou por um administrador dentro de sua conta AWS que você pode usar, personalizar ou editar para atender exatamente às suas necessidades.

Com esta política, os membros do grupo EC2-Admin têm permissão para iniciar ("ec2:StartInstances"), parar ("ec2:StopInstances") e visualizar ("ec2:Describe*") instâncias EC2. Eles têm permissão (”Effect”: “Allow”) para realizar ações em todos os recursos ("Resource": "*"). Essas ações estão vinculadas às chamadas programáticas ou de API da AWS essencialmente.

Os membros do grupo EC2-Admin também têm permissão para visualizar todos os balanceadores de carga elásticos (Ação": "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 EC, e o mesmo se aplica ao serviço de 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. Revisar o resumo da política e clicar 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 fez no passo dois. Mas desta vez, nomeie o Nome do grupo de usuário como Suporte-EC2.

Desça a tela, procure por AmazonEC2ReadOnlyAccess na caixa de pesquisa de Anexar políticas de permissões para anexar essa política ao grupo (Suporte-EC2):

AmazonEC2ReadOnlyAccess é uma política gerenciada semelhante a uma política em linha, pois também pode ser anexada a vários usuários ou grupos de usuários. Mas, ao contrário da política em linha, este tipo de política criada pelos administradores é reutilizável e pode ser compartilhada em toda a sua 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.

Esse recurso de atualização automática torna as políticas gerenciadas mais atraentes do que as políticas em linha. Com políticas em linha, 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 a nove para criar o grupo Suporte-S3 com uma política gerenciada AmazonS3ReadOnlyAccess. Depois de criar o grupo Suporte-S3, 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 onde 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 do seu 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 (passo três).

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

3. Marque a caixa em frente a user-1, depois 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 user-1 agora faz parte do grupo S3-Support.

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

4. Repita os passos um a três para adicionar user-2 e user-3 aos seus grupos adequados.

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 as Permissões do Usuário para Garantir que Funcionem Corretamente

Você criou completamente usuários em seus próprios grupos com permissões definidas. Mas como você sabe se estão funcionando? É hora de verificar se as permissões estão funcionando conforme o esperado, e há várias maneiras de fazer isso. Uma das maneiras mais comuns é usando o Console de Gerenciamento da AWS baseado na web.

1. Vá para o painel do seu IAM e copie a URL de login do usuário IAM no painel direito, conforme mostrado abaixo.

Noting the IAM user sign-in URL

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

Signing in as user-1

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

Accessing the S3 bucket

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

Creating an S3 bucket

5. Insira um nome de bucket na seção de Configuração geral, em seguida, clique em Criar bucket para tentar criar um bucket S3.

Adding an S3 Bucket Name
Attempting to create an S3 Bucket

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

A mensagem de erro abaixo indica que a permissão que você atribuiu ao 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 adicional, acesse o painel do EC2 e você obterá muitos erros de API que aparecerão como na captura de tela abaixo.

Obtém estes erros devido ao princípio da menor permissão (PLP). PLP é o conceito de que qualquer conta de usuário ou processo de sistema operativo deve ter o mínimo absoluto de privilégios necessários para concluir uma tarefa.

Viewing the EC2 dashboard

6. Agora, efetua o logout do utilizador-1 e inicia sessão como utilizador-2, e navega até ao teu painel EC2.

Previewing the EC2 dashboard

7. Clica em qualquer instância EC2 em execução para visualizar as permissões do utilizador-2. Como mostrado abaixo, obterás 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. Clica no estado da instância na parte mais à direita da página e escolhe entre as opções Parar instância, Reiniciar instância ou Terminar instância para testar se as permissões do utilizador-2 funcionam.

Stopping/starting/ terminating an EC2 instance

Lembra-te de que o utilizador-2 apenas tem acesso de leitura para instâncias EC2 (AmazonEC2ReadOnlyAccess). Assim, se um utilizador tentar manipular uma instância EC2, surgirá a mensagem de erro abaixo.

Obter o erro abaixo indica que as permissões do utilizador-2 estão a funcionar corretamente.

Previewing the error message.

9. Por fim, efetua o logout do utilizador-2 e inicia sessão como utilizador-3, tentando manipular quaisquer instâncias EC2 em execução na tua conta. Como o utilizador-3 tem permissão total para EC2, podes iniciar, parar ou terminar uma instância sem receber uma mensagem de erro.

Conclusão

Ao longo deste tutorial, aprendeu a criar utilizadores IAM e grupos de utilizadores com políticas definidas. Também abordou como verificar se as permissões estão a funcionar conforme o pretendido, tentando alterar o estado de uma instância EC2 e tentando criar um bucket S3.

Neste ponto, já tem a sua configuração básica para utilizadores e grupos IAM gerirem as permissões de utilizador. Claro que pode sempre adicionar mais utilizadores à sua conta e aplicar mais políticas conforme necessário.

Agora, qual é o próximo passo para expandir o seu conhecimento recém-adquirido? Talvez investigar a configuração dos seus serviços EC2 em Auto-Scaling para trabalhar com IAM.

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