Наследование разрешений AWS S3 и CEPH / Rados Bucket
У меня проблемы с созданием публично читаемого ведра. Я работаю в магазине CEPH / Rados, используя Amazon aws-sdk v 1.60.2
Я создал ведро, похожее на много разных уроков с
s3.buckets.create('bucketName', :acl => :public_read)
Затем я загрузил несколько файлов до s3.buckets['bucketName']
Но когда я захожу и смотрю на определенные разрешения для корзины и ее внутренних объектов, у корзины, которую я вижу, есть разрешения READ, предоставленные группе AllUsers, а также FULL_CONTROL, установленный для пользователя, с которым я создал корзину. Однако объекты не наследуют анонимные права на чтение. Мне нужно, чтобы объекты в корзине были доступны для чтения анонимно.
Как примечание, я вижу эти разрешения при запуске s3.buckets['bucketName'].acl
, Когда я пытаюсь бежать s3.buckets['bucketName'].policy
Я получаю следующую ошибку, которая не имеет смысла:
/var/lib/gems/1.9.1/gems/json-1.8.3/lib/json/common.rb:155:in `parse': 757: unexpected token at '<?xml version="1.0" encoding="UTF-8"?><ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Name>erik.test</Name><Prefix></Prefix><Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated></ListBucketResult>' (JSON::ParserError)
from /var/lib/gems/1.9.1/gems/json-1.8.3/lib/json/common.rb:155:in `parse'
from /var/lib/gems/1.9.1/gems/aws-sdk-v1-1.60.2/lib/aws/core/policy.rb:146:in `from_json'
from /var/lib/gems/1.9.1/gems/aws-sdk-v1-1.60.2/lib/aws/s3/bucket.rb:621:in `policy'
from test.rb:20:in `<main>'
Вышеприведенная ошибка выглядит так, будто aws-sdk вызывает json-анализатор для строки XML, чего не должно быть.
Я не могу просто загрузить объекты с явными разрешениями, потому что мой проект будет загружать BOSH в магазин автоматически.
1 ответ
К сожалению, политики наследуются, поэтому список объектов в корзине можно прочитать, так как он остается без разрешения анонимного чтения для загруженных элементов.