2013-07-31 3 views
0

У меня есть 2 ведра для моего приложения: - gambify-DEV-дьявол (для развития) - gambify-Prod (для производства)Amazon S3 Разрешение Выпуск

Я поставил их абсолютно идентичны, но для моего У меня проблемы с доступом к некоторым ресурсам. Моя производственная среда - пагодка. Я использую Gaufrette, LiipImagine и Vichuploader для обработки файлов. Проблема в том, что в моей рабочей среде кажется, что либо мое приложение запрашивает неправильные ресурсы, либо что есть проблема с доступом. Потому что у меня есть много журналов с указанием ошибки AccessDenied в моем ведре:

<Error> 
<Code>AccessDenied</Code> 
<Message>Access Denied</Message> 
<RequestId>D90C05F182C91003</RequestId> 
<HostId> 
i7SkwNCbyUnCCBCnkyyrv7x9pOLGtr4sUgqWYkJMqk0X0lXYIW5zeu4688FCqBiA 
</HostId> 
</Error> 

Для дальнейшего изучения этого вопроса (я действительно понятия не имею, где он исходит из того, потому его работает отлично в любой другой среде, а также в производстве он работал отлично 2 недели назад), я хотел бы посмотреть, какой запрос был запрошен. Есть ли возможность найти URL-адрес, который был запрошен или кто пытался запросить, что вызвало эту проблему? Потому что, если я обеспечиваю правильный путь к существующему ressouce ведро работает отлично: например: https://s3-eu-west-1.amazonaws.com/gambify-prod/profile/default.png

Update: Теперь я нашел настоящую ошибку, которая вызывает у меня проблемы:

04fadbab7a82c23143855d5c918e1ba8fa32ef1d622c00a3daa9fcdc6daf5d90 gambify- подталкивать [05/август/2013: 19: 03: 57 +0000] 173.193.185.250 - 133EF43443891C63 REST.HEAD.OBJECT profile_thumb_small/51e9a03453c80.jpeg "ГОЛОВКА /profile_thumb_small/51e9a03453c80.jpeg HTTP/1.1" 403 SignatureDoesNotMatch 1015 - 7 - "https://gambify-prod.s3.amazonaws.com/profile_thumb_small/51e9a03453c80.jpeg" «АМС-СДК-PHP/1.5.17.1 PHP/5.3.23 Linux/2.6.32-042stab068.8 Arch/x86_64 SAPI/FPM-FCGI Integer/9223372036854775807 Сложение/20121126140000 SimpleXML/0,1 JSON /1.2.1 pcre/8.31 spl/0.2 curl/7.19.7 openssl/0.9.8k apc/3.1.9 pdo/1.0.4dev pdo_sqlite/1.0.1 sqlite/2.0-dev sqlite3/0.7-dev zlib/1.1 memory_limit/200M date.timezone/Europe.Berlin open_basedir/выкл safe_mode/выкл zend.enable_gc/на»-

Я до сих пор понятия не имею, что является причиной первоначального вопроса.

Переехал обсуждение об ошибке подписи к: Amazon S3 signature not working with SDK

ответ

0

Если вы еще не сделали этого, вы можете настроить производство ведро, чтобы сохранить журнал всех запросов, сделанные против него, похожих на Apache или другой журнал доступа к веб-серверу.

http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html

После того, как вы включили ведение журнала, вы сможете узнать URL запроса, который просил его, и когда это было предложено.

Update:

Если AccessDenied возвращается ошибка при попытке получить доступ к файлам журнала сервера S3 через API или консоли AWS, проблема вызвана отсутствием разрешений (ACL) на лог-файлы.

Для доступа к этим файлам журнала пользователю должно быть предоставлено разрешение Open/Download.Наличие политики ведра с общедоступным чтением недостаточно для доступа к файлам журнала сервера.

Подробнее об этой проблеме можно найти в комментариях ниже.

+0

Я немного смущен, потому что я уже включил ведение журнала в консоли, но в документации указано, что есть поля, которые могут быть зарегистрированы: https://forums.aws.amazon.com/thread.jspa?threadID = 131329 & tstart = 0 – m0c

+0

Я не уверен, что вы ищете нужное место. Если журналы доступа включены, разница в ответе, полученном с S3 после вызова API, не будет. Вы должны искать в журналах доступа, которые сохраняются на S3, в ведомом ведомости, который вы указали при настройке вашего производственного ковша. – dcro

+0

Я смотрю в ковше. (Это тот же самый ковш, к которому осуществляется доступ). И есть много файлов, содержащих только цитируемый контент. – m0c

0

Это похоже на ответы, которые S3 отправляет обратно, когда разрешения ACL/Grant установлены неправильно. Сначала я проверил их. Если ваше ведро находится за дистрибутивом CloudFront, убедитесь, что вы также сделали недействительным кеш CloudFront.

+0

Я не отстаю от облачного фронта, я не настройте любой материал ACL, просто попытайтесь сделать его общедоступным (для обслуживания изображений) и иным образом плохой доступ к нему через API для хранения изображений. – m0c

+0

Странно. Это довольно старая версия SDK, но я был бы удивлен, если бы это была проблема. Вы делаете запрос HEAD в файле с помощью SDK, но аутентификации строки запроса нет. Предположительно, потому что файл уже открыт. Хммм ... –

Смежные вопросы