Cómo funciona AWS WAF con características de Amazon CloudFront - AWS WAF, AWS Firewall Manager y AWS Shield Advanced

Si proporcionásemos una traducción de la versión en inglés de la guía, prevalecerá la versión en inglés de la guía si hubiese algún conflicto. La traducción se proporciona mediante traducción automática.

Cómo funciona AWS WAF con características de Amazon CloudFront

Cuando se crea una ACL web, puede especificar una o más distribuciones de CloudFront que desea que AWS WAF inspeccione. AWS WAF empieza a permitir, bloquear o contar solicitudes web para las distribuciones en función de las condiciones que se identifique en la web ACL. CloudFront proporciona algunas características que mejoran la funcionalidad de AWS WAF. Este capítulo describe algunas formas de configurar CloudFront para realizar que CloudFront y AWS WAF funcionen mejor unidos.

Usar AWS WAF con páginas de error personalizadas de CloudFront

Cuando AWS WAF bloquea una solicitud web basada en las condiciones que especifique, devuelve el código de estado HTTP 403 (Prohibido) a CloudFront. A continuación, CloudFront devuelve ese código de estado al visor. El visor muestra un breve mensaje predeterminado con formato elemental similar a este:

Forbidden: You don't have permission to access /myfilename.html on this server.

Si prefiere mostrar un mensaje de error personalizado, utilizando el mismo formato que el resto de su sitio web, puede configurar CloudFront para devolver al visor un objeto (por ejemplo, un archivo HTML) que contenga el mensaje de error personalizado.

nota

CloudFront no distingue entre un código de estado HTTP 403 devuelto por su origen y uno devuelto por AWS WAF cuando se bloquea una solicitud. Esto significa que no puede devolver diferentes páginas de error personalizadas en función de las diferentes causas de un código de estado HTTP 403.

Para obtener más información sobre las páginas de error personalizadas de CloudFront, consulte Personalización de respuestas de error en la Guía para desarrolladores de Amazon CloudFront.

Usar AWS WAF con restricción geográfica de CloudFront

Puede usar la función de restricción geográfica de Amazon CloudFront, denominada también bloqueo geográfico, para evitar que usuarios en ubicaciones geográficas específicas accedan a contenido que usted distribuye a través de una distribución web CloudFront. Si desea bloquear solicitudes web de determinados países y bloquear las solicitudes en función de otras condiciones, puede utilizar la restricción geográfica de CloudFront junto con AWS WAF. CloudFront devuelve el mismo código de estado HTTP a los usuarios —HTTP 403 (Prohibido)— tanto si intentan acceder a su contenido desde un país que figure en una lista de denegación de restricción geográfica de CloudFront como si AWS WAF bloquea la solicitud.

nota

Puede ver el código de dos letras del país en el que se originan las solicitudes mediante la plantilla de solicitudes web de una ACL web. Para obtener más información, consulte Visualizar una muestra de solicitudes web.

Para obtener más información sobre la restricción geográfica de CloudFront, consulte Restricción de la distribución geográfica de su contenido en la Guía para desarrolladores de Amazon CloudFront.

Usar AWS WAF con CloudFront para aplicaciones que se ejecutan en su propio servidor HTTP

Si utiliza AWS WAF con CloudFront, puede proteger sus aplicaciones que se ejecutan en cualquier servidor web HTTP, ya sea un servidor web que se ejecuta en Amazon Elastic Compute Cloud (Amazon EC2) o un servidor web que administra de forma privada. También puede configurar CloudFront para que exija HTTPS entre CloudFront y su propio servidor web, así como entre visores y CloudFront.

Exigir HTTPS entre CloudFront y su propio servidor web

Para exigir HTTPS entre CloudFront y su propio servidor web, puede utilizar la característica de origen personalizado de CloudFront y configurar la política de protocolo de origen y la configuración de nombre de dominio de origen para orígenes específicos. En la configuración de CloudFront, puede especificar el nombre de DNS del servidor junto con el puerto y el protocolo que desea que CloudFront utilice al recuperar objetos del origen. También debe asegurarse de que el certificado SSL/TLS del servidor de origen personalizado coincide con el nombre de dominio de origen que ha configurado. Cuando utiliza su propio servidor web HTTP fuera de AWS, debe utilizar un certificado firmado por una entidad de certificación (CA) externa de confianza, como Comodo, DigiCert o Symantec. Para obtener más información acerca de cómo exigir HTTPS para la comunicación entre CloudFront y su propio servidor web, consulte el tema Exigir HTTPS para la comunicación entre CloudFront y su origen personalizado en la Guía para desarrolladores de Amazon CloudFront.

Exigir HTTPS entre un visor y CloudFront

Para exigir HTTPS entre los visores y CloudFront, puede cambiar la política de protocolo de visor para uno o varios comportamientos de la caché en la distribución de CloudFront. Para obtener más información acerca del uso de HTTPS entre visores y CloudFront, consulte el tema Exigir HTTPS para la comunicación entre visores y CloudFront en la Guía para desarrolladores de Amazon CloudFront. También puede traer su propio certificado SSL para que los visores puedan conectarse a su distribución de CloudFront a través de HTTPS utilizando su propio nombre de dominio, por ejemplo https://www.mysite.com. Para obtener más información, consulte el tema Configurar nombres de dominio alternativos y HTTPS en la Guía para desarrolladores de Amazon CloudFront.

Elegir los métodos HTTP a los que CloudFront responde

Al crear una distribución web Amazon CloudFront, puede seleccionar los métodos HTTP que desea que CloudFront procese y reenvíe a su origen. Puede elegir entre las siguientes opciones:

  • GET, HEAD–: puede usar CloudFront solo para obtener los objetos desde su origen u obtener encabezados de objeto.

  • GET, HEAD, OPTIONS–: puede utilizar CloudFront solo para obtener objetos del origen, obtener encabezados de objeto o recuperar una lista de las opciones admitidas por su servidor de origen.

  • GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE–: puede utilizar CloudFront para obtener, agregar, actualizar y eliminar objetos, así como para obtener encabezados de objeto. Además, puede realizar otras operaciones de POST como enviar datos desde un formulario web.

También puede utilizar instrucciones de regla de coincidencia de bytes de AWS WAF para permitir o bloquear solicitudes basadas en el método HTTP, como se describe en Instrucción de regla de coincidencia de cadenas. Si desea utilizar una combinación de métodos admitidos por CloudFront, como GET y HEAD, no es necesario configurar AWS WAF para bloquear las solicitudes que utilizan los demás métodos. Si desea permitir una combinación de métodos que no admitidos por CloudFront, como GET, HEAD y POST, puede configurar CloudFront para responder a todos los métodos y, a continuación, utilizar AWS WAF para bloquear solicitudes que utilicen otros métodos.

Para obtener más información acerca de la elección de los métodos a los que responde CloudFront, consulte Métodos HTTP permitidos en el tema Valores que especifica al crear o actualizar una distribución web en la Guía para desarrolladores de Amazon CloudFront.