¿Es posible establecer encabezados HSTS en una distribución de Amazon CloudFront desde un origen S3?
fuente
¿Es posible establecer encabezados HSTS en una distribución de Amazon CloudFront desde un origen S3?
Actualmente no es posible, consulte https://forums.aws.amazon.com/thread.jspa?threadID=162252 para obtener una discusión al respecto.
Editar: Lambda @ Edge lo ha hecho posible, ver más abajo.
Una actualización sobre esto ...
Los encabezados de respuesta HTTP ahora se pueden personalizar mediante las funciones de Lambda @ edge. Consulte http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html para obtener la documentación. Para probar esto, cree una nueva función lambda en la consola de AWS. Elija 'Edge Nodge.js 4.3' para el idioma y busque la plantilla de cabecera de modificación de frente de nube. Si hace esto, Lambda le preguntará a qué distribución y evento de CloudFront aplicar la función. Tenga en cuenta que puede editar o cambiar esto en cualquier momento accediendo a la pestaña de comportamiento de Cloudfront.
Aquí hay un ejemplo de función lambda ...
'use strict';
exports.handler = (event, context, callback) => {
const response = event.Records[0].cf.response;
response.headers['Strict-Transport-Security'] = 'max-age=2592000; includeSubDomains';
callback(null, response);
};
Para agregar a la respuesta de Andrew:
Acabo de probar esto y un par de notas: ya no hay un tiempo de ejecución de edgejs de edge específico, pero la lambda necesita ser creada en la región de N Virginia y activada por la respuesta de origen frente a la nube o la respuesta del espectador .
El código fuera de la caja ya no parece funcionar. Da ERR_CONTENT_DECODING_FAILED.
La solución es usar la sintaxis json de la siguiente manera:
fuente
Correcto, dado que Lambda @ Edge está generalmente disponible, lo restringieron a N Virginia y uno tiene que elegir el Nodo 6.10 en lugar del Nodo 4.3.
La parte relevante de nuestro código a continuación (para nuestro propósito, esta siempre será una redirección 302 permanente):
Al configurar diferentes comportamientos en CloudFront, puede limitar qué solicitudes llamarán a la función Lambda.
fuente