Práticas recomendadas de segurança no IAM - AWS Identity and Access Management

Práticas recomendadas de segurança no IAM

As práticas recomendadas do AWS Identity and Access Management foram atualizadas em 14 de julho de 2022.

Para ajudar a proteger seus recursos da AWS, siga estas práticas recomendadas para o AWS Identity and Access Management (IAM).

Exija que os usuários humanos usem a federação com um provedor de identidade para acessar a AWS usando credenciais temporárias

Os usuários humanos, também conhecidos como identidades humanas, são as pessoas, os administradores, os desenvolvedores, os operadores e os consumidores de suas aplicações. Eles devem ter uma identidade para acessar seus ambientes e aplicações da AWS. Os usuários humanos que são membros de sua organização também são conhecidos como identidades de força de trabalho. Os usuários humanos também podem ser usuários externos com quem você colabora e que interagem com seus recursos da AWS. Eles podem fazer isso por meio de um navegador da Web, aplicação do cliente, aplicação para dispositivos móveis ou ferramentas interativas de linha de comando.

Exija que seus usuários humanos usem credenciais temporárias ao acessar a AWS. Você pode usar um provedor de identidade para que seus usuários humanos recebam acesso federado a Contas da AWS assumindo perfis que fornecem credenciais temporárias. Para gerenciamento de acesso centralizado, recomendamos que você usar o AWS IAM Identity Center (IAM Identity Center) para gerenciar o acesso às suas contas e as permissões nessas contas. Você pode gerenciar suas identidades de usuário com o IAM Identity Center ou gerenciar permissões de acesso para identidades de usuário no IAM Identity Center de um provedor de identidade externo. Para obter mais informações, consulte O que é o AWS IAM Identity Center no Guia do usuário do AWS IAM Identity Center.

Para obter mais informações sobre funções do , consulte Termos e conceitos das funções.

Exija que as workloads usem credenciais temporárias com perfis do IAM para acessar a AWS

Uma workload é uma coleção de códigos e recursos que fornece valor comercial, como uma aplicação ou um processo de back-end. Sua workload pode ter aplicações, ferramentas operacionais e componentes que exigem uma identidade para fazer solicitações aos Serviços da AWS, como solicitações de leitura de dados. Essas identidades incluem máquinas em execução em seus ambientes da AWS, como instâncias do Amazon EC2 ou funções do AWS Lambda.

Você também pode gerenciar identidades de máquina para partes externas que precisam de acesso. Para dar acesso a identidades de máquina, você pode usar perfis do IAM. Os perfis do IAM têm permissões específicas e fornecem uma maneira de acessar a AWS com base em credenciais de segurança temporárias com uma sessão de perfil. Além disso, você pode ter máquinas fora da AWS que precisam de acesso aos seus ambientes da AWS. Para máquinas que funcionam fora da AWS, você pode usar o AWS Identity and Access Management Roles Anywhere. Para obter mais informações sobre funções do , consulte Perfis do IAM. Para obter detalhes sobre como usar perfis para delegar acesso em Contas da AWS, consulte Tutorial do IAM: Delegar acesso entre contas da AWS usando funções do IAM.

Exija autenticação multifator (MFA)

Recomendamos o uso de perfis do IAM para usuários humanos e workloads que acessam seus recursos da AWS a fim de que usem credenciais temporárias. No entanto, para cenários em que você precisa de um usuário do IAM ou usuário raiz em sua conta, exija MFA para aumentar a segurança. Com a MFA, os usuários têm um dispositivo que gera uma resposta a um desafio de autenticação. As credenciais de cada usuário e a resposta gerada pelo dispositivo são necessárias para concluir o processo de login. Para obter mais informações, consulte Uso de autenticação multifator (MFA) na AWS.

Se você usa o IAM Identity Center para gerenciamento de acesso centralizado para usuários humanos, poderá usar os recursos de MFA do IAM Identity Center quando sua origem de identidade estiver configurada com o armazenamento de identidade do IAM Identity Center, do AWS Managed Microsoft AD ou do AD Connector. Para obter mais informações sobre a MFA no IAM Identity Center, consulte Multi-factor authentication (Autenticação multifator) no Guia do usuário do AWS IAM Identity Center.

Atualize as chaves de acesso quando necessário para casos de uso que exijam credenciais de longo prazo

Sempre que possível, recomendamos depender de credenciais temporárias em vez de criar credenciais de longo prazo, como chaves de acesso. No entanto, para cenários em que você precise de usuários do IAM com acesso programático e credenciais de longo prazo, recomendamos atualizar as chaves de acesso sempre que necessário, por exemplo, quando um funcionário sair da empresa. Recomendamos usar as últimas informações de acesso do IAM para atualizar e remover as chaves de acesso com segurança. Para obter mais informações, consulte Atualização de chaves de acesso.

Há casos de uso específicos que exigem credenciais de longo prazo com usuários do IAM na AWS. Alguns dos casos de uso incluem o seguinte:

  • Workloads que não podem usar perfis do IAM: você pode executar a workload de um local que precisa acessar a AWS. Em algumas situações, você não pode usar perfis do IAM para fornecer credenciais temporárias, como para plugins do WordPress. Nessas situações, use as chaves de acesso de longo prazo do usuário do IAM para que essa workload seja autenticada na AWS.

  • Clientes de terceiros da AWS: se você estiver usando ferramentas que não oferecem suporte ao IAM Identity Center, como clientes da AWS de terceiros ou fornecedores que não estão hospedados na AWS, use as chaves de acesso de longo prazo do usuário do IAM.

  • Acesso ao AWS CodeCommit: se você estiver usando o CodeCommit para armazenar seu código, poderá usar um usuário do IAM com chaves SSH ou credenciais específicas de serviço para que o CodeCommit seja autenticado em seus repositórios. Recomendamos fazer isso além de usar um usuário do IAM Identity Center para autenticação padrão. Os usuários do Centro de Identidade do IAM são as pessoas em sua força de trabalho que precisam acessar suas Contas da AWS ou suas aplicações na nuvem. Para dar aos usuários acesso aos seus repositórios do CodeCommit sem configurar os usuários do IAM, você pode configurar o utilitário git-remote-codecommit. Para obter mais informações sobre o IAM e o CodeCommit, consulte Uso do IAM com CodeCommit: credenciais do Git, chaves SSH e chaves de acesso da AWS. Para obter mais informações sobre como configurar o utilitário git-remote-codecommit, consulte Conectar-se a repositórios do AWS CodeCommit credenciais alternadas, no Guia do usuário do AWS CodeCommit.

  • Acesso ao Amazon Keyspaces (para Apache Cassandra): em uma situação em que não é possível usar usuários no IAM Identity Center, como para fins de teste de compatibilidade com o Cassandra, você pode usar um usuário do IAM com credenciais específicas do serviço para a autenticação com o Amazon Keyspaces. Os usuários do Centro de Identidade do IAM são as pessoas em sua força de trabalho que precisam acessar suas Contas da AWS ou suas aplicações na nuvem. Você também pode se conectar ao Amazon Keyspaces usando credenciais temporárias. Para obter mais informações, consulte Using temporary credentials to connect to Amazon Keyspaces using an IAM role and the SigV4 plugin (Como usar credenciais temporárias para se conectar ao Amazon Keyspaces usando um perfil do IAM e o plug-in SigV4) no Guia do desenvolvedor do Amazon Keyspaces (para Apache Cassandra).

Siga as melhores práticas para proteger as credenciais do usuário raiz

Ao criar uma Conta da AWS, você estabelece as credenciais do usuário raiz para fazer login no AWS Management Console. Proteja suas credenciais de usuário raiz da mesma forma como protegeria outras informações pessoais confidenciais. Para entender melhor como proteger e escalar seus processos de usuário raiz, consulte As práticas recomendadas do usuário raiz para o Conta da AWS.

Aplique permissões de privilégio mínimo

Ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como permissões de privilégio mínimo. Você pode começar com permissões amplas enquanto explora as permissões necessárias para sua workload ou para seu caso de uso. À medida que seu caso de uso se desenvolve, você pode trabalhar para reduzir as permissões que concede para caminhar em direção ao privilégio mínimo. Para obter mais informações sobre como usar o IAM para aplicar permissões, consulte Políticas e permissões no IAM.

Comece com as políticas gerenciadas pela AWS e avance para as permissões de privilégio mínimo.

Para começar a conceder permissões a seus usuários e workloads, use as políticas gerenciadas pela AWS que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis na sua Conta da AWS. Lembre-se de que as políticas gerenciadas pela AWS podem não conceder permissões de privilégio mínimo para seus casos de uso específicos porque estão disponíveis para uso por todos os clientes da AWS. Como resultado, recomendamos que você reduza ainda mais as permissões definindo as políticas gerenciadas pelo cliente específicas para seus casos de uso. Para obter mais informações, consulte Políticas gerenciadas pela AWS. Para obter mais informações sobre políticas gerenciadas pela AWSque são projetadas para funções de trabalho específicas, consulte Políticas gerenciadas pela AWS para funções de trabalho.

Use o IAM Access Analyzer para gerar políticas de privilégios mínimos com base na atividade de acesso

Para conceder apenas as permissões necessárias para executar uma tarefa, você pode gerar políticas com base em sua atividade de acesso registrada no AWS CloudTrail. O IAM Access Analyzer analisa os serviços e as ações que seus perfis do IAM usam e, em seguida, gera uma política aperfeiçoada que você pode utilizar. Depois de testar cada política gerada, você pode implantar a política em seu ambiente de produção. Isso garante que você conceda apenas as permissões necessárias para suas workloads. Para obter mais informações sobre a geração de políticas, consulte Geração de políticas do IAM Access Analyzer.

Revise e remova regularmente usuários, funções, permissões, políticas e credenciais não utilizados

Você pode ter usuários, perfis, permissões, políticas ou credenciais do IAM de que não precisa mais em sua Conta da AWS. O IAM fornece as informações do seu último acesso para ajudar você a identificar os usuários, os perfis, as permissões, as políticas e as credenciais que não são mais necessários para que possa removê-los. Isso ajuda a reduzir o número de usuários, perfis, permissões, políticas e credenciais que você precisa monitorar. Você também pode usar essas informações para aperfeiçoar suas políticas do IAM para aderir melhor às permissões de privilégio mínimo. Para obter mais informações, consulte Refinar permissões na AWS usando as informações do último acesso.

Use condições nas políticas do IAM para restringir ainda mais o acesso

Você pode especificar as condições sob as quais uma declaração de política está em vigor. Dessa forma, você pode conceder acesso a ações e recursos, mas somente se a solicitação de acesso atender a condições específicas. Por exemplo, você pode escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso a ações de serviço, mas somente se elas forem usadas por meio de um AWS service (Serviço da AWS) específico, como o AWS CloudFormation. Para obter mais informações, consulte Elementos de política JSON do IAM: Condition.

Verifique o acesso entre contas e público aos recursos com o IAM Access Analyzer

Antes de conceder permissões para o acesso entre contas ou público na AWS, recomendamos que você verifique se esse acesso é necessário. Você pode usar o IAM Access Analyzer para auxiliar na visualização e análise do acesso entre contas ou público para os tipos de recursos compatíveis. Você faz isso revisando as findings (descobertas) que o IAM Access Analyzer gera. Essas descobertas ajudam a verificar se seus controles de acesso a recursos concedem o acesso esperado. Além disso, ao atualizar as permissões entre contas e públicas, você pode verificar o efeito de suas alterações antes de implantar novos controles de acesso aos seus recursos. O IAM Access Analyzer também monitora continuamente os tipos de recursos compatíveis e gera uma descoberta de recursos que permitem o acesso entre contas ou público. Para obter mais informações, consulte Pré-visualização de acesso com APIs do IAM Access Analyzer.

Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais

Valide as políticas que você cria para garantir que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. Você pode validar suas políticas usando a validação de política do IAM Access Analyzer. O IAM Access Analyzer oferece mais de 100 verificações de política e recomendações acionáveis para ajudar você a criar políticas seguras e funcionais. À medida que você cria novas políticas ou edita políticas existentes no console, o IAM Access Analyzer fornece recomendações para ajudar a aperfeiçoar e validar suas políticas antes de salvá-las. Além disso, recomendamos que você revise e valide todas as políticas existentes. Para obter mais informações, consulte IAM Access Analyzer policy validation (Validação de políticas do IAM Access Analyzer). Para obter mais informações sobre as verificações de política fornecidas pelo IAM Access Analyzer, consulte IAM Access Analyzer policy check reference (Referência de verificação de política do IAM Access Analyzer).

Estabeleça barreiras de proteção para permissões em várias contas

Conforme você escala suas workloads, separe-as usando várias contas gerenciadas com o AWS Organizations. Recomendamos que você use as políticas de controle de serviço (SCPs) do Organizations para estabelecer barreiras de proteção para permissões a fim de controlar o acesso de todos os usuários e funções do IAM em suas contas. As SCPs são um tipo de política de organização que você pode usar para gerenciar permissões em sua organização no AWS Organizations, nas UO ou a nível de conta. As barreiras de proteção para permissões que você estabelece se aplicam a todos os usuários e funções nas contas abrangidas. No entanto, as SCPs por si só são insuficientes para conceder permissões às contas em sua organização. Para fazer isso, seu administrador deve anexar políticas baseadas em identidade ou em recursos para usuários do IAM, perfis do IAM ou recursos em suas contas. Para obter mais informações, consulte AWS Organizations, contas e barreiras de proteção do IAM.

Use limites de permissões para delegar o gerenciamento de permissões em uma conta

Em alguns cenários, você pode desejar delegar o gerenciamento de permissões em uma conta para outras pessoas. Por exemplo, você pode permitir que os desenvolvedores criem e gerenciem funções para suas workloads. Ao delegar permissões a outras pessoas, use limites de permissões para definir o máximo de permissões que você delega. Um limite de permissões é um recurso avançado que utiliza uma política gerenciada para definir o máximo de permissões que uma política baseada em identidade pode conceder a um perfil do IAM. Um limite de permissões não concede permissões por si só. Para obter mais informações, consulte Limites de permissões para entidades do IAM.