Uma Nova Abordagem para Credenciais de Desenvolvimento
Obter credenciais programáticas para desenvolvimento local na AWS agora se tornou mais simples e seguro. A AWS introduziu um novo comando na CLI (Command Line Interface), o aws login, que permite aos desenvolvedores começar a trabalhar imediatamente após criar uma conta, sem precisar gerar e manter chaves de acesso com validade ilimitada. O diferencial é que você utiliza o mesmo método de autenticação já utilizado no Console de Gerenciamento da AWS.
Esta abordagem representa uma mudança importante na forma como a AWS trata a segurança de credenciais locais. Em vez de lidar com chaves estáticas, os desenvolvedores agora recebem credenciais temporárias que são gerenciadas e renovadas automaticamente, reduzindo significativamente o risco de exposição de credenciais de longa duração.
Como Funciona o Acesso Programático
O comando aws login está disponível a partir da AWS CLI versão 2.32.0 ou posterior. Ao executar o comando, ele abre automaticamente seu navegador padrão para autenticação. Dependendo do seu cenário de uso, existem duas formas principais de utilizar este recurso.
Cenário 1: Usando Credenciais IAM (Usuário Root ou IAM)
Para desenvolvedores que autenticam com nome de usuário e senha de uma conta root ou usuário IAM, o fluxo é o seguinte:
Primeiro, instale a versão mais recente da AWS CLI em sua máquina local. Em seguida, execute o comando aws login no terminal.
Se você ainda não configurou uma Região AWS padrão, a CLI solicitará que você escolha uma região de sua preferência (por exemplo, us-east-2, eu-central-1). A configuração é memorizada, então você não precisará inserir novamente na próxima vez.
Após definir a região, a CLI abre seu navegador automaticamente. Se você já estiver autenticado no Console de Gerenciamento da AWS, verá uma opção para continuar com a sessão ativa. Caso contrário, será apresentada a página de opções de autenticação, onde você selecionará “Continuar com usuário Root ou IAM” e fará login em sua conta AWS.
Ao completar o processo, você estará pronto para executar comandos da AWS CLI. Para verificar a identidade atual, você pode executar o comando aws sts get-caller-identity, que confirmará qual usuário ou função você está utilizando.
Cenário 2: Autenticação Federada
Este cenário aplica-se quando sua autenticação passa por um provedor de identidade corporativo. Para obter credenciais programáticas para funções assumidas via federação, você segue os mesmos passos iniciais do primeiro cenário e, em seguida, prossegue com as instruções adicionais.
Se você já estiver autenticado no Console de Gerenciamento da AWS, o navegador oferecerá a opção de selecionar sua sessão IAM ativa proveniente do login federado no console. Caso você tenha ativado o suporte a múltiplas sessões no Console de Gerenciamento, você poderá alternar entre até 5 sessões AWS ativas.
Se você ainda não estiver autenticado no Console de Gerenciamento ou deseja obter credenciais temporárias para uma função IAM diferente, você pode fazer login em sua conta AWS utilizando seu mecanismo de autenticação atual em outra aba do navegador. Após fazer login com sucesso, retorne à aba anterior e clique no botão “Atualizar”. Sua sessão no console agora deve estar disponível nas sessões ativas.
Independentemente do método escolhido, as credenciais temporárias emitidas pelo comando aws login são renovadas automaticamente a cada 15 minutos pela CLI, AWS Tools for PowerShell e pelos SDKs da AWS. Elas permanecem válidas até a duração máxima definida para o principal IAM (máximo de 12 horas). Após atingir esse limite, você será solicitado a fazer login novamente.
Trabalhando com Ferramentas de Desenvolvimento Local
O comando aws login oferece suporte para alternar entre múltiplas contas AWS e funções através de perfis. Você pode configurar um perfil específico executando aws login --profile <PROFILE_NAME> e, posteriormente, executar comandos da AWS utilizando esse perfil com a opção --profile <PROFILE_NAME>.
As credenciais de curta duração geradas pelo aws login funcionam com muito mais do que apenas a CLI. A AWS disponibiliza integração com diversos tipos de ferramentas:
SDKs da AWS: Se você estiver desenvolvendo com os SDKs da AWS, os clientes dos SDK podem autenticar-se utilizando essas credenciais temporárias.
AWS Tools for PowerShell: Utilize o comando Invoke-AWSLogin para autenticar com AWS Tools for PowerShell.
Servidores de Desenvolvimento Remoto: Use aws login --remote em um servidor remoto sem acesso a navegador. Isso entrega credenciais temporárias do seu dispositivo com acesso a navegador para o console da AWS.
SDKs Mais Antigos: Se você estiver usando versões anteriores dos SDKs da AWS que não suportam o novo provedor de credenciais do console, você ainda pode usar as credenciais do aws login através do provedor credential_process com a CLI.
Controle de Acesso por Meio de Políticas IAM
O comando aws login é controlado por duas ações IAM específicas: signin:AuthorizeOAuth2Access e signin:CreateOAuth2Token. Para permitir que usuários IAM e funções IAM com acesso ao console utilizem este recurso, você pode usar a política gerenciada SignInLocalDevelopmentAccess ou adicionar essas ações às suas políticas IAM customizadas.
Clientes que utilizam AWS Organizations e desejam controlar o uso dessa funcionalidade em contas membros podem negar essas duas ações através de Políticas de Controle de Serviço (SCPs). Essas ações IAM e seus recursos podem ser utilizados em todas as políticas IAM relevantes.
A AWS recomenda que clientes empresariais utilizem gerenciamento centralizado de acesso root através do AWS Organizations para eliminar credenciais root de longa duração das contas membros. Esse modelo permite que equipes de segurança executem tarefas privilegiadas através de sessões root de curta duração e escopo específico da conta de gerenciamento central. Após habilitar essa funcionalidade e deletar as credenciais root das contas membros, o login programático com credenciais root via aws login também será bloqueado automaticamente.
Para desenvolvedores que utilizam credenciais root ou usuários IAM, o aws login oferece uma alternativa segura às tradicionais chaves de acesso estáticas, entregando credenciais de vida útil muito reduzida diretamente às ferramentas de desenvolvimento.
Auditoria e Segurança do Acesso Programático
Os eventos de login relacionados ao aws login são registrados através do AWS CloudTrail, que agora inclui dois novos tipos de evento específicos para esse comando. O serviço registra eventos com os nomes AuthorizeOAuth2Access e CreateOAuth2Token na Região AWS onde o usuário realiza o login.
Quando um desenvolvedor executa aws login, o CloudTrail captura eventos estruturados contendo informações de identidade, timestamps, endereço IP de origem, agente de usuário e detalhes de TLS. Esses registros fornecem à equipe de segurança uma visibilidade completa sobre quem está obtendo credenciais, quando está obtendo, e de onde, facilitando auditorias de conformidade e investigações de segurança.
O fluxo de autorização utiliza o padrão OAuth 2.0 com PKCE (Proof Key for Code Exchange) para proteger contra ataques de interceptação de código de autorização. Esse modelo oferece uma alternativa significativamente mais segura em comparação com a configuração tradicional de chaves de acesso IAM para começar o desenvolvimento na AWS.
Próximos Passos e Recomendações
O recurso de login para desenvolvimento local na AWS representa uma melhoria importante na postura de segurança padrão, ajudando clientes a eliminarem o uso de credenciais de longa duração para acesso programático. Com o aws login, desenvolvedores podem começar a trabalhar imediatamente utilizando as mesmas credenciais que usam para acessar o Console de Gerenciamento.
O comando está disponível em todas as Regiões AWS comerciais (com exceção da China e GovCloud) sem custos adicionais para clientes. Para informações mais detalhadas sobre como implementar e configurar, consulte a documentação da CLI. Adicionalmente, recomenda-se a leitura sobre abordagens modernas de autenticação para a AWS além das chaves de acesso IAM, que exploram outras estratégias de segurança complementares.
Fonte
Simplified developer access to AWS with ‘aws login’ (https://aws.amazon.com/blogs/security/simplified-developer-access-to-aws-with-aws-login/)
Leave a Reply