【问题标题】:Amazon S3 - Bucket Policies for POST Request?Amazon S3 - POST 请求的存储桶策略?
【发布时间】:2016-08-05 11:33:58
【问题描述】:

我正在使用 Ionic 框架,并希望使用 Cordova 文件传输插件将文件上传到 S3 存储桶。所有示例都使用 POST 方法...

https://forum.ionicframework.com/t/cordova-filetransfer-upload-image-to-aws-s3/20051/2 http://coenraets.org/blog/2013/09/how-to-upload-pictures-from-a-phonegap-app-to-amazon-s3/

  1. 我注意到 Amazon S3 仅对存储桶策略具有 PUT 和 GET 对象权限,可以直接应用到存储桶中,如下所示: http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

上述链接中的示例可以通过位于控制台中的 Amazon S3 策略生成器的下拉菜单找到;从该下拉列表中,我注意到 PostObject 没有等效的“操作”(在存储桶策略上下文中定义的操作)。

这里有什么我遗漏的吗?我不需要创建一个 bucket 策略,它允许 POST 方法AND/OR 创建一个允许这个的用户策略。

  1. 我还可以在上面看到的 AND/OR 部分使用一些清晰度;例如,作为一个菜鸟程序员,我打算将它同时应用到存储桶和用户策略中以更加安全。
  2. 我知道有一个 POST 策略随 POST 请求一起发送(根据链接 http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-authentication-HTTPPOST.html)。这似乎与 GET 和 PUT 的存储桶策略不同,因为策略是随请求一起发送的,与在存储桶策略部分中简单定义的不同。在 POST 中发送的策略(根据链接)也具有与存储桶策略不同的格式。因此造成了混乱。

我还没有尝试发送 POST 请求,但我认为这是另一天的任务。如果有人可以帮助解决这个问题,那就太好了!

【问题讨论】:

    标签: cordova amazon-web-services amazon-s3 ionic-framework


    【解决方案1】:

    这里有什么我遗漏的吗?

    是和不是。

    使用POST 动词不会改变您实际创建对象的事实,这需要适当的s3:Put* 权限。

    s3:PutObjects3:PutObjectAcl 特别是。

    如果 IAM 用户有权创建对象并设置其 acl,则该用户需要签署请求以实现该目的,该请求可以是 PUTPOST

    考虑一下,作为比较,HEAD != GET 发送一个对象的HEAD 请求需要s3:GetObject

    【讨论】:

      【解决方案2】:

      您绝对可以将 POST 策略添加到您的存储桶。 此处详细信息:http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html 此处包含一些示例存储桶 POST 策略:http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html

      关于您的第二个问题,您可以为 IAM 用户创建与存储桶策略具有相同效果的用户级策略是正确的。更强大的是,您可以结合使用存储桶、用户和组策略来有效地控制对资源的访问。

      【讨论】:

      • 感谢 hephalump!抱歉,我应该澄清一下:是的,在链接中可以看到该政策,但是与此处link 中看到的这些存储桶政策不同。我在 S3 中使用 Amazon 策略生成器复制了这些存储桶策略,但是,在下拉菜单中,它们没有表示 POST 的操作,但用于 PUT 和 GET。你知道这其中的原因吗? POST 政策和其他政策有区别吗?我会更新我原来的问题。谢谢
      猜你喜欢
      • 2011-09-10
      • 2023-02-26
      • 2013-01-08
      • 1970-01-01
      • 2013-12-21
      • 2023-03-31
      • 2023-03-29
      • 1970-01-01
      • 2021-10-18
      相关资源
      最近更新 更多