Пароль защищает ведро s3 с лямбда-функцией в aws

Я добавил аутентификацию веб-сайта для ведомости 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: 駩',
        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 ответ


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

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

введите описание изображения здесь

введите описание изображения здесь

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

введите описание изображения здесь

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

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


Есть идеи?

10000