2017-01-30 4 views
1

Итак, я следил за руководствами на CloudFront и S3, и я чувствую, что Im по-прежнему не хватает основной информации в отношениях между Origin Access Identities и CloudFront Signed URL.Взаимосвязь между идентификаторами доступа и идентификаторами доступа CloudFront

Что я хочу: Частный CDN для размещения аудио фрагментов (несколько секунд в длину) и изображений с низким разрешением. Я хочу, чтобы эти файлы были доступны по запросу из определенного домена (домена, на котором будет работать webapp) и, возможно, сервера тестирования. Так что мой веб-приложение может получить файлы, но человек просто не может получить доступ к ним без прохождения через веб-приложение

Что Im путается: Я нечеткий на отношениях (если таковой имеется) между CloudFront Origin доступом идентичностями и Signed CloudFront Urls.

В настоящее время я создал частный S3, OAI для моего облачного распределения и создал сгенерированный URL-адрес изображения через облачный интерфейс. Но я не вижу, как эти вещи связаны друг с другом и как они препятствуют доступу других пользователей к файлам CDN (если они смогли выполнить проверку и элемент и получить подписанный URL-адрес).

Следует ли исправить срок действия подписанного URL-адреса? И если да, то как OAI играет в этом роль? Это что-то сделано в CORS?

ответ

0

Добавить новую запись CNAME, которая указывает на ваш домен CloudFront. Эта запись должна соответствовать той, которая введена в «Альтернативные имена доменов» из консоли CloudFront.

enter image description here

По умолчанию CloudFront генерировать имя домена автоматически (например, d3i29vunzqzxrt.cloudfront.net), но вы можете определить альтернативное доменное имя.

Также вы можете защитить CloudFront Serving Private Content through CloudFront

+0

Хорошо. Разве CDN не изменит только URL? Как это обеспечит, чтобы на другом, кроме моего указанного домена, доступ к элементам на CDN? – crazyCoder

+1

Вы можете по желанию защитить содержимое в своем ковше Amazon S3, чтобы пользователи могли получить к нему доступ через CloudFront, но не могли получить к нему доступ напрямую, используя URL-адреса Amazon S3. Это не позволяет обойти CloudFront и использовать URL-адрес Amazon S3 для получения контента, к которому вы хотите ограничить доступ. Этот шаг не требуется для использования подписанных URL-адресов --AWS –

4

Идентичность доступа происхождения является объектом внутри CloudFront, что может быть санкционирован ковшом политикой доступа к объектам в ведре. Когда CloudFront использует идентификатор доступа источника для доступа к содержимому в ведре, CloudFront использует учетные данные OAI для генерации подписанного запроса, который он отправляет в ведро для извлечения содержимого. Эта подпись недоступна для зрителя.

Значение слова «происхождение», используемое здесь, не следует путать со словом «происхождение», которое используется в других контекстах, таких как CORS, где «происхождение» относится к сайту, которому разрешен доступ к контенту ,

Идентификатор доступа источника не имеет никакого отношения к ограничению доступа к запросам, содержащим конкретный заголовок или Referer.

Как только подписанный URL-адрес подтвержден CloudFront в соответствии с ключом подписи CloudFront, связанным с вашей учетной записью AWS (или другой учетной записью, которую вы назначаете как доверенный подписчик), объект извлекается из ведра с использованием любых разрешений, личность была предоставлена ​​в ведре.

Следует ли считать, что срок действия подписанного срока истекает быстро?

По существу, да.

Аутентификация и авторизация запросов путем ограничения доступа на основе сайта, на котором была найдена ссылка, составляет не жизнеспособной меры безопасности. Он предотвращает горячую связь с других сайтов, но не защищает всех, кто может подделывать заголовки запросов. Преодоление такой меры тривиально.

Подписанные URL-адреса, напротив, чрезвычайно устойчивы к ошибкам в отношении вычислительной неосуществимости.

Подписанный URL не только действителен только до истечения срока его действия, но также может также ограничивать доступ к лицу, имеющему тот же IP-адрес, который включен в документ политики, если вы используете custom policy. После подписания любое изменение URL-адреса, включая заявление о политике, делает весь URL непригодным для использования.

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

+0

Получил его. Поэтому, пытаясь ограничить доступ, так что только мой сайт может обращаться к файлам cdn, это не хороший подход? Мне лучше просто создать url с разумными сроками истечения срока действия или url с пользовательскими политиками, которые IP ограничивает только для доступа к моему сайту (домену)? – crazyCoder

+0

Попытка ограничить, чтобы ваш сайт, по волшебству, в силу того факта, что веб-браузер * утверждает, что это запрос с вашего сайта, является примитивной формой защиты контента. Да URL с истечением срока лучше. Подписанный URL-адрес, ограниченный * IP-адресом * пользователя, также может помочь, если вы беспокоитесь о том, что пользователи «разделяют» URL-адреса. Обратите внимание, что IP - это IP-адрес пользователя, а не IP-адрес вашего сайта. Идея, как правило, заключается в создании подписанных URL-адресов при рендеринге страницы. Позвольте мне знать, что этот ответ требует более подробных или разъяснений. –

+0

Я вижу, спасибо. Меня беспокоило меньше пользователей, которые используют URL-адреса и многое другое, со ссылкой на материал webapp (аудиофайлы и изображения). Использование полосы пропускания в стороне, эти файлы не должны быть доступны за пределами webapp для кого-либо еще. – crazyCoder