【问题标题】:can't view S3 Bucket image object from EC2 hosted website无法从 EC2 托管网站查看 S3 存储桶图像对象
【发布时间】:2021-04-29 13:52:43
【问题描述】:

我创建了一个 IAM 角色,该角色授予对 S3 存储桶的完全访问权限并将其附加到 EC2 实例。但是,当我尝试从 EC2 托管网站查看该图像时,我无法查看该图像。我不断收到 403 禁止代码。

以下是 IAM 角色和附加的政策:

可以看到GetObject是开启的:

但错误仍然存​​在:

关于如何解决这个问题的任何建议?感谢您的阅读。

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    您用来访问对象的 URL 似乎不包含任何安全信息 (bucket.s3.amazonaws.com/cat1.jpg)。因此,它只是对 S3 的“匿名”请求,并且由于对象是私有的,因此 S3 将拒绝该请求。

    请求是从已分配 IAM 角色的 Amazon EC2 实例发送的这一事实不足以通过匿名 URL 获得对对象的访问权限。

    要允许浏览器访问私有 Amazon S3 对象,您的应用程序应生成一个Amazon S3 pre-signed URLs。这是一个有时间限制的 URL,其中包含将您标识为请求者的安全信息,并包含允许访问私有对象的签名。

    或者,在实例上运行的代码可以使用 AWS 开发工具包对 S3 进行 API 调用以访问对象(例如 GetObject())。这将成功,因为 AWS 开发工具包将使用 IAM 角色提供的凭证。

    【讨论】:

      猜你喜欢
      • 2020-05-20
      • 2021-02-02
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2018-05-05
      • 2020-12-22
      • 2018-09-27
      • 1970-01-01
      相关资源
      最近更新 更多