从javascript代码上传blob文件到S3而不泄露密钥

时间:2015-08-06 15:25:03

标签: angularjs amazon-s3

我正在使用a link直接将blob文件上传到S3服务器,但我不想透露此链接中的秘密访问密钥,请提供如何完成。

任何帮助都将非常感谢..谢谢!!

1 个答案:

答案 0 :(得分:0)

一些潜在的选择:

<强> 1。使用预先签名的网址

来自Uploading Objects Using Pre-Signed URLs

  

预签名URL允许您访问URL中标识的对象,前提是预签名URL的创建者有权访问该对象。也就是说,如果您收到预先签名的URL以上传对象,则只有在预签名URL的创建者具有上传该对象的必要权限时,才能上传该对象。

<强> 2。生成临时凭证

使用AWS Security Token Service (STS)生成具有有限权限的临时凭据。这些凭证可以允许特定活动(例如,上载到Amazon S3内的特定位置)有限时间段(例如,5分钟)。暴露这些凭证的危险性相对较小(因为它们只能执行您的网页允许的操作)。

使用AssumeRole来承担IAM角色中定义的权限,或使用GetSessionToken根据当前IAM用户限制权限范围。

第3。使用Web联合身份验证

Web identity federation允许通过第三方提供商(如Google+,Facebook和亚马逊)进行身份验证。用户对这些服务之一进行身份验证,您的网站可以使用该身份来允许访问AWS服务。您将公开的唯一凭据仅与这些用户本身相关。