Защита паролем S3 Bucket с лямбда-функцией в AWS - PullRequest
0 голосов
/ 20 октября 2018

Я добавил аутентификацию веб-сайта для корзины s3 с использованием лямбда-функции , а затем подключил лямбда-функцию к CloudFront с помощью настроек поведения в настройках распространения, и она работала нормально, а также добавила аутентификацию (означает аутентификацию htaccess на простых серверах),Теперь я хочу изменить пароль для аутентификации моего сайта.Для этого я обновил пароль и опубликовал новую версию лямбда-функции, а затем в настройках дистрибутива;Я создал новую аннулирование для очистки кэша.Но это не сработало, и пароль аутентификации веб-сайта не изменился.Ниже приведен код лямбда-функции для добавления аутентификации.

'use strict';

exports.handler = (event, context, callback) => {

  // Get request and request headers
  const request = event.Records[0].cf.request;
  const headers = request.headers;

  // Configure authentication
  const authUser = 'user';
  const authPass = 'pass';

  // Construct the Basic Auth string
  const authString = 'Basic ' + new Buffer(authUser + ':' + authPass).toString('base64');

  // Require Basic authentication
  if (typeof headers.authorization == 'undefined' || headers.authorization[0].value != authString) {
      const body = 'Unauthorized';
      const response = {
        status: '401',
        statusDescription: 'Unauthorized',
        body: body,
        headers: {
            'www-authenticate': [{key: 'WWW-Authenticate', value:'Basic'}]
        },
      };
     callback(null, response);
  }

    // Continue request processing if authentication passed
     callback(null, request);
};

Может кто-нибудь помочь мне решить проблему.

Заранее спасибо.

1 Ответ

0 голосов
/ 20 октября 2018

В представлении функции Lambda: после сохранения изменений (использование Firefox может быть более безопасным вариантом, см. Ниже, если вам интересно, почему)

вы увидите пункт меню в разделе «Конфигурация -> Дизайнер -> CloudFront».Вы увидите следующие экраны.

enter image description here

enter image description here

После развертывания:

enter image description here

Вы можете опубликовать свое изменение в дистрибутиве CloudFront.Как только вы опубликуете это, он автоматически начнет развертывание дистрибутива CF, который вы можете просмотреть в меню CF.

Также я бы предпочел использовать «Viewer Request» в качестве события триггера CloudFront, но не уверен, какой вы используете как этотследует избегать кэширования Cloudfront.Помимо этого, Chrome иногда не может сохранить изменения в Lambda.На консоли aws должна быть ошибка.Попробуйте Firefox просто для безопасности при редактировании лямбда-функций.

...