Restrinja o acesso com base no endereço IP ou geolocalização usando AWS WAF - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Restrinja o acesso com base no endereço IP ou geolocalização usando AWS WAF

Louis Hourcade, Amazon Web Services

Resumo

AWS WAFé um firewall de aplicativos da Web que ajuda a proteger os aplicativos da Web APIs contra explorações e bots comuns da Web que podem afetar a disponibilidade, comprometer a segurança ou consumir recursos excessivos. As listas de controle de acesso à Web (web ACLs) AWS WAF fornecem controle sobre como o tráfego chega aos seus aplicativos. Em uma ACL da web, você adiciona regras ou grupos de regras projetados para permitir tráfego legítimo, controlar tráfego de bots e bloquear padrões comuns de ataque. Para obter mais informações, consulte Como AWS WAF funciona.

Você pode associar os seguintes tipos de regras à sua AWS WAF web ACLs:

  • Grupos de regras AWS gerenciadas — equipes e AWS Marketplace vendedores de regras gerenciadas oferecem conjuntos de regras pré-configurados. Alguns grupos de regras gerenciadas são projetados para ajudar a proteger tipos específicos de aplicações web. Outros grupos, por sua vez, oferecem proteção abrangente contra ameaças conhecidas ou vulnerabilidades comuns.

  • Regras personalizadas e grupos de regras personalizados — Você também pode criar regras e grupos de regras que personalizam o acesso aos seus aplicativos web APIs e. Por exemplo, é possível restringir o tráfego com base em uma lista específica de endereços IP ou em uma lista de países.

Usando esse padrão e o repositório de código associado, você pode usar o AWS Cloud Development Kit (AWS CDK)para implantar a AWS WAF web ACLs com regras personalizadas. Essas regras restringem o acesso aos recursos da aplicação web com base no endereço IP ou na geolocalização do usuário final. Além disso, você pode optar por adicionar diversos grupos de regras gerenciadas.

Pré-requisitos e limitações

Pré-requisitos

Limitações

  • Você pode usar esse padrão somente Regiões da AWS onde AWS WAF estiver disponível. Para conferir a disponibilidade de uma região, consulte Serviços da AWS by Region.

Ferramentas

Serviços da AWS

  • AWS Cloud Development Kit (AWS CDK)é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar Nuvem AWS infraestrutura em código.

  • O AWS WAF é um firewall para aplicações web que ajuda a monitorar solicitações HTTP e HTTPS encaminhadas aos recursos da sua aplicação web protegida.

Repositório de código

O código desse padrão está disponível na restrição de GitHub IP e geolocalização com AWS WAF repositório. O código implanta duas AWS WAF web ACLs. A primeira é uma ACL da web regional destinada a recursos do Amazon API Gateway. A segunda é a ACL global da web para CloudFront recursos da Amazon. Ambos os sites ACLs contêm as seguintes regras personalizadas:

  • IPMatch impede solicitações provenientes de endereços IP não autorizados.

  • GeoMatch impede solicitações provenientes de países não autorizados.

Durante a implantação, você pode, opcionalmente, anexar todos os seguintes grupos de regras gerenciadas à sua web ACLs:

  • Conjunto de regras principal (CRS, na sigla em inglês): este grupo de regras contém regras que se aplicam, em geral, a aplicações web. O conjunto auxilia na proteção contra a exploração de diversas vulnerabilidades, incluindo algumas das vulnerabilidades de alto risco e mais comuns descritas nas publicações da OWASP, como o OWASP Top 10.

  • Proteção para administradores: este grupo de regras contém regras que ajudam a bloquear o acesso externo a páginas administrativas expostas.

  • Entradas maliciosas conhecidas: este grupo de regras ajuda a bloquear padrões de solicitações que são conhecidos por serem inválidos e estão associados à exploração ou à descoberta de vulnerabilidades.

  • Lista de reputação de IP da Amazon: este grupo de regras contém regras baseadas na inteligência de ameaças interna da Amazon. Este grupo ajuda a bloquear endereços IP que normalmente estão associados a bots ou outras ameaças.

  • Grupo de regras gerenciadas para o sistema operacional do Linux: este grupo de regras ajuda a bloquear padrões de solicitações associados à exploração de vulnerabilidades do Linux, incluindo ataques específicos de Inclusão Local de Arquivos (LFI, na sigla em inglês) em sistemas do Linux.

  • Grupo de regras gerenciadas para banco de dados do SQL: este grupo de regras ajuda a bloquear padrões de solicitações associados à exploração de bancos de dados do SQL, como ataques de injeção de SQL.

Épicos

TarefaDescriptionHabilidades necessárias

Clonar o repositório.

Insira o seguinte comando para clonar o repositório IP and geolocation restriction with AWS WAF na sua estação de trabalho local:

git clone https://github.com/aws-samples/ip-and-geolocation-restriction-with-waf-cdk.git
Git

Configure as regras.

  1. No repositório clonado, abra o arquivo app.py.

  2. Modifique os valores das seguintes variáveis para personalizar as regras:

    aws_acccount = "AWS_ACCOUNT" region = "AWS_REGION" ip_list = ["CIDR_RANGE_1", "CIDR_RANGE_2"] geo_list = ["COUNTRY_CODE_1", "COUNTRY_CODE_2"] aws_managed_rules = True

    Em que:

    • aws_accounté o ID do alvo Conta da AWS.

    • regioné o destino da Web ACL Região da AWS para recursos do API Gateway.

      nota

      A ACL da web para CloudFront recursos é global e será implantada na us-east-1 região.

    • ip_list é a lista de intervalos de CIDR que têm acesso permitido.

    • geo_list é a lista de países que têm acesso permitido. Para valores válidos, consulte a documentação do AWS WAF.

    • aws_managed_rules controla se os grupos de regras gerenciadas são adicionados à ACL da web. Se o valor for True, eles serão adicionados. Se o valor for False, serão excluídos.

  3. Salve e feche o arquivo app.py.

Usuário geral da AWS e do Python
TarefaDescriptionHabilidades necessárias

Inicialize seu AWS ambiente.

Se ainda não tiver feito isso, você precisará inicializar seu AWS ambiente antes de poder implantar o AWS CDK aplicativo.

  1. Na AWS CDK CLI, digite o seguinte comando para inicializar a região: us-east-1

    cdk bootstrap aws://<account-id>/us-east-1
  2. Se você estiver implantando a ACL da web para o API Gateway em uma região diferente de us-east-1, digite o seguinte comando para inicializar a região de destino:

    cdk bootstrap aws://<account-id>/<region>
AWS geral

Implante o AWS CDK aplicativo.

  1. Digite o comando a seguir para implantar o AWS CDK aplicativo:

    cdk deploy --all
  2. Espere até que a implantação da AWS CloudFormation pilha seja concluída.

AWS geral
TarefaDescriptionHabilidades necessárias

Confirme se a web ACLs foi implantada com sucesso.

  1. Faça login no e Console de gerenciamento da AWS, em seguida, abra o AWS WAF console.

  2. No painel de navegação, escolha Web ACLs.

  3. Na lista de Regiões da AWS, escolha Global (CloudFront).

  4. Verifique se a nova ACL CloudFront da web foi implantada e confirme se ela tem o endereço IP e as regras de geolocalização que você definiu. O nome padrão desta ACL da web é WebACLCloudfront-<ID>.

  5. Na lista de Regiões da AWS, escolha a região na qual você implantou a pilha.

  6. Verifique se uma nova ACL da web para os recursos do API Gateway foi implantada. Confirme que ela contém as regras de endereço IP e de geolocalização que você definiu. O nome padrão desta ACL da web é WebACLApiGW-<ID>.

AWS geral

(Opcional) Associe a web ACLs aos seus recursos.

Associe a AWS WAF web ACLs aos seus AWS recursos, como um Application Load Balancer, API Gateway ou CloudFront distribuição. Para obter instruções, consulte Como associar ou desassociar uma ACL da web a um recurso da AWS. Para obter um exemplo, consulte class CfnWeb ACLAssociation (construct) na AWS CDK documentação.

AWS geral
TarefaDescriptionHabilidades necessárias

Exclua as pilhas.

  1. Desassocie a ACL da web de qualquer AWS recurso. Para obter instruções, consulte a documentação do AWS WAF.

  2. Na AWS CDK CLI, digite o comando a seguir para excluir o AWS CDK aplicativo.

    cdk destroy --all
AWS geral

Recursos relacionados