A Amazon Web Services (AWS) oferece uma ampla variedade de serviços e recursos poderosos para atender às necessidades de organizações em todo o mundo. No entanto, garantir que esses recursos estejam seguros e acessíveis apenas para as partes autorizadas é essencial. Para alcançar esse equilíbrio entre segurança e acessibilidade, a AWS fornece um mecanismo chamado IAM (Identity and Access Management), que permite definir e gerenciar permissões para usuários, grupos e recursos de maneira granular.
É uma prática recomendada pela AWS a utilização de várias contas para aprimorar a segurança, eficiência, controle de recursos e a segregação de ambientes.
Neste tutorial, abordaremos um cenário comum: a necessidade de conceder acesso a recursos da AWS em uma conta de destino a partir de uma conta de origem diferente. Isso é conhecido como "IAM Role Cross-Account". Essa configuração é útil em casos como compartilhamento de recursos entre equipes, ambientes de desenvolvimento e produção separados ou até mesmo entre organizações diferentes que colaboram na AWS.
Pré-requisito:
- Duas contas AWS, a conta A (origem - conta que requer acesso à conta de destino) será nossa conta principal onde iremos criar o usuário (IAM User) e a conta B (destino - conta com os recursos aos quais você deseja acessar) será a conta onde iremos criar a função (IAM Role) para que o nosso usuário da conta A assuma e tenha as permissões necessárias para administrar a conta B.
Etapa 01 - Criar o usuário (Conta A)
1) Acesse a console AWS e procure pelo serviço "IAM".
2) No menu lateral a esquerda, clique em "Users".
3) Clique em "Create user".
4) Defina um username para o usuário, marque a opção "Provide user access to the AWS Management Console" para que o usuário tenha acesso via Console Web da AWS, marque a opção "I want to create an IAM user" para criar um usuário IAM. Se você deseja especificar uma senha personalizada, marque a opção "Custom password" e digite a senha. Por último, se desejar que o usuário redefina a senha assim que acessar o console, marque a opção "Users must create a new password at next sign-in" e clique em "Next".
5) Nesta etapa, definimos as permissões para o usuário. Por enquanto, não iremos atribuir nenhuma permissão, apenas clique em "Next.
6) Revise as informações e clique em "Create user".
7) Salve as informações de acesso e clique em "Return to users list".
8) Na tela de "Users", podemos ver o nosso usuário recém criado.
Etapa 02 - Criar a IAM Role (Conta B)
1) Acesse a console AWS e procure pelo serviço "IAM".
2) No menu lateral a esquerda, clique em "Roles".
3) Clique em "Create role".
4) Marque a entidade confiável como "AWS account", marque a opção "Another AWS account" e digite o Account ID de 12 digitos da conta A (você consegue visualizar o Account ID no passo 8 da etapa anterior), em seguida clique em "Next".
5) Selecione as permissões que deseja conceder ao usuário da conta A. Neste exemplo, estamos concedendo a permissão "AmazonEC2FullAccess". O usuário da conta A que criamos terá permissão total para acessar os recursos EC2 na conta B. Em seguida, clique em "Next".
6) Defina um nome para a Role, revise as informações da entidade confiável (garanta que esteja com o Account ID da conta A) e as permissões corretas. Em seguida, clique em "Create role".
7) Na tela de "Roles", podemos ver a nossa Role recém criado, clique nela para podermos copiar o ARN (iremos utilizar para a próxima etapa).
8) Clique nos dois quadradinhos para copiar o ARN da Role.
Etapa 03 - Conceder acesso a Role da conta B via Inline Policy (Conta A)
1) Acesse a console AWS e procure pelo serviço "IAM".
2) No menu lateral a esquerda, clique em "Users".
3) Clique no usuário criado na etapa 01.
4) Clique em "Add permissions" e em seguida clique em "Create inline policy".
5) Clique em "JSON" para alternar o Policy editor.
6) Adicione o seguinte JSON alterando o "Resource" para o ARN da Role criada na etapa 02. Em seguida, clique em "Next".
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::XXXXXXXXXXXX:role/CrossAccount-RoleEC2"
}
}
7) Defina um nome para a Policy, revise as informações e clique em "Create policy".
8) Nesta tela podemos ver a Policy definida para o nosso usuário.
Etapa 04 - Executando o Switch role para trocar de conta (Conta A)
1) Acesse a URL de login da Console Web da AWS
2) Selecione "IAM user", digite o Account ID de 12 dígitos da conta A. Em seguida, clique em "Next".
3) Confirme o Account ID da conta A, digite o username do usuário criado na etapa 01 e a senha que você definiu. Em seguida, clique em "Sign in".
(Obs: Caso tenha marcado a opção de redefinir a senha no primeiro login, a AWS irá solicitar que você defina uma nova senha para continuar, digite a nova senha e avance para o próximo passo).
4) Com o Console logado na conta A, clique no nome do usuário no canto superior direito.
5) Clique em "Switch role".
6) Clique em "Switch role".
7) No campo "Account" digite o Account ID da conta B, no campo "Role" digite o nome da Role criada na etapa 02. Em seguida, clique em "Switch role".
8) No canto superior direito da Console Web, podemos ver que assumimos a Role CrossAccount-RoleEC2 da conta B.
Etapa 05 - Testando as permissões (Conta B)
1) Após assumirmos a Role "CrossAccount-RoleEC2" da conta B, procure pelo serviço "EC2".
(Obs: na imagem podemos ver que estamos com acesso a todas as informações do Dashboard do recurso EC2, se desejar, crie uma instância EC2 para testar a permissão)
2) Agora procure pelo serviço "S3".
(Obs: na imagem podemos ver imediatamente o erro "You don't have permissions to list buckets", a permissão que concedemos para o usuário foi apenas para o recurso "EC2")
Espero tê-lo ajudado! Se houver alguma dúvida, não hesite em deixar um comentário.
Top comments (0)