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, como exposição por meio de uploads para repositórios públicos. 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
Identidades humanas
Para identidades da força de trabalho, como funcionários, administradores, desenvolvedores e operadores:
-
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 os usuários pode ser feita com federação direta para cada Conta da AWS
ou usando o Centro de Identidade do AWS IAM 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.
Para identidades de terceiros:
-
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. Além disso, você pode usar o fluxo de credenciais de concessão do Amazon Cognito OAuth 2.0 para clientes ou parceiros de SaaS B2B.
Identidades de usuários que acessam os recursos da AWS por meio de um navegador da web, aplicações-cliente, aplicativos móveis ou ferramentas interativas de linha de comandos:
-
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 dos perfis do IAM. Você também pode definir uma função do IAM separada com permissões limitadas para usuários convidados que não são autenticados.
Identidades de máquina
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 compatíveis, o que exige o uso de credenciais de longo prazo. Nessas situações, audite e alterne essas credenciais periodicamente e alterne as chaves de acesso regularmente. Para chaves de acesso de usuário do IAM altamente restritas, considere as seguintes medidas de segurança adicionais:
-
Conceda permissões altamente restritas:
-
Siga o princípio do privilégio mínimo (seja específico sobre ações, recursos e condições).
-
Considere conceder ao usuário do IAM somente a operação AssumeRole para uma função específica. Dependendo da arquitetura on-premises, essa abordagem ajuda a isolar e proteger as credenciais de longo prazo do IAM.
-
-
Limite as fontes de rede e os endereços IP permitidos na política de confiança do perfil do IAM.
-
Monitore o uso e configure alertas para permissões não utilizadas ou uso indevido (usando filtros métricos e alarmes do AWS CloudWatch Logs).
-
Imponha limites de permissão (políticas de controle de serviço (SCPs) e limites de permissão se complementam — os SCPs são granulares, enquanto os limites de permissão são refinados).
-
Implemente um processo para provisionar e armazenar com segurança (em um cofre on-premises) as credenciais.
Algumas outras opções para cenários que exigem credenciais de longo prazo incluem:
-
Crie sua própria API de venda de tokens (usando o Amazon API Gateway).
-
Para cenários 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
. O Secrets Manager simplifica o gerenciamento, a rotação e o armazenamento seguro de segredos criptografados. Muitos serviços da AWS oferecem suporte à integração direta com o Secrets Manager. -
Para integrações multinuvem, você pode usar a federação de identidades com base nas credenciais do provedor de serviços de credenciais (CSP) de origem (consulte AWS STS AssumeRoleWithWebIdentity).
Para obter mais informações sobre a mudança de credenciais de longo prazo, consulte a mudança de chaves de acesso
Recursos
Práticas recomendadas relacionadas:
Documentos relacionados:
Vídeos relacionados: