AWS получает предварительно подписанный URL с пользовательским доменом - PullRequest
0 голосов
/ 03 ноября 2018

Вот что я делаю. Я создаю предварительно подписанный URL-адрес, используя собственный домен для своих ресурсов корзины s3, которые не являются общедоступными.

https://files.customdomain.com/file123?AWSAccessKeyId=XXX&Expires=1541220685&Signature=XXXX

Также для добавления сертификата я создал дистрибутив облачного фронта для корзины, имеющей следующие настройки источника

Имя домена происхождения: bucket-name.s3.amazonaws.com Идентификатор происхождения: s3.bucket-name Ограничить доступ к корзине: нет

Пока я не могу получить доступ к своим ресурсам. Выдает ошибку доступа отказано. Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 03 ноября 2018

При использовании S3 с CloudFront не требуется подписанный URL-адрес S3 ... требуется подписанный URL-адрес CloudFront.

Чтение Настройка безопасности и ограничение доступа к контенту в руководстве разработчика CloudFront.

0 голосов
/ 03 ноября 2018

Я нашел решение для этого вопроса. Подписанный URL-адрес должен быть создан для конечной точки URL-адреса облачного фронта из корзины s3. Поэтому вместо
https://files.customdomain.com/file123?AWSAccessKeyId=XXX&Expires=1541220685&Signature=XXXX
это должно быть
https://cloudfront -url / file123? AWSAccessKeyId = XXX & Истекает = 1541220685 & Подпись = XXXX

и записи DNS должны были преобразовать пользовательский домен в URL-адрес облачного фронта.

0 голосов
/ 03 ноября 2018

Вы пытались инициализировать S3 с помощью пользовательского URL var S3 = new AWS.S3({endpoint: 'media.domain.com', s3BucketEndpoint: true}); Подробнее https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html Также убедитесь, что подпись верна https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version Ссылка: https://github.com/aws/aws-sdk-js/issues/891

...