Назад | Перейти на главную страницу

Понимание идентификаторов доступа к источнику AWS Cloudfront

Я не очень разбираюсь в безопасности, стоящей за OAI AWS Cloudfront. Единственное, что он делает, это переключает домен корзины. Вместо доступа к ведру с https://s3.amazonaws.com/[Bucket]/* он просто переключает его с вашим доменом.

Но снова любой может просматривать эту корзину / папку, зная домен CF.

Я что-то упускаю? Я знаю, что вы можете добавить лямбда-функцию на стороне запроса средства просмотра, чтобы ограничить доступ из определенного приложения. Но как я могу запретить пользователям просто пробовать случайные URL-адреса. И я не считаю хорошей практикой выполнять аутентификацию и проверять, должен ли этот пользователь иметь доступ к ресурсу по каждому запросу.

Итак, каковы хорошие методы ограничения доступа моих пользователей только к тем ресурсам, которые им разрешено просматривать?

Цель Идентификация доступа к источнику чтобы помешать пользователям прямо доступ к S3 Bucket. Вместо этого они должны пройти через CloudFront; ведро S3 origin не разрешает доступ никому, кто обращается к нему напрямую.

Некоторые причины принудительного доступа через CloudFront:

  • Кеширование на краю (перевод из CloudFront дешевле, чем из S3, а также ближе к пользователю)
  • Аутентификация через Лямбда на краю
  • WAF обеспечение соблюдения

Если вы хотите ограничить доступ к отдельным объектам в вашей корзине, вам следует подумать об использовании Подписанные URL - например, когда пользователь входит на ваш веб-сайт, вы предоставляете его документы через предварительно подписанные URL-адреса, возможно, с некоторым сроком действия.

Лучше всего иметь отдельную корзину для общественные объекты (например, ресурсы веб-сайта - изображения, css, html) и другой для частные объекты требующие аутентификации (например, документы клиентов).

Здесь для Пример предварительно подписанного URL-адреса S3

Обновить:

Вы также можете использовать Лямбда на краю для аутентификации, как описано здесь: Используйте Lambda @ Edge для повышения безопасности веб-приложений

Какой из них использовать, зависит от вашего варианта использования. Предварительно подписанный URL-адрес является общедоступным и может быть ограничен по времени, URL-адреса с аутентификацией Lambda @ Edge не будут использоваться совместно и потребуют от пользователя входа в систему. Зависит от того, что вам нужно.

Надеюсь, это поможет :)