在AWS S3控制台中,您可以为"任何经过身份验证的AWS用户"授予文件权限,并授予"打开/下载"权限.
什么是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 full=emailaddress=user@example.com
这将为与该电子邮件地址关联的帐户提供完全权限.
仍然无法镜像"任何经过身份验证的AWS用户"(我假设这是在我的帐户中进行身份验证).
您应该使用该--acl
参数来获取固定的权限:
aws s3 cp local.txt s3://some-bucket/remote.txt --acl authenticated-read
aws s3 cp的文档描述了CLI的简写语法:
--acl(string)设置执行命令时对象的ACL.如果使用此参数,则必须在IAM策略的操作列表中包含"s3:PutObjectAcl"权限.仅接受private,public-read,public-read-write,authenticated-read,bucket-owner-read,bucket-owner-full-control和log-delivery-write的值.有关 详细信息,请参见固定ACL
--grants
似乎允许微调的自定义ACL,但语法更复杂,正如您所发现的那样.