Czy można ustawić nagłówki HSTS w dystrybucji Amazon CloudFront pochodzącej z S3?
źródło
Czy można ustawić nagłówki HSTS w dystrybucji Amazon CloudFront pochodzącej z S3?
Obecnie nie jest to możliwe, zobacz https://forums.aws.amazon.com/thread.jspa?threadID=162252, aby uzyskać dyskusję na ten temat.
Edycja: Lambda @ Edge umożliwiło to, patrz poniżej.
Aktualizacja tego ...
Nagłówki odpowiedzi HTTP można teraz dostosowywać za pomocą funkcji Lambda @ edge. Dokumentacja znajduje się na stronie http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html . Aby tego spróbować, utwórz nową funkcję lambda w konsoli AWS. Wybierz „Edge Nodge.js 4.3” jako język i poszukaj szablonu nagłówka cloudfront-modyfikuj-odpowiedź-odpowiedź. Jeśli to zrobisz, Lambda zapyta Cię, do której dystrybucji CloudFront i zdarzenia chcesz zastosować tę funkcję. Pamiętaj, że możesz to zmienić lub zmienić w dowolnym momencie, przechodząc do karty Zachowanie w Cloudfront.
Oto przykładowa funkcja 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);
};
Aby dodać do odpowiedzi Andrew:
Właśnie wypróbowałem to i kilka notatek: Nie ma już specyficznego środowiska uruchomieniowego nodejs, ale lambda musi zostać utworzona w regionie N Wirginii i uruchomiona przez chmurową odpowiedź źródłową lub odpowiedź widza .
Kod po wyjęciu z pudełka już nie działa. Daje ERR_CONTENT_DECODING_FAILED.
Rozwiązaniem jest użycie składni json w następujący sposób:
źródło
Poprawnie, ponieważ Lambda @ Edge jest ogólnie dostępna, ograniczyli ją do N Wirginii i należy wybrać Węzeł 6.10 zamiast Węzła 4.3.
Odpowiednia część naszego kodu poniżej (dla naszego celu będzie to zawsze stałe przekierowanie 302):
Konfigurując różne zachowania na CloudFront, możesz ograniczyć liczbę żądań wywołujących funkcję Lambda.
źródło