我正在研究如何使用AWS Cloudfront开发第三方可用于访问存储在S3存储桶中的数据的API。AWS REST API设计
我环顾四周,找不到任何好的例子,如果这是可能的方式,我想实现它。
基本上我需要做的就是通过使用签名URL 的HTTP请求来提供对S3存储桶中的JSON数据的访问,这些签名使用为Amazon身份和访问管理控制台中的每个用户生成的访问密钥签名。我然后 为每个用户分配用户特定的策略,以定义他们可以访问哪些存储桶,文件夹和对象。
第三方是否有可能以这种方式访问数据,而无需使用cloudfront API创建签名url或成为AWS账户持有人?
可我只是为他们提供的URL对象和我产生这样的要求会是这样,他们可以通过浏览器访问他们的特定访问键:
https://www.example.com/examplebucket/examplefolder/exampleobject?key-pair-id=1111-1111-1111-1111
我已经试过这我自己但只能得到一个拒绝访问错误 - 需要签名,但我可以看到得到这个签名的唯一方法是使用cloudfront API创建签名网址的 。
任何人有任何想法,如果这种方法是可能的或更好的方法?
感谢
感谢Inmyth为您的答案。将对象设置为公共工程很好,但我需要限制对不同用户的访问,这就是为什么我想知道是否可以分配用户和访问权限,以允许用户不使用Amazon API访问数据。 – d199224
我修改了我的答案,并表示歉意。起初,我将你的问题解释为在没有IAM的情况下提供公共访问。但从您的评论和原始问题来看,Cloudfront API仍然是这种情况下最可行的方法。 – inmyth
谢谢inmyth,我现在对我的解决方案有更好的想法 – d199224