SEC02-BP02 Usar credenciais temporárias
Ao realizar qualquer tipo de autenticação, é melhor utilizar credenciais temporárias em vez de credenciais de longo prazo a fim de reduzir ou eliminar riscos, como credenciais que são divulgadas acidentalmente, compartilhadas ou roubadas.
Resultado desejado: para reduzir o risco de credenciais de longo prazo, use credenciais temporárias sempre que possível para identidades humanas e de máquina. Credenciais de longo prazo criam muitos riscos, por exemplo, é possível fazer upload delas em código para repositórios públicos do GitHub. Ao utilizar credenciais temporárias, você reduz significativamente as chances de comprometimento das credenciais.
Antipadrões comuns:
-
Desenvolvedores que usam chaves de acesso de longo prazo de IAM users em vez de obter credenciais temporárias da CLI usando federação.
-
Desenvolvedores que incorporam chaves de acesso de longo prazo no código e fazem upload desse código para repositórios públicos do Git.
-
Desenvolvedores que incorporam chaves de acesso de longo prazo em aplicações móveis que, depois, são disponibilizadas em lojas de aplicações.
-
Usuários que compartilham chaves de acesso de longo prazo com outros usuários ou funcionários que deixam a empresa e não devolvem as chaves de acesso de longo prazo.
-
Utilizar chaves de acesso de longo prazo para identidades de máquina quando é possível usar credenciais temporárias.
Nível de exposição a riscos quando esta prática recomendada não é estabelecida: alto
Orientação de implementação
Utilize credenciais de segurança temporárias em vez de credenciais de longo prazo para todas as solicitações da AWS CLI e API. As solicitações de API e CLI para serviços da AWS devem, em quase todos os casos, ser assinadas com chaves de acesso da AWS. Essas solicitações podem ser assinadas com credenciais temporárias ou de longo prazo. A única vez que você deve usar credenciais de longo prazo, também conhecidas como chaves de acesso de longo prazo, é se você estiver utilizando um usuário do IAM ou o usuário raiz da Conta da AWS. Quando você usa federação na AWS ou assume um perfil do IAM por outros métodos, são geradas credenciais temporárias. Mesmo quando você acessa o AWS Management Console utilizando credenciais de login, credenciais temporárias são geradas para você fazer chamadas para serviços da AWS. Há poucas situações nas quais você precisa de credenciais de longo prazo, e é possível realizar quase todas as tarefas usando credenciais temporárias.
Evitar o uso de credenciais de longo prazo em favor de credenciais temporárias deve andar lado a lado com uma estratégia de reduzir o uso de usuários do IAM em favor da federação e de perfis do IAM. Embora usuários do IAM tenham sido usados para identidades humanas e de máquina no passado, agora recomendamos não utilizá-los para evitar os riscos de utilizar chaves de acesso de longo prazo.
Etapas da implementação
Para identidades humanas, como funcionários, administradores, desenvolvedores, operadores e clientes:
-
Você deve contar com um provedor de identidades centralizado e exigir que usuários humanos usem federação com um provedor de identidades para acessar a AWS utilizando credenciais temporárias. A federação para seus usuários pode ser realizada com federação direta para cada Conta da AWS
ou usando o AWS IAM Identity Center (sucessor do AWS IAM Identity Center) e o provedor de identidades de sua escolha. A federação oferece uma série de vantagens em comparação com a utilização de usuários do IAM além de eliminar credenciais de longo prazo. Seus usuários também podem solicitar credenciais temporárias da linha de comando para federação direta ou utilizando o IAM Identity Center. Isso significa que há poucos casos de uso que exigem usuários do IAM ou credenciais de longo prazo para seus usuários. -
Ao conceder acesso a recursos em sua Conta da AWS a terceiros, como provedores de software como serviço (SaaS), você pode utilizar perfis entre contas e políticas baseadas em recursos.
-
Se você precisar conceder a aplicações de consumidores ou clientes acesso aos seus recursos da AWS, você pode utilizar grupos de identidade do Amazon Cognito ou Amazon Cognito user pools para fornecer credenciais temporárias. As permissões para as credenciais são configuradas por meio de perfis do IAM. Você também pode definir um perfil do IAM separado com permissões limitadas para usuários convidados que não são autenticados.
Para identidades de máquina, talvez seja necessário utilizar credenciais de longo prazo. Nesses casos, você deve exigir que as workloads utilizem credenciais temporárias com perfis da IAM para acessar a AWS.
-
Para Amazon Elastic Compute Cloud
(Amazon EC2), é possível usar perfis do Amazon EC2.
-
O AWS Lambda
permite configurar um perfil de execução do Lambda para conceder permissões de serviço a fim de executar ações da AWS usando credenciais temporárias. Há muitos outros modelos semelhantes para os serviços da AWS concederem credenciais temporárias utilizando perfis do IAM. -
Para serviços de IoT, é possível usar o provedor de credenciais de AWS IoT Core para solicitar credenciais temporárias.
-
Para sistemas on-premises ou sistemas executados fora da AWS que precisem acessar os recursos da AWS, é possível utilizar o IAM Roles Anywhere.
Há cenários em que credenciais temporárias não são uma opção e talvez seja necessário usar credenciais de longo prazo. Nessas situações, faça auditoria e alterne as credenciais periodicamente e alterne as chaves de acesso regularmente para casos de uso que exijam credenciais de longo prazo. Alguns exemplos que podem exigir credenciais de longo prazo incluem plug-ins do WordPress e clientes da AWS de terceiros. Em situações em que você precisa utilizar credenciais de longo prazo ou para credenciais que não sejam chaves de acesso da AWS, como logins de banco de dados, é possível usar um serviço projetado para lidar com o gerenciamento de segredos, como AWS Secrets Manager
Recursos
Práticas recomendadas relacionadas:
Documentos relacionados:
Vídeos relacionados: