Usar AWS WAF con Amazon CloudFront
En esta sección, se explica cómo usar AWS WAF con las características de Amazon CloudFront.
Al crear una ACL web, puede especificar una o más distribuciones de CloudFront que desee que AWS WAF inspeccione. AWS WAF comienza a inspeccionar y administrar las solicitudes web de esas distribuciones en función de los criterios que identifique en la ACL web. CloudFront proporciona algunas características que mejoran la funcionalidad de AWS WAF. Este capítulo describe algunas formas de configurar CloudFront para que CloudFront y AWS WAF funcionen mejor combinados.
Temas
Uso de AWS WAF con páginas de error personalizadas de CloudFront
De forma predeterminada, cuando AWS WAF bloquea una solicitud web en función de los criterios que especifique, devuelve el código de estado HTTP 403 (Forbidden)
a CloudFront y CloudFront se lo devuelve al lector. El visor muestra un breve mensaje predeterminado con formato elemental similar al que se muestra a continuación:
Forbidden: You don't have permission to access /myfilename.html on this server.
Puede anular este comportamiento en las reglas de la ACL web de AWS WAF definiendo respuestas personalizadas. Para obtener más información sobre cómo personalizar el comportamiento de respuesta mediante reglas de AWS WAF, consulte Envío de respuestas personalizadas para las acciones Block.
nota
Las respuestas que personalice mediante reglas de AWS WAF tienen prioridad sobre cualquier especificación de respuesta que defina en las páginas de error personalizadas de CloudFront.
Si prefiere mostrar un mensaje de error personalizado en CloudFront, posiblemente 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 Generar respuestas de error personalizadas en la Guía para desarrolladores de Amazon CloudFront.
Uso de AWS WAF con CloudFront para aplicaciones que se ejecutan en su propio servidor HTTP
Si utiliza AWS WAF con , 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 su 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 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 de 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 o para 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 objetos. Además, puede realizar otras operaciones dePOST
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 que configure 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.