Uso de AWS WAF para proteger sus API - Amazon API Gateway

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.

Uso de AWS WAF para proteger sus API

AWS WAF es un firewall de aplicaciones web que ayuda a proteger las aplicaciones web y las API de ataques. Le permite configurar un conjunto de reglas denominadas lista de control de acceso web (Web ACL) que permiten, bloquean o cuentan solicitudes web en función de las reglas y condiciones de seguridad web personalizables que defina. Para obtener más información, consulte Funcionamiento de AWS WAF.

Puede utilizar AWS WAF para proteger a la API de REST de API Gateway de vulnerabilidades web comunes, como ataques de inyección de código SQL y scripting entre sitios (XSS). Esto podría afectar a la disponibilidad y el rendimiento de la API, comprometer la seguridad o consumir recursos excesivos. Por ejemplo, puede crear reglas para permitir o bloquear solicitudes de rangos de direcciones IP especificados, solicitudes de bloques CIDR, solicitudes que se originan en un país o región específico, solicitudes que contengan código SQL malintencionado o solicitudes que contengan secuencias de comandos malintencionadas.

También puede crear reglas que busquen una cadena o un patrón de expresión regular en encabezados HTTP, métodos, cadenas de consulta, URI y el cuerpo de la solicitud (limitado a los primeros 8 KB). Además, puede crear reglas para bloquear ataques de agentes de usuario específicos, bots malintencionados y scrapers de contenido. Por ejemplo, puede utilizar reglas basadas en la frecuencia para especificar el número de solicitudes web permitidas por IP de cliente en un periodo de 5 minutos actualizado constantemente.

importante

AWS WAF es su primera línea de defensa contra vulnerabilidades de la web. Cuando AWS WAF está habilitado en una API, se evalúan las reglas de AWS WAF antes que otras características del control de acceso, como, por ejemplo, las políticas de recursos, las políticas de IAM, los autorizadores de Lambda y los autorizadores de Amazon Cognito. Por ejemplo, si AWS WAF bloquea el acceso de un bloque de CIDR permitido por una política de recursos, AWS WAF tiene prioridad y no se evalúa la política de recursos.

Para habilitar AWS WAF para su API, debe hacer lo siguiente:

  1. Utilice la consola de AWS WAF, el AWS SDK o la CLI para crear una ACL web regional que contenga la combinación deseada de reglas administradas de AWS WAF y sus propias reglas personalizadas. Para obtener más información, consulte Introducción a AWS WAF y Creación y configuración de una lista de control de acceso web (ACL web).

    importante

    API Gateway necesita una ACL web regional.

  2. Asocie la ACL web regional de AWS WAF con una etapa de la API. Puede hacerlo utilizando la consola de AWS WAF, el SDK de AWS, la CLI o la consola de API Gateway.

Para asociar una ACL web regional de AWS WAF a una etapa de la API de API Gateway mediante la consola de API Gateway

Si desea utilizar la consola de API Gateway para asociar una ACL web regional de AWS WAF a una etapa de la API de API Gateway existente, siga estos pasos:

  1. Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway.

  2. Seleccione una API existente o cree una nueva.

  3. En el panel de navegación principal, elija Etapas y, a continuación, elija una etapa.

  4. En la sección Detalles de la etapa, elija Editar.

  5. Para asociar una ACL web regional con la etapa de la API:

    1. En Web application firewall (AWS WAF), seleccione la ACL web regional que desea asociar a esta etapa.

  6. Elija Guardar cambios.

Para asociar una ACL web regional de AWS WAF a una etapa de la API de API Gateway mediante la AWS CLI

Si desea utilizar la AWS CLI para asociar una ACL web regional de AWS WAF a una etapa de la API de API Gateway existente, llame al comando associate-web-acl, como se muestra en el siguiente ejemplo:

aws waf-regional associate-web-acl \ --web-acl-id 'aabc123a-fb4f-4fc6-becb-2b00831cadcf' \ --resource-arn 'arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod'

Asociación de una ACL web regional de AWS WAF a una etapa de la API mediante la API de REST de AWS WAF

Si desea utilizar la API REST de AWS WAF para asociar una ACL web regional de AWS WAF a una etapa de la API de API Gateway existente, llame al comando AssociateWebACL, como se muestra en el siguiente ejemplo:

import boto3 waf = boto3.client('waf-regional') waf.associate_web_acl( WebACLId='aabc123a-fb4f-4fc6-becb-2b00831cadcf', ResourceArn='arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod' )