【发布时间】:2021-04-29 13:52:43
【问题描述】:
我创建了一个 IAM 角色,该角色授予对 S3 存储桶的完全访问权限并将其附加到 EC2 实例。但是,当我尝试从 EC2 托管网站查看该图像时,我无法查看该图像。我不断收到 403 禁止代码。
关于如何解决这个问题的任何建议?感谢您的阅读。
【问题讨论】:
标签: amazon-web-services amazon-s3
我创建了一个 IAM 角色,该角色授予对 S3 存储桶的完全访问权限并将其附加到 EC2 实例。但是,当我尝试从 EC2 托管网站查看该图像时,我无法查看该图像。我不断收到 403 禁止代码。
关于如何解决这个问题的任何建议?感谢您的阅读。
【问题讨论】:
标签: amazon-web-services amazon-s3
您用来访问对象的 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 角色提供的凭证。
【讨论】: