Exemplos de políticas baseadas em identidade para o AWS WAF - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

Exemplos de políticas baseadas em identidade para o AWS WAF

Esta seção fornece exemplos de políticas baseadas em identidade para o AWS WAF.

Por padrão, usuários e funções não têm permissão para criar ou modificar recursos do AWS WAF. Eles também não podem executar tarefas usando o AWS Management Console, a AWS Command Line Interface (AWS CLI) ou a API AWS. Para conceder aos usuários permissão para executar ações nos recursos de que precisam, um administrador do IAM pode criar políticas do IAM. O administrador pode então adicionar as políticas do IAM aos perfis e os usuários podem presumir os perfis.

Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documento de política JSON, consulte Criar políticas do IAM (console) no Guia do Usuário do IAM.

Para obter detalhes sobre ações e tipos de recurso definidos pelo AWS WAF, incluindo o formato dos ARNs para cada tipo de recurso, consulte Ações, recursos e chaves de condição para AWS WAF V2  na Referência de autorização do serviço.

Melhores práticas de política

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do AWS WAF em sua conta. Essas ações podem incorrer em custos para seus Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

  • 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. Elas estão disponíveis em seus Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente AWS específicas para seus casos de uso. Para obter mais informações, consulte Políticas gerenciadas pela AWS ou Políticas gerenciadas pela AWS para funções de trabalho no Guia do Usuário do IAM.

  • 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 atributos específicos sob condições específicas, também conhecidas como permissões de 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 no Guia do Usuário do IAM.

  • Use condições nas políticas do IAM para restringir ainda mais o acesso –- você pode adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, você pode gravar 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, 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 da política JSON do IAM: Condição no Guia do usuário do IAM.

  • Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais –- o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de 100 verificações de política e recomendações acionáveis para ajudá-lo a criar políticas seguras e funcionais. Para ter mais informações, consulte Validar políticas com o IAM Access Analyzer no Guia do usuário do IAM.

  • Exigir autenticação multifator (MFA) –- se houver um cenário que exija usuários do IAM ou um usuário raiz em sua Conta da AWS, ative a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para ter mais informações, consulte Acesso seguro à API com a MFA no Guia do usuário do IAM.

Para obter mais informações sobre as práticas recomendadas do IAM, consulte Práticas Recomendadas de Segurança no IAM no Guia do Usuário do IAM.

Usar o console do AWS WAF

Para acessar o console do AWS WAF, você deve ter um conjunto mínimo de permissões. Essas permissões devem permitir que você liste e visualize detalhes sobre os recursos do AWS WAF na sua Conta da AWS. Caso crie uma política baseada em identidade mais restritiva que as permissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários ou funções) com essa política.

Não é necessário conceder permissões mínimas do console para usuários fazendo chamadas somente para AWS CLI ou para a API do AWS. Em vez disso, permita o acesso somente a ações que correspondam a operação de API que estiverem tentando executar.

Para garantir que os usuários e os perfis ainda possam usar o console do AWS WAF, anexe pelo menos as políticas gerenciadas AWS WAF AWSWAFConsoleReadOnlyAccess AWS às entidades. Para obter mais informações sobre esta política gerenciada, consulte Política gerenciada pela AWS: AWSWAFConsoleReadOnlyAccess. Para obter mais informações sobre como adicionar uma política a um usuário, consulte Adição de permissões a um usuário no Guia do usuário do IAM.

Permitir que usuários visualizem suas próprias permissões

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou de forma programática usando a AWS CLI ou a AWS API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Conceda acesso somente leitura ao AWS WAF, ao CloudFront e ao CloudWatch

A política a seguir concede aos usuários o acesso de somente leitura aos recursos do AWS WAF, às distribuições da web do Amazon CloudFront e às métricas do Amazon CloudWatch. Ela é útil aos usuários que precisam de permissão para visualizar as configurações nas condições, regras e web ACLs do AWS WAF para ver qual distribuição está associada a uma web ACL e monitorar métricas e uma amostra de solicitações no CloudWatch. Esses usuários não podem criar, atualizar nem excluir recursos do AWS WAF:

{ "Version":"2012-10-17", "Statement": [ { "Action": [ "wafv2:Get*", "wafv2:List*", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListDistributionsByWebACLId", "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics", "ec2:DescribeRegions" ], "Effect": "Allow", "Resource": "*" } ] }

Conceda acesso total ao AWS WAF, CloudFront e CloudWatch

A política a seguir permite que o usuário execute qualquer operação do AWS WAF, execute qualquer operação em distribuições da web do CloudFront e monitore métricas e uma amostra de solicitações no CloudWatch. Ela é útil aos usuários que são administradores do AWS WAF.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "wafv2:*", "cloudfront:CreateDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "cloudfront:ListDistributions", "cloudfront:ListDistributionsByWebACLId", "cloudfront:DeleteDistribution", "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics", "ec2:DescribeRegions" ], "Effect": "Allow", "Resource": "*" } ] }

Recomendamos que você configure autenticação multifator (MFA) para os usuários que tiverem permissões administrativas. Para obter mais informações, consulte Como usar dispositivos com autenticação multifator (MFA) com o AWS no Guia do usuário do IAM.

Conceda acesso a uma única Conta da AWS

Esta política concede as seguintes permissões para a conta 444455556666:

  • Acesso total a todos os recursos e operações do AWS WAF.

  • Acesso de leitura e atualização a todas as distribuições do CloudFront, que permite que você associe web ACLs e distribuições do CloudFront.

  • Acesso de leitura a todas as métricas e estatísticas de métrica do CloudWatch, para que você possa visualizar os dados do CloudWatch e obter uma amostra das solicitações no console do AWS WAF.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wafv2:*" ], "Resource": [ "arn:aws:wafv2:us-east-1:444455556666:*" ] }, { "Effect": "Allow", "Action": [ "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListDistributionsByWebACLId", "cloudfront:UpdateDistribution", "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics", "ec2:DescribeRegions" ], "Resource": [ "*" ] } ] }

Conceda acesso a uma única web ACL

A política a seguir permite que os usuários realizem qualquer AWS WAF operação por meio do console em uma web ACL específica na conta 444455556666.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wafv2:*" ], "Resource": [ "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example", ] }, { "Sid": "consoleAccess", "Effect": "Allow", "Action": [ "wafv2:ListWebACLs", "ec2:DescribeRegions" ], "Resource": [ "*" ] } ] }

Conceda acesso a CLI a uma web ACL e a um grupo de regras

A política a seguir permite que os usuários realizem qualquer AWS WAF operação por meio da CLI em uma web ACL específica e em um grupo de regras específico na conta 444455556666.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wafv2:*" ], "Resource": [ "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example", "arn:aws:wafv2:us-east-1:444455556666:regional/rulegroup/test123rulegroup/555555555-6666-1234-abcd-00d11example" ] } ] }

A política a seguir permite que os usuários realizem qualquer AWS WAF operação por meio do console em uma web ACL específica na conta 444455556666.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wafv2:*" ], "Resource": [ "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example", ] }, { "Sid": "consoleAccess", "Effect": "Allow", "Action": [ "wafv2:ListWebACLs", "ec2:DescribeRegions" ], "Resource": [ "*" ] } ] }