使用AWS策略从S3显示图像的Web应用程序

时间:2017-11-21 17:45:02

标签: html amazon-s3 frontend amazon-cognito

背景

  • 我们有一个使用aws-sdk for JavaScript的网络应用程序,允许使用AWS Cognito登录。
  • 我们希望允许用户根据AWS政策访问S3上的文件。
  • 使用AWS.config.credentials = new AWS.CognitoIdentityCredentials(...)我们可以执行登录并接收令牌
  • 使用此令牌,我们会在存储桶上执行listObject

问题

在S3上成功登录并listObject后,将src标记的<img />属性设置为https://MY_BUCKET.s3.amazonaws.com/my_file.jpg时,我们得到:

403 (Forbidden)

似乎客户端请求标头不包含aws-sdk检索到的aws-token。

我们尝试了什么

  • 完成this article
  • 中的先决条件任务
  • 浏览these examples
  • 来自StackOverflow的
  • This solution(收益Maximum call stack size exceeded)。此外,它似乎是客户端CPU密集型解决方案。

问题

使用CognitoIdentityCredentials允许在网页内显示来自S3存储桶的图像的最简洁最简单的方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用IAM创建策略,如下所示:

http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_cognito-bucket.html

Javascript SDK有助于获取凭据,缓存凭据,并且是Cognito API的包装器。 http://docs.aws.amazon.com/cognito/latest/developerguide/getting-credentials.html#JavaScript