2015-12-22 62 views
3

在AWS S3控制台中,您可以授予“任何经过身份验证的AWS用户”的文件权限并授予“开放/下载”权限。Amazon S3 CLI授权选项

什么是CLI命令做同样的事情?

我已经知道cp命令(上载):

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

不过,我想不通的--grants配置和文档是不特定所接受的价值观。

如果您可以提供-grants标志的其余接受值(例如,查看权限,编辑权限),可以获得奖励吗?

这可以递归地完成吗?

编辑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。如果使用此参数,则您的 IAM策略的操作列表中必须包含 “s3:PutObjectAcl”许可权。只接受私人,公开阅读, 公开读写,认证读取,桶拥有者读取, 桶拥有者完全控制和日志传递写入。见Canned ACL 的细节

--grants似乎允许微调定制的ACL,但语法比较复杂,因为你发现了。

+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选项,如同步命令一样。

+0

很确定这是公开的。我希望它可以提供给与我的帐户相关的所有用户。 – Brooks

+0

好的。我误解了你的问题。 – helloV