¿Cómo puedo restringir el tráfico directo hacia un ALB y permitir solo el tráfico a través de CloudFront con AWS WAF?

4 minutos de lectura
0

Quiero impedir que los usuarios accedan directamente a un equilibrador de carga de aplicación (ALB) y permitir el acceso solo a través de Amazon CloudFront con AWS WAF. ¿Cómo puedo hacerlo con AWS WAF?

Resolución

Para restringir el tráfico directo hacia un ALB y permitir el tráfico solo a través de CloudFront con AWS WAF, haga lo siguiente:

  1. Configure CloudFront para agregar un encabezado HTTP personalizado con un valor secreto en las solicitudes que CloudFront envía al ALB.
  2. Cree una regla en la ACL web de AWS WAF asociada al ALB para bloquear las solicitudes que no contengan el valor secreto del encabezado HTTP personalizado.

Configure CloudFront para agregar un encabezado HTTP personalizado con un valor secreto en las solicitudes que envía al ALB.

  1. Abra la consola de Amazon CloudFront.
  2. En el panel de navegación, elija Distributions (Distribuciones).
  3. Seleccione el ID de la distribución.
  4. Seleccione Origins (Orígenes).
  5. Seleccione el origen de ALB y, a continuación, Edit (Editar).
    Nota: Si no tiene un origen de ALB, consulte Creating a distribution (Creación de una distribución) o Updating a distribution (Actualización de una distribución).
  6. Para agregar un encabezado personalizado, agregue el nombre y el valor del encabezado. Un ejemplo de un nombre de encabezado es Custom-Header (Encabezado-personalizado), y su valor es Random-12345.
    Importante: Considere el nombre y el valor del encabezado como credenciales seguras, al igual que un nombre de usuario y una contraseña.
  7. Seleccione Save changes (Guardar cambios).

Cree una regla en la ACL web de AWS WAF asociada al ALB para bloquear las solicitudes que no contengan el valor secreto del encabezado HTTP personalizado.

Nota: Si no tiene una ACL web existente asociada al ALB, siga los pasos que figuran en Create an AWS WAF web ACL (Crear una ACL web de AWS WAF). Si tiene una ACL web existente asociada al ALB, vaya a Create a rule (Crear una regla).

Crear una ACL web de AWS WAF

  1. Abra la consola de AWS WAF.
  2. En el panel de navegación, en AWS WAF (AWS WAF), seleccione Web ACL (ACL web).
  3. En Region (Región), seleccione la región de AWS en la que se encuentra el ALB.
  4. Seleccione Create web ACL (Crear ACL web) y, a continuación, ingrese un nombre.
  5. En Associated AWS resources (Recursos asociados de AWS), asocie el ALB y, a continuación, seleccione Next (Siguiente).
  6. En Default web ACL action for requests that don't match any rules (Acción de ACL web predeterminada para solicitudes que no coinciden con ninguna regla), seleccione Allow (Permitir) y, a continuación, Next (Siguiente).
  7. En Request sampling options (Opciones de muestreo de solicitudes), seleccione Enable sampled requests (Habilitar solicitudes de muestra) y, a continuación, Next (Siguiente).
  8. Revise la configuración de la ACL web. Si coincide con sus especificaciones, seleccione Create web ACL (Crear ACL web).

Crear una regla

  1. Abra la consola de AWS WAF.
  2. En el panel de navegación, en AWS WAF (AWS WAF), seleccione Web ACL (ACL web).
  3. En Region (Región), seleccione la región de AWS en la que se encuentra el ALB.
  4. Seleccione la ACL web a la que asoció el ALB.
  5. Seleccione Rules (Reglas) y, a continuación, Add Rules (Agregar reglas) y Add my own rules and rule groups (Agregar mis propias reglas y grupos de reglas).
  6. En Name (Nombre), ingrese un nombre de regla y, a continuación, seleccione Regular rule (Regla normal).
  7. En If a request (Si una solicitud), seleccione doesn't match the statement (NOT) (no coincide con la declaración [NOT]).
  8. En Statement 1 (Declaración 1), haga lo siguiente:
    En Inspect (Inspeccionar), seleccione Single Header (Encabezado único).
    En Header field name (Nombre del campo Encabezado), ingrese el nombre del encabezado creado en CloudFront. Por ejemplo, Custom-header (Encabezado-personalizado).
    En Match type (Tipo de coincidencia), seleccione Exactly matches string (Coincide con exactitud con la cadena).
    En String to match (Cadena para hacer coincidir), ingrese el valor creado en CloudFront. Por ejemplo, Random-12345.
    En Text transformation (Transformación de texto), seleccione None (Ninguno).
  9. En Action (Acción), seleccione Block (Bloquear).
  10. Seleccione Save rule (Guardar regla).
  11. En Set rule priority (Establecer prioridad de reglas), si tiene varias reglas, establezca la prioridad más alta para esta regla.
  12. Seleccione Save (Guardar).

Información relacionada

Agregar encabezados personalizados a las solicitudes de origen

Reglas de AWS WAF

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años