Ir para o conteúdo principal

Criar IAM Role Cross-Account

·971 palavras·5 minutos
aws ec2 iam role
Alfredo Castro
Autor
Alfredo Castro
AWS Solutions Architect | AWS x3 | LPI x2 | CompTIA Linux+
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) #

Acesse a console AWS e procure pelo serviço “IAM”.

No menu lateral a esquerda, clique em “Users”.

IMAGEM 01

Clique em “Create user”.

IMAGEM 02

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

IMAGEM 03

Nesta etapa, definimos as permissões para o usuário. Por enquanto, não iremos atribuir nenhuma permissão, apenas clique em “Next”.

IMAGEM 04

Revise as informações e clique em “Create user”.

IMAGEM 05

Salve as informações de acesso e clique em “Return to users list”.

IMAGEM 06

Na tela de “Users”, podemos ver o nosso usuário recém criado.

IMAGEM 07

Etapa 02 - Criar a IAM Role (Conta B) #

Acesse a console AWS e procure pelo serviço “IAM”.

No menu lateral a esquerda, clique em “Roles”.

IMAGEM 01

Clique em “Create role”.

IMAGEM 02

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

IMAGEM 03

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

IMAGEM 04

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

IMAGEM 05

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

IMAGEM 06

Clique nos dois quadradinhos para copiar o ARN da Role.

IMAGEM 07

Etapa 03 - Conceder acesso a Role da conta B via Inline Policy (Conta A) #

Acesse a console AWS e procure pelo serviço “IAM”.

No menu lateral a esquerda, clique em “Users”.

IMAGEM 01

Clique no usuário criado na etapa 01.

IMAGEM 02

Clique em “Add permissions” e em seguida clique em “Create inline policy”.

IMAGEM 03

Clique em “JSON” para alternar o Policy editor.

IMAGEM 04

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"
  }
}

IMAGEM 05

Defina um nome para a Policy, revise as informações e clique em “Create policy”.

IMAGEM 06

Nesta tela podemos ver a Policy definida para o nosso usuário.

IMAGEM 07

Etapa 04 - Executando o Switch role para trocar de conta (Conta A) #

Acesse a URL de login da Console Web da AWS.

Selecione “IAM user”, digite o Account ID de 12 dígitos da conta A. Em seguida, clique em “Next”.

IMAGEM 01

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

IMAGEM 02

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.

Com o Console logado na conta A, clique no nome do usuário no canto superior direito.

IMAGEM 03

Clique em “Switch role”.

IMAGEM 04

Clique em “Switch role”.

IMAGEM 05

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

IMAGEM 06

No canto superior direito da Console Web, podemos ver que assumimos a Role CrossAccount-RoleEC2 da conta B.

IMAGEM 07

Etapa 05 - Testando as permissões (Conta B) #

Após assumirmos a Role “CrossAccount-RoleEC2” da conta B, procure pelo serviço “EC2”.

IMAGEM 01

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.

Agora procure pelo serviço “S3”.

IMAGEM 02

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 entrar em contato.