Quiero restringir el acceso directo a un equilibrador de carga de aplicación y permitir el acceso solo a través de Amazon CloudFront.
Descripción corta
Para restringir el tráfico directo a un equilibrador de carga de aplicación y permitir el acceso solo a través de CloudFront, utiliza las reglas del agente de escucha del equilibrador de carga de aplicación. Si ya tienes una lista de control de acceso web (ACL) de AWS WAF, puedes usar las reglas de ACL web. Para restringir aún más el acceso a tu equilibrador de carga de aplicación, configura tu grupo de seguridad para restringir el acceso a tu origen. Para ello, utiliza la lista de prefijos administrados por AWS. Se recomienda usar una de estas soluciones y también configurar el grupo de seguridad.
Resolución
Reglas del agente de escucha del equilibrador de carga de aplicación
Para usar las reglas del agente de escucha del equilibrador de carga de aplicación para restringir el tráfico, consulta Restringir el acceso a los equilibradores de carga de aplicación.
AWS WAF
Nota: Los cargos de AWS WAF se basan en los siguientes factores:
- Cantidad de ACL web que creas
- Cantidad de reglas que agregas para cada ACL web
- Cantidad de solicitudes web que recibes
Para obtener más información, consulta Precios de AWS WAF.
Para usar las reglas de ACL web personalizadas de AWS WAF para restringir el tráfico, configura CloudFront para agregar un encabezado HTTP personalizado. Crea una regla en la ACL web de AWS WAF asociada al equilibrador de carga de aplicación. Usa esta regla para bloquear las solicitudes que no contengan el valor secreto del encabezado HTTP personalizado.
Configurar CloudFront para agregar un encabezado HTTP personalizado
Sigue estos pasos:
- Abre la consola de CloudFront.
- En el panel de navegación, elige Distribuciones y, a continuación, selecciona tu ID de distribución.
- Elige la pestaña Orígenes.
- Selecciona tu equilibrador de carga de aplicación y, a continuación, elige Editar.
Nota: Si tu equilibrador de carga de aplicación no es un origen, actualiza tu distribución y luego establece el equilibrador de carga de aplicación como origen.
- Para Agregar encabezado personalizado, introduce el nombre de encabezado y el valor.
Importante: El nombre y el valor del encabezado actúan como credenciales seguras, como un nombre de usuario y una contraseña. Anota los valores que se utilizarán más adelante en este procedimiento.
- Selecciona Guardar cambios.
Creación de una regla en la ACL web para bloquear las solicitudes sin el encabezado
Sigue estos pasos:
- Abre la consola de AWS WAF.
- En el panel de navegación, elige Paquetes de protección y recursos.
- Selecciona Crear paquete de protección.
- En Cuéntanos acerca de tu aplicación, en Categoría de la aplicación, selecciona una o más categorías de aplicaciones.
- En Origen de tráfico, elige el tipo de tráfico con el que interactúa la aplicación, como API, Web o API y web.
- En Recursos que proteger, elige Agregar recursos.
- En Global, elige Agregar recursos de CloudFront o Amplify.
- Selecciona tu distribución en la lista.
- En Elegir un paquete de protección, selecciona Crea tu propio paquete a partir de todas las protecciones que ofrece AWS WAF.
- En el panel derecho, elige Regla personalizada y selecciona Siguiente.
Vuelve a elegir Regla personalizada y selecciona Siguiente.
- Establece la Acción de la regla en BLOQUEAR.
- Introduce el nombre de la regla.
- En Si una solicitud, expande el menú desplegable y elige no cumple la instrucción (NOT).
- En Inspeccionar, elige Encabezado individual.
- En Instrucción, completa lo siguiente:
En Nombre del campo de encabezado, introduce el nombre del encabezado que creaste en CloudFront.
En Tipo de coincidencia, selecciona Coincide exactamente con la cadena.
En Cadena que debe coincidir, indica el valor que has creado en CloudFront.
(Opcional) En Transformación de texto, elige Ninguna.
- Selecciona Crear regla.
- (Opcional) Para establecer la prioridad de varias reglas, selecciona Editar orden de reglas en el panel derecho y, a continuación, establece esta regla en la prioridad más alta.
- Selecciona Guardar orden de reglas.
- En Nombre y descripción, introduce un nombre para tu paquete de protección.
- Haz clic en Crear paquete de protección.
Configuración de los grupos de seguridad
Para restringir aún más el tráfico a un equilibrador de carga de aplicación, utiliza una lista de prefijos administrada por AWS en los grupos de seguridad del equilibrador de carga de aplicación.
Para actualizar un grupo de seguridad existente, consulta Update the associated security groups (Actualizar los grupos de seguridad asociados). Para asociar el equilibrador de carga de aplicación a un grupo de seguridad, completa estos pasos:
- Abre la consola de Amazon Elastic Compute Cloud (Amazon EC2).
- En el panel de navegación, en Equilibrio de carga, selecciona Equilibradores de carga.
- Selecciona tu equilibrador de carga de aplicación y, a continuación, elige Seguridad.
- Selecciona el grupo de seguridad que deseas asociar a tu equilibrador de carga de aplicación.
- Para modificar las reglas de entrada, selecciona Editar reglas de entrada y, a continuación, actualiza las configuraciones según el caso práctico.
Nota: Si tienes una regla que permite 0.0.0.0/0, debes agregar una nueva regla antes de eliminar la regla existente.
- Para permitir protocolos específicos, selecciona el protocolo y, a continuación, elige Personalizado.
- En Tipo de origen, elige CloudFront y, a continuación, selecciona tus prefijos en la lista de prefijos administrados por AWS.
- Selecciona Guardar.
Nota: Se recomienda permitir los puertos que solo usa el equilibrador de carga de aplicación.
Solo puedes agregar la lista de prefijos administrados de CloudFront una vez para cada grupo de seguridad con la configuración predeterminada debido al peso de la lista de prefijos. Para agregar otra regla con CloudFront como tipo de origen en el mismo grupo de seguridad, solicita un aumento de cuota. O bien, utiliza dos grupos de seguridad que hagan referencia a la lista de prefijos administrados de CloudFront.
Información relacionada
Limitar el acceso a los orígenes mediante la lista de prefijos administrados por AWS para Amazon CloudFront
¿Cómo puedo restringir el acceso al contenido web proporcionado por mi distribución de CloudFront desde una ubicación concreta?