Saltar al contenido

¿Cómo elimino o modifico los encabezados de respuesta HTTP en CloudFront?

4 minutos de lectura
0

Quiero eliminar o modificar los encabezados de respuesta HTTP como Servidor, X-Cache, X-Forwarded-Host o X-Forwarded-Server de mi distribución de Amazon CloudFront.

Descripción corta

Elige una de las siguientes resoluciones en función del encabezado de respuesta que quieras modificar o eliminar:

  • Para modificar o eliminar incondicionalmente el valor de un encabezado de servidor, utiliza una política de encabezados de respuesta.
  • Para modificar el valor de un encabezado de servidor para una condición específica, utiliza una función de CloudFront.
  • Para eliminar un encabezado X-Forwarded-Host o X-Forwarded-Server, utiliza encabezados personalizados.
  • No puedes eliminar ni modificar el encabezado X-Cache. El encabezado X-Cache debe permanecer porque muestra el origen del encabezado, como la caché de CloudFront, una función o un origen.

Nota: CloudFront agrega sus propios encabezados de servidor y X-Cache a las respuestas que envía a los espectadores. CloudFront agrega los encabezados incluso cuando utilizas una política de encabezados de respuesta para eliminar los encabezados de la respuesta de origen.

Resolución

Uso de una política de encabezados de respuesta para modificar o eliminar un encabezado de servidor

Para modificar un encabezado de servidor, sigue estos pasos:

  1. Abre la consola de CloudFront.
  2. En el panel de navegación, elige Políticas y, a continuación, elige la pestaña Encabezados de respuesta.
  3. Selecciona Crear política de encabezados de respuesta.
  4. En la sección Detalles, en Nombre, introduce un nombre para tu política.
  5. En la sección Encabezados personalizados, elige Agregar encabezado.
  6. En Nombre, introduce Servidor.
  7. En Valor, introduce el valor del encabezado del servidor.
  8. Selecciona la opción de sustitución de origen para tu encabezado de servidor personalizado y, a continuación, elige Crear.
  9. Adjunta la política de encabezados de respuesta al comportamiento que desees en tu distribución de CloudFront.

CloudFront despliega los cambios y, a continuación, sustituye el valor del encabezado de servidor por el valor personalizado que has especificado en la política.

Para eliminar un encabezado de servidor, sigue estos pasos:

  1. Abre la consola de CloudFront.
  2. En el panel de navegación, elige Políticas y, a continuación, elige la pestaña Encabezados de respuesta.
  3. Selecciona Crear política de encabezados de respuesta.
  4. En la sección Detalles, en Nombre, introduce un nombre para tu política.
  5. En la sección Eliminar encabezados, selecciona Agregar encabezado.
  6. En Nombre, introduce Servidor y, a continuación, elige Crear.
  7. Adjunta la política de encabezados de respuesta al comportamiento que desees en tu distribución de CloudFront.

CloudFront despliega los cambios y, a continuación, sustituye el valor del encabezado de servidor por el valor de CloudFront.

Uso de una función de CloudFront para modificar el encabezado de servidor para una condición específica

Para sustituir el valor del encabezado de servidor por tu valor personalizado para el comportamiento que especifiques para una condición específica, sigue estos pasos:

  1. Abre la consola de CloudFront.
  2. En el panel de navegación, elige Funciones y, a continuación, selecciona Crear función.
  3. En Nombre, introduce un nombre para tu función.
  4. En Versión ejecutable, elige cloudfront-js-2.0.
  5. Selecciona Crear función.
  6. En la pestaña Desarrollo del editor de código, introduce el siguiente código:
    function handler(event) {
        var response = event.response;
        var headers = response.headers;
    
        if ('server' in headers && headers.server.value === 'YOUR_CONDITIONAL_VALUE') {
            headers.server.value = 'YOUR_CUSTOM_VALUE';
        }
    
        return response;
    }
    Nota: Sustituye YOUR_CONDITIONAL_VALUE por tu valor condicional y YOUR_CUSTOM_VALUE por el valor del encabezado de servidor.
  7. Selecciona Guardar cambios.
  8. Asocia la función con el comportamiento que desees en tu distribución de CloudFront.

La función de CloudFront sustituye el encabezado de servidor por tu valor personalizado para el comportamiento en la condición específica que has definido en la función.

Uso de encabezados personalizados para eliminar el encabezado "X-Forwarded-Host" o "X-Forwarded-Server"

Sigue estos pasos:

  1. Crea una función de Lambda@Edge.

  2. Agrega un desencadenador para la función de Lambda@Edge.
    La siguiente función de ejemplo de Node.js elimina los encabezados X-Forwarded-Host y X-Forwarded-Server:

    export const handler = async (event) => {
        const response = event.Records[0].cf.response;
        const headers = response.headers;
    
        // Remove X-Forwarded-Host header
        delete headers['x-forwarded-host'];
    
        // Remove X-Forwarded-Server header
        delete headers['x-forwarded-server'];
    
        return response;
    };
  3. Despliega la función de Lambda @Edge y, a continuación, asocia la función al desencadenador de solicitudes del espectador de la distribución de CloudFront.

  4. Usa el desencadenador para eliminar los encabezados especificados antes de reenviar las solicitudes al origen.

Información relacionada

Descripción de las políticas de encabezados de respuesta

Personalización en la periferia con CloudFront Functions

Personalización en la periferia con Lambda@Edge

OFICIAL DE AWSActualizada hace 8 meses