Está com dificuldades para gerenciar o acesso aos seus recursos da AWS conforme 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 para usuários e aplicativos sem precisar de credenciais de longo prazo. E neste tutorial, você aprenderá a gerenciar seus recursos de forma mais eficiente mantendo-os seguros.
Continue lendo e ganhe controle completo de sua infraestrutura e recursos da AWS com facilidade!
Pré-requisitos
Este tutorial será uma demonstração prática. Para acompanhar, certifique-se de ter uma conta AWS com faturamento ativo habilitado, mas uma conta gratuita é 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. Esta ação pode parecer contraintuitiva, mas é crucial porque os usuários IAM não podem assumir funções diretamente. Eles primeiro devem adquirir credenciais de segurança temporárias assumindo uma função através do serviço AWS STS.
Para criar um usuário IAM sem permissões, siga estes passos:
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, procure e selecione IAM na lista de serviços para acessar o console IAM.

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.

4. Agora, configure os detalhes do usuário abaixo. Esta ação permite que o seu usuário IAM faça login no Console de Gerenciamento da AWS com o nome de usuário e senha.
- Nome do usuário – Forneça um nome para o novo usuário e marque a caixa de seleção abaixo para Fornecer acesso do usuário 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 configurado, clique em Avançar para continuar a criação do usuário IAM.

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 de permissões do usuário.
Não há necessidade de atribuir quaisquer permissões a este usuário, já que você está criando um com zero permissões e acesso ao Console de Gerenciamento da AWS.
Com zero permissões, os usuários são impedidos de tomar qualquer ação até assumirem uma função que lhes conceda as permissões necessárias.

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.

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

8. Agora, volte para o 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 de Resumo.

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

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á um “relacionamento de confiança” entre o usuário IAM e a função. Esse relacionamento 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.

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

3. Insira a seguinte política no campo de texto, conforme mostrado abaixo, e clique em Avançar. Substitua SEU_ARN pelo ARN do usuário IAM que você anotou na última etapa da seção “Criando um Usuário IAM com Acesso Zero”.
Abaixo está um exemplo básico de uma política de confiança personalizada que permite a um usuário ou função IAM especificado 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. |

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.

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

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 assumido, o usuário terá acesso a todos os recursos do EC2, como listar, criar e excluir instâncias do EC2, etc.

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

8. Por fim, copie o link para trocar de funções no console e salve-o. Você precisará deste link posteriormente para trocar de funções no console quando entrar com o usuário IAM (sts_user).

Trocar e Assumir 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 da AWS com seu usuário IAM e alternará para a função que criou para testar o acesso ao EC2.
Para ver como trocar e assumir uma função com um usuário IAM:
1. Navegue até o URL de login que você anotou no passo 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.

2. Depois de fazer login, vá para o console do 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 do EC2.
Para corrigir esses erros, você deve assumir a função que criou para ter acesso a todos os recursos do EC2 (AWSEC2FULLACCESS) no próximo passo. Quando você assume uma função na AWS, temporariamente adquire as permissões associadas a essa função.

3. Abra uma nova aba do navegador e vá para o “link para trocar de função” que você anotou no último passo da seção “Preparando uma Política de Confiança Personalizada”.
Este link é um URL especial que o leva diretamente para a página Trocar de Função no Console de Gerenciamento da AWS. A página Trocar de Função permite que você assuma uma função 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 Trocar de Função para assumir a função. O nome de exibição ajuda você a acompanhar suas sessões ativas.
Depois de assumir a função, seu navegador será redirecionado para o Console de Gerenciamento da AWS com as permissões da função selecionada.

5. Navegue novamente até o console do EC2 para confirmar que seu usuário IAM obteve acesso aos recursos do EC2.
Se tudo correr bem, você não verá mais os erros da API que viu anteriormente, pois agora está logado com as permissões da função, incluindo o acesso aos recursos do EC2.

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 seu usuário IAM original, com seu conjunto original de permissões. Esta ação é a melhor prática para reduzir o risco de executar ações não intencionais.

Conclusão
Ao assumir uma função na AWS, você obtém um recurso poderoso que permite conceder acesso temporário a recursos sem compartilhar suas credenciais permanentes. E 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 permissões limitadas com confiança, 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 assumir 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 fornecer recursos e funcionalidades mais avançados.