O blog da AWS
Como rotacionar chaves de acesso para usuários do IAM
Para rotacionar as chaves de acesso, você deve seguir estes passos:
- Crie uma segunda chave de acesso além da que está em uso.
- Atualize todas s suas aplicações para usar a nova chave de acesso e confirme se as aplicações estão funcionando.
- Altere o estado da chave de acesso anterior para inativo.
- Confirme se suas aplicações ainda estão funcionando conforme o esperado.
- Exclua a chave de acesso inativa.
Exemplo de rotação de chave
Aqui está um exemplo das etapas de rotação de chaves listadas acima. Você é um usuário administrativo do IAM e usará a AWS Command Line Interface (CLI) para rotacionar as chaves de acesso para um único usuário, Alice. A CLI usa APIs do IAM, portanto, as mesmas etapas podem ser executadas programaticamente por meio do AWS SDK ou usando a interface web do console de gerenciamento do IAM, como mostramos em uma postagem anterior. Como as chaves são consideradas informações confidenciais, você deve executar todos esses comandos apenas em um computador confiável.
Após instalar a CLI, execute o seguinte comando para ver quais são as chaves de acesso da Alice:
aws iam list-access-keys --user-name Alice
O comando irá retornar algo assim:
{ "AccessKeyMetadata": [ { "UserName": "Alice", "Status": "Active", "CreateDate": "2013-04-03T18:49:57Z", "AccessKeyId": "AKIAI44QH8DHBEXAMPLE" } ] }
Passo 1: criar uma segunda chave de acesso
Crie uma nova (segunda) chave de acesso para Alice usando este comando:
aws iam create-access-key --user-name Alice
Isso retorna:
{ "AccessKey": { "UserName": "Alice", "Status": "Active", "CreateDate": "2013-09-06T17:09:10.384Z", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", "AccessKeyId": “AKIAIOSFODNN7EXAMPLE" } }
Observe que os comandos AWS IAM usam identificadores de chave de acesso exclusivos (AKIDs) para se referir a chaves de acesso individuais. Você pode usar os AKIDs para identificar e gerenciar as chaves de acesso que seu aplicativo usa. A criação da chave é o único momento em que a AWS expõe o segredo associado à chave de acesso em texto não cifrado. Grave e armazene ele com segurança.
Agora Alice tem duas chaves de acesso ativas. Observe que a AWS permite apenas duas chaves por usuário. Se você já possui duas chaves de acesso ativas, não poderá criar uma terceira.
Listar as chaves usando o comando list-access-keys mostra ambas as chaves:
aws iam list-access-keys --user-name Alice
{ "AccessKeyMetadata": [ { "UserName": "Alice", "Status": "Active", "CreateDate": "2013-04-03T18:49:57Z", "AccessKeyId": "AKIAI44QH8DHBEXAMPLE" }, { "UserName": "Alice", "Status": "Active", "CreateDate": "2013-09-06T17:09:10.384Z", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" } ] }
Passo 2: Distribua sua chave de acesso para todas as instâncias de seus aplicativos
Depois de criar a nova chave, você irá distribuir e configurar sua aplicação a fazer a transição para usá-la. Antes de passar para a próxima etapa, se certifique de que todas as instâncias de sua aplicação estejam realmente usando a nova chave e que estejam funcionando corretamente.
Passo 3: altere o estado da chave de acesso anterior para inativo.
Desative a chave de acesso antiga usando este comando:
aws iam update-access-key --access-key-id AKIAI44QH8DHBEXAMPLE --status Inactive --user-name Alice
Para verificar se a chave foi desativada, use este comando para listar as chaves ativas e inativas de Alice:
aws iam list-access-keys --user-name Alice
Você verá algo assim:
{ "AccessKeyMetadata": [ { "UserName": "Alice", "Status": "Inactive", "CreateDate": "2013-04-03T18:49:57Z", "AccessKeyId": "AKIAI44QH8DHBEXAMPLE" }, { "UserName": "Alice", "Status": "Active", "CreateDate": "2013-09-06T17:09:10.384Z", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" } ] }
Passo 4: Validar se sua aplicação ainda está funcionando conforme o esperado
Depois que a chave for marcada como inativa, ela não poderá ser usada para autenticar chamadas de API de serviço da AWS; portanto, você deve verificar neste ponto se sua aplicação ainda funciona. É por isso que desativamos a chave de acesso antiga primeiro, se algo der errado, você pode reativar rapidamente a chave de acesso anterior usando o comando aws iam update-access-key.
Passo 5: exclua a chave de acesso inativa
A última etapa é excluir a chave de acesso inativa usando este comando:
aws iam delete-access-key --access-key-id AKIAI44QH8DHBEXAMPLE --user-name Alice
Observe que a ação de exclusão – ao contrário de desabilitar a chave de acesso – é uma operação irreversível. Após a exclusão, a chave de acesso não estará mais disponível. Você pode listar as chaves de acesso de Alice novamente para confirmar que removeu a chave de acesso antiga:
aws iam list-access-keys --user-name Alice
A chave de acesso antiga desapareceu dos resultados:
{ "AccessKeyMetadata": [ { "UserName": "Alice", "Status": "Active", "CreateDate": "2013-09-06T17:09:10.384Z", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" } ] }
Conclusão:
Se você estiver usando instâncias do EC2, recomendamos o uso de roles para EC2 para rotacionar automaticamente as chaves de acesso. Se você não estiver usando o EC2, sugerimos alternar manualmente as chaves periodicamente como uma prática recomendada de segurança. Para obter mais informações sobre chaves de acesso e procedimentos de rotação, visite a documentação do AWS IAM.
– Ben
Este artigo foi traduzido do Blog da AWS em Inglês.
Sobre o autor
Ben Brauer, autor do blog.
Revisores
Ricardo Makino atualmente é arquiteto de soluções na AWS apoiando os clientes de governo em sua jornada para a nuvem, possui mais de 20 anos de experiência em TI onde já passou pelos setores de governo, educação e pesquisa atuando como administrador de redes e sistemas, analista de segurança da informação, pesquisador de segurança da informação e especialista em nuvem, e esteve envolvido em diversos projetos de tecnologias de orquestração de infraestrutura e plataforma, otimização de aplicações, migrações, segurança de redes e aplicações e outros.
Carolina Carneiro atua como Technical Trainer na AWS. Ministra treinamentos de Segurança, Machine Learning, Arquitetura, Operação de Sistemas, dentre outros. Iniciou a sua jornada na nuvem da AWS em 2020 fazendo parte do Programa Tech U, um programa de capacitação na nuvem da AWS. Após o Tech U, iniciou a sua jornada no time de Training and Certification LATAM, o qual teve a oportunidade de se aprofundar em tópicos como Segurança e Machine Learning. Hoje busca ensinar AWS de maneira acessível e engajada.