2015-12-22 3 views
3

В консоли AWS S3 вы можете разрешить файлы для «Любой пользователь, прошедший проверку подлинности AWS», и предоставить разрешения «Открыть/загрузить».Возможности грантов Amazon S3 CLI

Что такое команда CLI, чтобы сделать то же самое?

Я уже знаю команду ср (для загрузки):

aws s3 cp filename s3://bucket/folder/filename 

Но я не могу понять конфигурацию --grants и документация не является специфичным с принятыми значениями.

Бонус, если вы можете предоставить остальную часть принятых значений для флага --grants (например, Разрешения просмотра, Разрешения редактирования)?

Это можно сделать рекурсивно?

EDIT 1 Я нашел следующее, однако он делает доступным файл для ВСЕХ (общедоступных). Итак, где URI для моих групп? Я предполагаю, что это не то же самое, что ARN группы.

aws s3 cp file.txt s3://my-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers 

Мы можем сделать в качестве альтернативы:

aws s3 cp file.txt s3://my-bucket/ --grants [email protected] 

Это обеспечит полные права на счет, связанный с этим адресом электронной почты.

Еще негде было зеркало «Любой пользователь, прошедший проверку подлинности AWS» (я предполагаю, что это подтверждено в моей учетной записи).

ответ

8

Вы должны использовать параметр --acl для получения консервированного разрешения:

aws s3 cp local.txt s3://some-bucket/remote.txt --acl authenticated-read 

Документация aws s3 cp описывает то, что сокращенная синтаксис для CLI:

--acl (строки) Устанавливает ACL для объекта при выполнении команды. Если вы используете этот параметр, вы должны иметь разрешение «s3: PutObjectAcl», включенное в список действий для вашей политики IAM . Принимает только значения private, public-read, с открытым текстом, аутентифицированным-читаемым, ведомым владельцем-читателем, ведомым владельцем-полным-контролем и записью-доставкой-записью.См Canned ACL Подробности

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

+0

Есть ли способ использования --acl, чтобы разрешить авторизацию и учетные записи AuthenticatedUsers? – Brooks

+0

Я считаю, что вам нужно будет использовать опцию '--grant', как описано в @helloV, добавив разрешение на запись. – James

+0

Спасибо, --acl authenticated-read работал, не могу поверить, что я его пропустил. – Brooks

3

Проверить эту ссылку: Using High-Level s3 Commands with the AWS Command Line Interface

Вы можете сделать:

aws s3 cp filename s3://bucket/folder/filename --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers 

Для рекурсивной, используйте --recursive вариант

Когда --recursive опция используется на каталог/папка с cp, mv, или rm, команда перемещает дерево каталогов, включая все подкаталоги . Эти команды также принимают опции -exclude, --include, и -acl, как это делает команда sync.

+0

Довольно уверенный, что делает его общедоступным. Я хочу, чтобы он был доступен всем моим пользователям, связанным с моей учетной записью. – Brooks

+0

ОК. Я неправильно понял ваш вопрос. – helloV