В настоящее время мы обслуживаем файлы из S3 с использованием предварительно назначенных URL-адресов, однако в некоторых местах URL-адреса S3 блокируются, поэтому мы пытаемся перенаправить их на пользовательский URL-адрес.Мы настроили дистрибутив CloudFront так, чтобы он указывал на желаемую корзину S3.Мы установили в качестве альтернативных доменных имен запись A из зоны, расположенной на маршруте 53.У нас также есть собственный SSL-сертификат, который мы используем в другом месте, я полагаю.
Когда я использую botocore CloudFrontSigner
для создания подписанного URL, как показано в документации boto3 я получаюАвторизация Отказано в ответе как в запросах, так и из браузера.Когда я использую curl -s -v <url>
, я получаю <?xml version="1.0" encoding="UTF-8"?>AccessDenied
Доступ запрещен
.Просматривая ответ скручивания, я вижу
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
* subject: C=US; ST=Washington; L=Seattle; O=Amazon.com Inc.; CN=*.cloudfront.net
* start date: Nov 22 00:00:00 2017 GMT
* expire date: Nov 21 12:00:00 2018 GMT
* subjectAltName: host "dXXXXXXXXXXXXX.cloudfront.net" matched cert's "*.cloudfront.net"
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global CA G2
* SSL certificate verify ok.
, который, кажется, указывает на то, что соединение с CloudFront через альтернативное доменное имя было успешным.Моя мысль была, ну правильно, мне нужен OAI, чтобы на самом деле выполнить соединение с S3.Поэтому я следую инструкциям по добавлению OAI в CloudFront.Я попытался снова, убедившись, что дистрибутив был развернут (и снова этим утром), но конечный результат всегда «Отказано в доступе».
В данный момент я нахожусь в тупике.Я не понимаю, почему я не могу создать подписанный URL, который работает.Можно мне помочь, пожалуйста?