【问题标题】:Amazon S3 CLI Grants OptionsAmazon S3 CLI 授予选项
【发布时间】:2015-12-23 05:38:23
【问题描述】:

在 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 用户”(我假设这是在我的帐户中经过身份验证的)。

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-cli


    【解决方案1】:

    您应该使用--acl 参数来获取预设权限:

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

    aws s3 cp 的文档描述了 CLI 的简写语法:

    --acl (string) 执行命令时设置对象的 ACL。如果你使用这个参数,你必须有 “s3:PutObjectAcl”权限包含在您的操作列表中 IAM 政策。只接受私有、公共读取的值, public-read-write,authenticated-read,bucket-owner-read, bucket-owner-full-control 和 log-delivery-write。见Canned ACL 了解详情

    --grants 似乎允许微调自定义 ACL,但正如您所发现的,语法更复杂。

    【讨论】:

    • 有没有办法使用--acl来允许AuthenticatedUsers读写权限?
    • 我相信你必须使用@helloV 描述的--grant 选项,添加写入权限。
    • 谢谢,--acl authenticated-read 有效,不敢相信我错过了。
    【解决方案2】:

    查看此链接: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 选项,就像同步命令一样。

    【讨论】:

    • 很确定它会公开。我希望与我的帐户关联的所有用户都可以使用它。
    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 2022-10-08
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多