amazon-web-services - 通过签名 URL 下载时拒绝访问

标签 amazon-web-services amazon-s3

我正在使用 IAM 角色从我的 EC2 实例访问 S3。但在我的应用程序中,我创建了一个签名 URL 来下载文件。但是,当用户尝试下载文件时,会显示 access denied 错误。

var AWS = require('aws-sdk');
var s3 = new AWS.S3();

//key=file path
var params = {Bucket: bucket, Key: prefix+'/'+key, Expires: 240}
var url = s3.getSignedUrl('getObject', params)
console.log(req.cookies.s, 'got', url) // expires in 60 seconds
res.redirect(url)

最佳答案

您提供签名 URL 并导致 Access Denied 错误的事实表明 签名 URL 无效

一些潜在的原因:

  • 签名网址构造不正确(您没有向我们展示您的代码,因此我们无法确定这一点)
  • 用于生成签名 URL 的凭据没有访问对象的权限(签名 URL 是一种授权临时、有限使用凭据的方法,但基础凭据必须有权访问资源)
  • 签名 URL 的时间段已过期(但这会导致不同的错误消息)
  • 对象不存在(这很可能,因为 Access Denied 表明了这一点,而不是显示与签名 URL 相关的错误)

关于amazon-web-services - 通过签名 URL 下载时拒绝访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46408495/

相关文章:

php - 亚马逊 S3 : How to use SEO-friendly URLs for Images

amazon-web-services - 如何创建代理以在AWS Glue的Spark UI上查看作业?

amazon-web-services - 调用CreateStack操作时出现(ValidationError): Template format error: Every Description member must be a string

amazon-web-services - 下一个 DynamoDB 错误的原因可能是什么?

java - 如何创建仅在 6 天后过期的 s3 下载链接

python - 如何将爬取的数据从 Scrapy 以 csv 或 json 的形式上传到 Amazon S3?

python - AWS python Flask EB .ebextensions .conf 文件不工作

ios - 适用于 iOS 的 AWS 开发工具包 : unable to list the files in an S3 bucket

java - 覆盖 S3 中的文件时保留元数据

amazon-s3 - 成本上限 Amazon S3(简单存储服务)