Restrinja el acceso en función de la dirección IP o la geolocalización mediante AWS WAF - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Restrinja el acceso en función de la dirección IP o la geolocalización mediante AWS WAF

Louis Hourcade, Amazon Web Services

Resumen

AWS WAFes un firewall de aplicaciones web que ayuda a proteger las aplicaciones web y APIs contra los exploits y bots web más comunes que pueden afectar a la disponibilidad, comprometer la seguridad o consumir recursos excesivos. Las listas de control de acceso a la web (web ACLs) AWS WAF le permiten controlar la forma en que el tráfico llega a sus aplicaciones. En una ACL web, se agregan reglas o grupos de reglas diseñados para permitir el tráfico legítimo, controlar el tráfico de bots y bloquear los patrones de ataque más comunes. Para obtener más información, consulte Cómo AWS WAF funciona.

Puede asociar los siguientes tipos de reglas a su AWS WAF web ACLs:

  • Grupos de reglas AWS gestionadas: los equipos de reglas gestionadas y AWS Marketplace los vendedores ofrecen conjuntos de reglas preconfigurados. Algunos grupos de reglas administradas están diseñados para ayudar a proteger determinados tipos de aplicaciones web. Otros ofrecen una amplia protección contra amenazas conocidas o vulnerabilidades comunes.

  • Reglas y grupos de reglas personalizados: también puede crear reglas y grupos de reglas que personalicen el acceso a sus aplicaciones web y APIs. Por ejemplo, puede restringir el tráfico en función de una lista específica de direcciones IP o de países.

Al usar este patrón y el repositorio de código asociado, puede usar la AWS WAF web AWS Cloud Development Kit (AWS CDK) ACLs para implementar reglas personalizadas. Estas reglas restringen el acceso a los recursos de la aplicación web según la dirección IP o la ubicación geográfica del usuario final. Si lo desea, también puede adjuntar varios grupos de reglas administrados.

Requisitos previos y limitaciones

Requisitos previos 

Limitaciones

  • Puede usar este patrón solo Regiones de AWS donde AWS WAF esté disponible. Para obtener información sobre la disponibilidad en regiones, consulte Servicios de AWS by Region.

Tools (Herramientas)

Servicios de AWS

  • AWS Cloud Development Kit (AWS CDK)es un marco de desarrollo de software que le ayuda a definir y aprovisionar la Nube de AWS infraestructura en el código.

  • AWS WAF es un firewall de aplicación web que lo ayuda a supervisar las solicitudes HTTP y HTTPS que se reenvían a los recursos de su aplicación web protegida.

Repositorio de código

El código de este patrón está disponible en el repositorio de restricciones de GitHub IP y geolocalización. AWS WAF El código despliega dos web. AWS WAF ACLs La primera es una ACL web regional destinada a los recursos de Amazon API Gateway. La segunda es la ACL web global para CloudFront los recursos de Amazon. Ambas páginas ACLs contienen las siguientes reglas personalizadas:

  • IPMatch bloquea las solicitudes de direcciones IP no permitidas.

  • GeoMatch bloquea las solicitudes de países no permitidos.

Durante la implementación, si lo desea, puede adjuntar todos los siguientes grupos de reglas administradas a su web ACLs:

  • Conjunto de reglas básicas (CRS): este grupo contiene reglas que son generalmente aplicables a las aplicaciones web. Brinda protección contra la explotación de una amplia gama de vulnerabilidades, incluyendo algunas de las vulnerabilidades de alto riesgo y más comunes descritas en publicaciones de OWASP tales como OWASP Top 10.

  • Protección de administración: este grupo contiene reglas que permiten bloquear el acceso externo a las páginas administrativas expuestas.

  • Entradas incorrectas conocidas: este grupo de reglas bloquea los patrones de solicitud que se conocen por no ser válidos y que están asociados a la explotación o el descubrimiento de vulnerabilidades.

  • Lista de reputación de IP de Amazon: este grupo de reglas contiene reglas basadas en la inteligencia de amenazas interna de Amazon. Permite bloquear las direcciones IP que suelen estar asociadas a bots u otras amenazas.

  • Grupo de reglas administradas en el sistema operativo Linux: este grupo de reglas bloquean los patrones de solicitud asociados a la explotación de vulnerabilidades específicas de Linux, como los ataques de inclusión de archivos locales (LFI) específicos de Linux.

  • Grupo de reglas administradas de base de datos de SQL: este grupo de reglas permite bloquear los patrones de solicitud asociados a la explotación de bases de datos de SQL, como los ataques por inyección de código SQL.

Epics

TareaDescripciónHabilidades requeridas

Clonar el repositorio.

Introduzca el siguiente comando para clonar el repositorio Restricción de IP y geolocalización con AWS WAF en la estación de trabajo local:

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

Configure las reglas.

  1. En el repositorio clonado, abra el archivo app.py.

  2. Modifique los valores de las siguientes variables para personalizar las reglas:

    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

    Donde:

    • aws_accountes el ID del objetivo Cuenta de AWS.

    • regiones el destino Región de AWS de la ACL web para los recursos de API Gateway.

      nota

      La ACL web para CloudFront los recursos es global y se implementará en la us-east-1 región.

    • ip_list es la lista de rangos de CIDR a los que se permite el acceso.

    • geo_list es la lista de países a los que está permitido el acceso. Para obtener los valores válidos, consulte la documentación de AWS WAF.

    • aws_managed_rules controla si los grupos de reglas gestionados se agregan a la ACL web. Si este valor es True, se agregan. Si este valor es False, se excluyen.

  3. Guarde y cierre el archivo app.py.

AWS general, Python
TareaDescripciónHabilidades requeridas

Inicie su AWS entorno.

Si aún no lo ha hecho, debe iniciar el AWS entorno antes de poder implementar la AWS CDK aplicación.

  1. En la AWS CDK CLI, introduzca el siguiente comando para iniciar la us-east-1 región:

    cdk bootstrap aws://<account-id>/us-east-1
  2. Si va a implementar la ACL web para API Gateway en una región que no sea us-east-1, introduzca el siguiente comando para arrancar la región de destino:

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

Implemente la AWS CDK aplicación.

  1. Introduzca el siguiente comando para implementar la AWS CDK aplicación:

    cdk deploy --all
  2. Espere hasta que se complete el despliegue de la AWS CloudFormation pila.

AWS general
TareaDescripciónHabilidades requeridas

Confirme que la web se implementó ACLs correctamente.

  1. Inicie sesión en la AWS WAF consola y Consola de administración de AWS, a continuación, ábrala.

  2. En el panel de navegación, elija Web ACLs.

  3. En la lista de Regiones de AWS, elija Global (CloudFront).

  4. Compruebe que se haya implementado la nueva ACL CloudFront web y confirme que tiene la dirección IP y las reglas de geolocalización que ha definido. El nombre predeterminado de esta ACL web es WebACLCloudfront-<ID>.

  5. En la lista de Regiones de AWS, elija la región en la que desplegó la pila.

  6. Compruebe que se haya implementado una nueva ACL web para los recursos de API Gateway. Confirme que tiene la dirección IP y las reglas de geolocalización que ha definido. El nombre predeterminado de esta ACL web es WebACLApiGW-<ID>.

AWS general

(Opcional) Asocie la web ACLs a sus recursos.

Asocie la AWS WAF web ACLs a sus AWS recursos, como un Application Load Balancer, una API Gateway o CloudFront una distribución. Para obtener instrucciones, consulte Asociar o desasociar una ACL web con un recurso de AWShttps://docs.aws.amazon.com/waf/latest/developerguide/web-acl-associating-aws-resource.html. Para ver un ejemplo, consulte class CfnWeb ACLAssociation (construcción) en la AWS CDK documentación.

AWS general
TareaDescripciónHabilidades requeridas

Elimine las pilas.

  1. Desasocie la ACL web de cualquier AWS recurso. Para obtener instrucciones, consulte la documentación de AWS WAF.

  2. En la AWS CDK CLI, introduzca el siguiente comando para eliminar la AWS CDK aplicación.

    cdk destroy --all
AWS general

Recursos relacionados