SEC03-BP02 Conceder acesso com privilégio mínimo
É prática recomendada conceder somente o acesso de que as identidades precisam para realizar ações em recursos específicos e sob condições específicas. Use grupos e atributos de identidade para definir permissões dinamicamente em escala, em vez de definir permissões para usuários individuais. Por exemplo, você pode permitir o acesso de um grupo de desenvolvedores para gerenciar apenas recursos de seu próprio projeto. Dessa forma, se um desenvolvedor sair do projeto, o acesso dele é automaticamente revogado sem alterar as políticas de acesso adjacentes.
Resultado desejado: os usuário somente têm permissões necessárias para fazerem seus respectivos trabalhos. Os usuários devem ter acesso apenas a ambientes de produção para realizar uma tarefa específica dentro de um período limitado e o acesso deve ser revogado quando a tarefa for concluída. As permissões devem ser revogadas quando não forem mais necessárias, incluindo quando um usuário for para um projeto diferente ou mudar de cargo. Privilégios de administrador devem ser concedidos apenas a um grupo pequeno de administradores confiáveis. As permissões devem ser revistas regularmente para evitar desvios de permissão. Contas de máquina ou sistema devem ter apenas o mínimo de permissões necessárias para concluir as tarefas.
Antipadrões comuns:
-
Usar como padrão a concessão de permissões de administrador aos usuários.
-
Usar o usuário raiz para atividades diárias.
-
Criar políticas permissivas demais, mas sem privilégios completos de administrador.
-
Não revisar as permissões para entender se elas permitem o acesso de privilégio mínimo.
Nível de exposição a riscos quando esta prática recomendada não é estabelecida: alto
Orientações para a implementação
O princípio de estados privilégio mínimo para as identidades deve ser apenas permitido para realizar o mínimo de ações necessárias para cumprir uma tarefa específica. Isso equilibra a usabilidade, eficiência e segurança. Operar sobre esse princípio ajuda a limitar acesso não intencional e a rastrear quem tem acesso a quais recursos. Usuários e perfis do IAM não têm permissões por padrão. O usuário raiz tem acesso total e deve ser controlado e monitorado rigidamente, além de usado apenas para tarefas que necessitam acesso raiz.
Políticas do IAM são usadas para conceder explicitamente permissões aos perfis do IAM ou recursos específicos. Por exemplo, políticas com base em identidade podem ser anexadas a grupos do IAM, enquanto buckets do S3 podem ser controlados por políticas baseadas em recursos.
Ao criar e associar uma política do IAM, você pode especificar as ações de serviço, os recursos e as condições que devem ser verdadeiras para que a AWS permita ou negue o acesso. A AWS oferece suporte a uma variedade de condições para ajudar você a reduzir o acesso. Por exemplo, ao usar PrincipalOrgID
como chave de condição, você pode negar ações se o solicitante não for parte da sua organização da AWS.
Você também pode controlar as solicitações feitas pelos serviços da AWS em seu nome, como a criação, pelo AWS CloudFormation, de uma função do AWS Lambda, usando a chave de condição CalledVia
. Tipos diferentes de política devem estar em camadas para estabelecer a defesa em profundidade e limitar as permissões gerais de seus usuários. Você pode restringir as permissões que podem ser concedidas e sob quais condições. Por exemplo, você pode permitir que suas equipes de aplicação criem suas próprias políticas do IAM para os sistemas que criam, mas deve também aplicar uma Fronteira de permissão
Etapas da implementação
-
Implementar políticas de privilégio mínimo: atribua políticas de acesso com privilégio mínimo a grupos e perfis do IAM para refletir a função ou o perfil do usuário que você definiu.
-
Basear as políticas no uso da API: uma maneira de determinar as permissões necessárias é analisar os logs do AWS CloudTrail. Essa análise permite que você crie permissões personalizadas para as ações do usuário dentro da AWS. O IAM Access Analyzer pode gerar automaticamente uma IAM política com base
na atividade . Você pode usar o IAM Access Advisor no nível da organização ou da conta para rastrear as últimas informações acessadas para determinada política.
-
-
Considerar o uso de políticas gerenciadas da AWS para cargos. Pode ser difícil saber por onde começar ao criar políticas de permissões mais estritas. A AWS gerencia políticas para cargos comuns, como faturamento, administradores de banco de dados e cientistas de dados. Essas políticas podem ajudar a diminuir o acesso dos usuários ao determinar como implementar as políticas de privilégio mínimo.
-
Remover permissões desnecessárias: remova permissões que não são necessárias e ajuste políticas muito permissivas. A geração de política pelo IAM Access Analyzer pode ajudar a ajustar as políticas de permissão.
-
Garantir que os usuários tenham acesso limitado a ambientes de produção: os usuários devem ter acesso a ambientes de produção apenas com um caso de uso válido. Depois de o usuário realizar as tarefas específicas para as quais foi necessário o acesso à produção, o acesso deve ser revogado. Limitar o acesso a ambientes de produção evita eventos não intencionais e que causam impacto à produção, além de diminuir o escopo do impacto do acesso não intencional.
-
Considerar os limites de permissões: um limite de permissões é um recurso para usar uma política gerenciada que define o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM. O limite de permissões de uma entidade permite que ela execute apenas as ações aceitas por suas políticas baseadas em identidade e seus limites de permissões.
-
Considerar tags de recursos para permissões: um modelo de controle de acesso baseado em atributo que usa tags de recursos permite conceder acesso com base no propósito do recurso, proprietário, ambiente ou outros critérios. Por exemplo, você pode usar tags de recurso para diferenciar entre ambientes de desenvolvimento e produção. Ao usar essas tags, é possível restringir os desenvolvedores ao ambiente de desenvolvimento. Ao combinar as tags e as políticas de permissões, você consegue alcançar um acesso restrito ao recurso sem precisar definir políticas complicadas e personalizadas para cada cargo.
-
Use políticas de controle de serviço para AWS Organizations. As políticas de controle de serviço controlam centralmente o máximo de permissões disponíveis para contas de membros em sua organização. É importante notar que as políticas de controle de serviço permitem que você restrinja as permissões do usuário raiz nas contas de membros. Considere também o uso do AWS Control Tower, que fornece controles gerenciados prescritivos que enriquecem o AWS Organizations. Também é possível definir os seus próprios controles no Control Tower.
-
Estabelecer uma política de ciclo de vida para sua organização: as políticas de ciclo de vida do usuário definem tarefas a serem realizadas quando os usuários entram na AWS, mudam de cargo ou escopo de trabalho ou não precisam mais de acesso à AWS. As análises de permissão devem ser feitas durante todas as etapas do ciclo de vida do usuário para verificar se as permissões estão adequadamente restritas e para evitar desvios nas permissões.
-
Estabelecer uma programação regular para rever as permissões e remover as permissões desnecessárias: frequentemente, você deve verificar o acesso do usuário para garantir que ele não tenha acesso muito permissivo. O AWS Config
e o IAM Access Analyzer podem ajudar ao auditar as permissões do usuário. -
Estabelecer uma matriz de cargos: uma matriz de cargos exibe os diversos cargos e níveis de acesso necessários dentro de sua área da AWS. Com uma matriz de cargos, você pode definir e separar as permissões com base nas responsabilidades do usuário dentro da sua organização. Use grupos em vez de aplicar permissões diretamente a usuários ou cargos individuais.
Recursos
Documentos relacionados:
-
Permissions boundaries for IAM entities (Limites de permissões para entidades do IAM)
-
Techniques for writing least privilege IAM policies
(Técnicas para escrever políticas do IAM de privilégio mínimo) -
IAM Access Analyzer makes it easier to implement least privilege permissions by generating IAM
policies based on access activity (IAM Access Analyzer facilita a implementação de permissões de privilégio mínimo gerando políticas do IAM baseadas na atividade de acesso) -
Delegate permission management to developers by using IAM permissions boundaries
(Delegar gerenciamento de permissões para desenvolvedores usando os limites de permissões do IAM) -
IAM policy types and when to use them (Tipos de política do IAM e quando usá-las)
-
Testing IAM policies with the IAM policy simulator (Testar políticas do IAM com o simulador de política do IAM)
-
Guardrails in AWS Control Tower (Barreiras de proteção no AWS Control Tower)
-
Zero Trust architectures: An AWS perspective
(Arquiteturas de confiança zero: uma perspectiva da AWS) -
How to implement the principle of least privilege with CloudFormation StackSets
(Como implementar o princípio de privilégio mínimo com o CloudFormation StackSets) -
Redução do escopo da política ao exibir a atividade do usuário
-
Use a marcação para organizar seu ambiente e gerar responsabilidade
Vídeos relacionados:
-
Next-generation permissions management (Gerenciamento de permissões de última geração)
-
Zero Trust: An AWS perspective
(Confiança zero: uma perspectiva da AWS) -
How can I use permissions boundaries to limit users and roles to prevent privilege escalation?
(Como posso usar limites de permissões para limitar usuários e funções e evitar escalação do privilégio?)
Exemplos relacionados:
-
Lab: IAM permissions boundaries delegating role creation
(Laboratório: limites de permissões do IAM que delegam a criação de perfis) -
Lab: IAM tag based access control for EC2
(Laboratório: controle de acesso baseado em tags do IAM para EC2)