Назад | Перейти на главную страницу

Нет прав доступа к файлам в Amazon s3 для администратора

Мы перенесли файлы из одного ведра в другое на отдельной учетной записи с --acl-public следующим образом:

s3cmd cp -v --recursive --acl-public s3://source-geo/webroot s3://dest-geo/webroot/

Теперь файлы s3: // dest-geo / webroot / общедоступны.

Через консоль Amazon s3, когда мы вошли в пункт назначения с основным пользователем учетной записи (пользователем с правами администратора) в разделе разрешений для всех файлов, он отображается как «Разрешения не добавлены ...».

Мы можем загрузить эти файлы без каких-либо проблем, но проблема в том, когда мы меняем acl, добавляем метаданные, меняем права доступа и т. Д.

Через S3browser, когда мы получаем доступ к разрешению этих файлов, мы получаем ошибку, как «Произошла ошибка при разрешении для. В доступе отказано."

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

Может ли кто-нибудь помочь нам в этом.

Это немного устарело, но недавно я столкнулся с теми же симптомами с другим решением.

У нас получилось целое ведро объектов без разрешений. Мы могли видеть их с консоли, загружать их с консоли, но не из наших инструментов CLI. Объекты, показанные в консоли, не имеют разрешений, но было невозможно добавить или удалить разрешения для этих объектов через консоль AWS, aws cli, s3cmd и т. Д., Даже после предоставления всем (всем-aws-пользователям) доступа к ведро из интерфейса командной строки.

Однако после некоторого расследования выяснилось, что для корзины была неправильно установлена ​​политика, запрещающая любой доступ, кроме одного произвольного IP-адреса. Эта политика превосходила списки политик acl, установленные для каждого объекта.

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

Рекомендую использовать AWS Cli вместо S3cmd. AWS cli это официальный инструмент от Amazon. проста в установке и использовании. также хорошо задокументирован.

Копировать из ведра в другое. используйте s3 cp, например:

aws s3 cp s3://mybucket/ s3://mybucket2/ --recursive --exclude "mybucket/another/*"

Чтобы изменить разрешения / общедоступное чтение acl для корзины (включая объекты в корзине), используйте s3api put-bucket-acl

aws s3api put-bucket-acl --bucket MyBucket --grant-read 'uri="http://acs.amazonaws.com/groups/global/AllUsers"'