Я не очень разбираюсь в безопасности, стоящей за OAI AWS Cloudfront. Единственное, что он делает, это переключает домен корзины. Вместо доступа к ведру с https://s3.amazonaws.com/[Bucket]/*
он просто переключает его с вашим доменом.
Но снова любой может просматривать эту корзину / папку, зная домен CF.
Я что-то упускаю? Я знаю, что вы можете добавить лямбда-функцию на стороне запроса средства просмотра, чтобы ограничить доступ из определенного приложения. Но как я могу запретить пользователям просто пробовать случайные URL-адреса. И я не считаю хорошей практикой выполнять аутентификацию и проверять, должен ли этот пользователь иметь доступ к ресурсу по каждому запросу.
Итак, каковы хорошие методы ограничения доступа моих пользователей только к тем ресурсам, которые им разрешено просматривать?
Цель Идентификация доступа к источнику чтобы помешать пользователям прямо доступ к S3 Bucket. Вместо этого они должны пройти через CloudFront; ведро S3 origin не разрешает доступ никому, кто обращается к нему напрямую.
Некоторые причины принудительного доступа через CloudFront:
Если вы хотите ограничить доступ к отдельным объектам в вашей корзине, вам следует подумать об использовании Подписанные URL - например, когда пользователь входит на ваш веб-сайт, вы предоставляете его документы через предварительно подписанные URL-адреса, возможно, с некоторым сроком действия.
Лучше всего иметь отдельную корзину для общественные объекты (например, ресурсы веб-сайта - изображения, css, html) и другой для частные объекты требующие аутентификации (например, документы клиентов).
Здесь для Пример предварительно подписанного URL-адреса S3
Обновить:
Вы также можете использовать Лямбда на краю для аутентификации, как описано здесь: Используйте Lambda @ Edge для повышения безопасности веб-приложений
Какой из них использовать, зависит от вашего варианта использования. Предварительно подписанный URL-адрес является общедоступным и может быть ограничен по времени, URL-адреса с аутентификацией Lambda @ Edge не будут использоваться совместно и потребуют от пользователя входа в систему. Зависит от того, что вам нужно.
Надеюсь, это поможет :)