Как запустить точку доступа Лямбда-объекта с помощью доступа в стиле виртуального хостинга

#amazon-web-services #amazon-s3 #aws-lambda

Вопрос:

У меня есть корзина AWS S3, настроенная для статического веб-хостинга с открытым доступом.

Я создал точку доступа для корзины, создал функцию Лямбда для обеспечения некоторой базовой проверки GET и привязал точку доступа к Лямбде с помощью конфигурации точки доступа Лямбда-объекта. Это заняло много времени, потому что AWS не облегчает поиск, но вы должны иметь возможность получить доступ к точкам доступа через следующую конечную точку веб-сайта:

 https://<ACCESS_POINT_NAME>-<CUSTOMER_ID>.s3-accesspoint.<REGION>.amazonaws.com
 

Это, как мы надеемся, должно вызвать Лямбду во время любого запроса GET.

Однако, когда я перехожу на свой адрес в браузере, я получаю ошибку XML со следующим сообщением:

 The authorization mechanism you have provided is not supported. Please use Signature Version 4.
 

Согласно документам (

https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-restrictions-limitations.html

) только API REST требует проверки подписи, но и точки доступа также не поддерживают анонимный доступ.

Меня смущают эти, казалось бы, противоречивые сведения. Почему конечная точка веб-сайта доступна, но еще не разрешает анонимный доступ. Но если доступ к точке доступа через браузер не является API REST, почему он жалуется на требование подписи.

Возможен ли вообще мой дизайн с общедоступным ведром S3, доступ к которому осуществляется через точку доступа с уровнем контроля, предоставляемым через Лямбду? Если да, то какие конфигурации необходимы для выполнения этой работы?

Комментарии:

1. Я не думаю, что это возможно. Я не видел, где в документе написано «только API REST требует проверки подписи». Я вижу «Вы должны использовать AWS Signature версии 4 при отправке запросов к точке доступа с использованием API REST». Хотя это может быть не самый ясный документ, я не думаю, что вы можете выводить неподписанные запросы. Кроме того, я предполагаю, что «конечная точка веб-сайта» доступна, потому что клиенты S3 точки доступа должны отправлять свои запросы на эту конечную точку, а не на некоторые общие s3.amazonaws.com или mybucket.s3.amazonaws.com конечная точка. То есть это не предназначено специально для статического хостинга.