Aproveite os Privilégios de Assumir Função do AWS STS para Gerenciar a AWS

Você está enfrentando dificuldades para gerenciar o acesso aos seus recursos da AWS à medida que sua organização cresce? Não se preocupe! O AWS Security Token Service (STS) está aqui para salvar o dia.

Com os privilégios de assumir função do AWS STS, você pode conceder acesso temporário aos seus recursos da AWS a usuários e aplicativos sem a necessidade de credenciais de longo prazo. E neste tutorial, você aprenderá a gerenciar seus recursos de forma mais eficiente, mantendo-os seguros.

Continue lendo e obtenha controle total da sua infraestrutura e recursos da AWS com facilidade!

Pré-requisitos

Este tutorial será uma demonstração prática. Para seguir, certifique-se de ter uma conta AWS com faturamento ativo, mas uma conta no nível gratuito é suficiente.

Criando um Usuário IAM sem Acesso

Antes de poder usar os privilégios de assumir função do AWS STS, você deve primeiro criar um usuário IAM sem permissões atribuídas a ele. Essa ação pode parecer contraditória, mas é crucial, pois os usuários IAM não podem assumir funções diretamente. Eles devem primeiro adquirir credenciais de segurança temporárias ao assumir uma função por meio do serviço AWS STS.

Para criar um usuário IAM sem permissões, siga estas etapas:

1. Abra o seu navegador da web favorito e faça login no Console de Gerenciamento da AWS com a sua conta raiz da AWS.

2. Em seguida, pesquise e selecione IAM na lista de serviços para acessar o console IAM.

Accessing the IAM console

3. No console IAM, vá para Usuários (painel esquerdo) e clique em Adicionar usuário para iniciar a adição de um novo usuário.

Initiating adding a new user

4. Agora, configure os detalhes do usuário abaixo. Essa ação permite que o usuário IAM faça login no Console de Gerenciamento da AWS com seu nome de usuário e senha.

  • Nome do usuário – Forneça um nome para o novo usuário e marque a caixa abaixo para fornecer acesso ao Console de Gerenciamento da AWS.
  • Selecione a opção Eu quero criar um usuário IAM, já que você está criando um usuário IAM.
  • Senha do console – Escolha a opção Senha autogerada para gerar uma senha que você pode alterar posteriormente.

Depois de configurar, clique em Avançar para continuar a criação do usuário IAM.

Configuring the user details

5. Na próxima página, deixe as configurações padrão como estão e clique em Avançar para pular a configuração das permissões do usuário.

Não é necessário atribuir permissões a este usuário, pois você está criando um usuário sem permissões e com acesso ao Console de Gerenciamento da AWS.

Com zero permissões, os usuários são impedidos de tomar medidas até assumirem uma função que conceda as permissões necessárias.

Skipping setting permissions

6. Em seguida, revise os detalhes do usuário configurado e clique em Criar usuário para finalizar a criação do usuário IAM.

Finalizing creating the new IAM user

7. Copie e salve a URL de login e a senha do usuário IAM. Você precisará dessas informações para fazer login com o usuário IAM posteriormente.

Taking note of the IAM user’s sign-in URL and password

8. Agora, retorne ao console IAM, vá para a página de Usuários (painel esquerdo) e clique no nome do usuário recém-criado para acessar sua página Resumo.

Accessing the newly-created user’s summary page

9. Por último, na página Resumo, tome nota do Nome do Recurso Amazon (ARN) do usuário, o identificador exclusivo do usuário. Você precisará deste ARN posteriormente quando atribuir uma função ao usuário.

Noting down the newly-created user’s ARN

Preparando uma Política de Confiança Personalizada

Com um usuário IAM dedicado criado, você está pronto para assumir a função, concedendo acesso aos recursos da AWS. Mas para um usuário IAM assumir uma função, a função deve primeiro confiar no usuário.

Ao criar uma política de confiança personalizada, você estabelecerá uma “relação de confiança” entre o usuário IAM e a função. Essa relação de confiança especifica quais usuários ou contas podem assumir a função e em que condições.

Para preparar uma política de confiança personalizada, siga estas etapas:

1. Navegue até Funções (painel esquerdo) no console IAM e clique em Criar função para iniciar a criação de uma nova função.

Initiating creating a new role

2. Em seguida, clique na opção Política de confiança personalizada para criar uma política personalizada.

Choosing to create a custom trust policy

3. Insira a seguinte política no campo de texto, conforme mostrado abaixo, e clique em Avançar. Substitua SEU_ARN pelo ARN do seu usuário IAM que você anotou na última etapa da seção “Criando um Usuário IAM sem Acesso”.

Abaixo está um exemplo básico de uma política de confiança personalizada que permite a um usuário ou função IAM especificada assumir uma função IAM específica com os seguintes campos:

Field Function
Version Specifies the version of the policy language.
Statement Contains the policy statement(s).
Effect Specifies whether the statement allows or denies access, with Allow, in this case, granting access.
Principal Specifies the entity allowed to assume the role; in this example, it is an empty string.
Action Specifies the action the IAM user or role is allowed to perform. The sts:AssumeRole value allows the user to assume the specified IAM role.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
               "AWS": "YOUR_ARN"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
Creating a custom trust policy

4. Na próxima página, procure e selecione “AmazonEC2FullAccess” na lista de políticas que aparece e clique em Avançar. Essa política concede acesso total a todos os recursos do EC2.

Selecting the AmazonEC2FullAccess policy

5. Em seguida, forneça um nome para sua política de confiança personalizada (ou seja, AWSEC2FULLACCESS).

provide a name for your custom trust policy

6. Mantenha as outras configurações como estão e clique em Criar função para finalizar a criação da função.

Neste ponto, a função deve ser assumível pelo IAM (sts_user). Quando assumida, o usuário terá acesso a todos os recursos do EC2, como listar, criar e excluir instâncias do EC2, etc.

Creating the new role

7. Clique na função recém-criada, como mostrado abaixo, para ver seus detalhes.

Accessing the role’s details

8. Por fim, copie o link para alternar entre funções no console e salve-o. Você precisará desse link mais tarde para alternar entre funções no console quando entrar com o usuário IAM (sts_user).

Copying the link to switch roles in the console

Alternando e Assumindo uma Função com um Usuário IAM

Após criar uma função, você pode agora assumir a função com seu usuário IAM dedicado. Você fará login no console AWS com seu usuário IAM e alternará para a função que você criou para testar o acesso ao EC2.

Para ver como alternar e assumir uma função com um usuário IAM:

1. Navegue até a URL de login que você anotou na etapa sete da seção “Criando um Usuário IAM sem Acesso”, e faça login com a senha do usuário IAM.

?Avoid conflicts with your root account by logging in using a different browser or an incognito window.

Logging into the AWS Management Console with the IAM user

2. Depois de fazer login, navegue até o console da EC2, e você verá muitos erros de API em vermelho, como mostrado abaixo. Esses erros indicam que o usuário IAM não tem permissão para acessar os recursos da EC2.

Para corrigir esses erros, você deve assumir o papel que criou para ser concedido acesso a todos os recursos da EC2 (AWSEC2FULLACCESS) na próxima etapa. Ao assumir um papel na AWS, você temporariamente adquire as permissões associadas a esse papel.

Getting errors due to lack of permissions

3. Abra uma nova aba do navegador, e navegue até o “link para alternar papéis” que você anotou na última etapa da seção “Preparando uma Política de Confiança Personalizada”.

Este link é uma URL especial que o leva diretamente para a página de Alternar Papel no Console de Gerenciamento da AWS. A página Alternar Papel permite que você assuma um papel diferente, um conjunto de permissões que determinam quais recursos da AWS você pode acessar.

4. Agora, forneça um Nome de Exibição descritivo para a sessão, e clique em Alternar Papel para assumir o papel. O nome de exibição ajuda você a manter o controle de suas sessões ativas.

Depois de assumir o papel, seu navegador será redirecionado para o Console de Gerenciamento da AWS com as permissões do papel selecionado.

Switching roles

5. Navegue até o console da EC2 novamente para confirmar que seu usuário IAM recebeu acesso aos recursos da EC2.

Se tudo correr bem, você não verá mais os erros da API que viu anteriormente, pois agora está autenticado com as permissões do papel, incluindo o acesso aos recursos do EC2.

Confirming the IAM user has been successfully granted access to EC2 resources

6. Finalmente, clique no nome de exibição da sua sessão (canto superior direito) e selecione “Voltar para” para retornar ao usuário IAM original.

Você será desconectado da sua sessão atual e conectado como o usuário IAM original, com seu conjunto original de permissões. Essa ação é a prática recomendada para reduzir o risco de realizar ações não intencionais por acidente.

Switching back to the original IAM user

Conclusão

Ao assumir uma função na AWS, você obtém uma funcionalidade poderosa que permite conceder acesso temporário a recursos sem compartilhar suas credenciais permanentes. Ao longo deste tutorial, você aprendeu a aproveitar os privilégios de assumir uma função no AWS STS.

Neste ponto, você pode assumir uma função com confiança, com permissões limitadas, garantindo a segurança de seus recursos e minimizando o impacto potencial de quaisquer ações acidentais ou maliciosas.

A AWS Management Console é uma excelente maneira de começar com os serviços da AWS, como a assunção de funções. Mas que tal tentar assumir uma função via Interface de Linha de Comando da AWS (CLI)? Explorar e integrar a AWS CLI em seus scripts de automação pode oferecer recursos e funcionalidades mais avançados.

Source:
https://adamtheautomator.com/aws-sts-assume-role/