Нет прав для файлов в 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, когда мы получаем доступ к разрешениям этих файлов, мы получаем ошибку как "Ошибка произошла во время Разрешения для. Доступ закрыт."

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

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

2 ответа

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

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

Однако после некоторого расследования выяснилось, что в корзине неправильно установлена ​​политика, запрещающая любой доступ, кроме одного произвольного 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"'
Другие вопросы по тегам