Сайт моей компании имеет статическую домашнюю страницу по причинам стоимости и скорости. Мы используем S3 в качестве источника для CloudFront. Теперь, мы хотели бы объявить Строгую Транспортную безопасность для всего домена, но S3, кажется, не отправляет любые заголовки, которые мы указываем (вне, запускающихся с подобного x-aws-). CloudFront, кажется, не имеет пользовательской опции заголовка также.
Действительно ли это возможно?
Начиная с 16.07.2017, функциональность, которую вы искали, доступна через Lambda @ Edge, см. http://docs.aws.amazon.com/AmazonCloudFront/latest/ DeveloperGuide / lambda-at-the-edge.html для получения общей документации или конкретный пример на https://nvisium.com/blog/2017/08/10/lambda-edge-cloudfront-custom- headers /
Ответ Дэвида указывает на документы , которые сводятся к следующему:
us-east-1
- CloudFront автоматически копирует их в другие регионы - уровни не поддерживаются, и все триггеры должны использовать явный ARN - без псевдонимов или с использованием $ ПОСЛЕДНИЙ
. 'use strict';
exports.handler = (event, context, callback) => {
const response = event.Records[0].cf.response;
const headers = response.headers;
headers['strict-transport-security'] = [{
key: 'Strict-Transport-Security',
/*
* verify that max-age and 'includeSubdomains' are the settings you want
*/
value: 'max-age=31536000; includeSubdomains; preload'
}];
callback(null, response);
};
$ LATEST
или псевдоним для следующего шага. Вы захотите установить тип события как origin-response
(между S3 и кешем) или viewer-response
(между кешем и браузером) и указать ARN с версией, которую вы опубликовали выше - например,
arn: aws: lambda: us-east-1: 1234567890: function: MY-FUNCTION-NAME: v1
Дождитесь обновления дистрибутива и проверьте наличие заголовков в ответе
Теперь вы можете добавлять заголовки HTTP-ответов изначально в CloudFront (, включая HSTS), без изменения вашего источника или написания функции. Создайте новую политику заголовков ответов с вашей конфигурацией, а затем прикрепите политику к одному или нескольким режимам кэширования.
Документация доступна здесь: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html