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áquinas. 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.
Práticas comuns que devem ser evitadas:
-
Desenvolvedores que usam chaves de acesso de longo prazo de usuários do IAM 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 risco exposto se esta prática recomendada não for estabelecida: Alto
Orientação para implementação
Utilize credenciais de segurança temporárias em vez de credenciais de longo prazo para todas as solicitações à AWS API e CLI. As solicitações de API e CLI para serviços da AWS devem, em quase todos os casos, ser assinadas usando chaves de acesso da AWS. Essas solicitações podem ser assinadas com credenciais temporárias ou de longo prazo. A única vez em que você deve usar credenciais de longo prazo, também conhecidas como chaves de acesso de longo prazo, é se estiver usando um usuário do IAM ou o usuário-raiz da Conta da AWS. Quando você se federa à AWS ou assume um perfil do IAM por meio de outros métodos, credenciais temporárias são geradas. 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 de implementação
Para identidades humanas, como funcionários, administradores, desenvolvedores, operadores e clientes:
-
Recomenda-se confiar em um provedor de identidade centralizado e exigir que os usuários humanos usem federação com um provedor de identidades para acessar a AWS usando credenciais temporárias. A federação para seus usuários pode ser feita com federação direta para cada Conta da AWS
ou usando o AWS IAM Identity Center e um provedor de identidades escolhido por você. A federação oferece uma série de vantagens em comparação com a utilização de usuários do IAM que vão além de eliminar credenciais de longo prazo. Seus usuários também podem solicitar credenciais temporárias na linha de comando para federação direta ou usando o Centro de Identidade do IAM. 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 a terceiros, como provedores de software como serviço (SaaS), acesso aos recursos em sua Conta da AWS, você pode usar funções entre contas e políticas baseadas em recursos.
-
Se precisar conceder às aplicações para consumidores ou clientes acesso aos seus recursos da AWS, você pode usar bancos de identidades do Amazon Cognito ou grupos de usuários do Amazon Cognito 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, exija que as workloads usem credenciais temporárias com perfis do IAM para acessar a AWS.
-
Para o Amazon Elastic Compute Cloud
(Amazon EC2), é possível usar perfis para o Amazon EC2.
-
O AWS Lambda
permite configurar um perfil de execução do Lambda para conceder ao serviço permissões para realizar ações 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 dispositivos de IoT, você pode usar o provedor de credenciais do AWS IoT Core para solicitar credenciais temporárias.
-
Para sistemas on-premises ou sistemas que funcionam fora da AWS e que precisam de acesso a recursos da AWS, é possível usar 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, audite e alterne as credenciais periodicamente e alterne as chaves de acesso regularmente para casos de uso que exigem 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 usar credenciais de longo prazo, ou para credenciais que não sejam chaves de acesso da AWS, como logins de bancos de dados, é possível usar um serviço projetado para lidar com o gerenciamento de segredos, como o AWS Secrets Manager
Recursos
Práticas recomendadas relacionadas:
Documentos relacionados:
Vídeos relacionados: