【发布时间】:2013-06-10 00:29:22
【问题描述】:
这 AWS 安全问题让我抓狂。我正在尝试使用knox 从节点应用程序上传一些二进制文件。我的密钥/秘密组合不断收到臭名昭著的 SignatureDoesNotMatch 错误。我追溯到这个:例如传输,我可以通过连接s3.amazonaws.com访问bucket,但我不能通过虚拟子域mybucket.s3.amazonaws.com访问它。 (当我尝试使用 s3.amazonaws.com/mybucket 语法访问存储桶时,我收到一条错误消息,指出只允许使用子域样式。)
我已尝试将存储桶策略设置为明确允许来自相应用户的PUT,但这没有效果。谁能解释一下我如何能够从一个特定的 AWS 用户上传文件?
【问题讨论】:
-
S3 使用 HMAC 签名来验证请求。它将尝试重建签名服务器端以验证您是您所说的那个人。你是如何生成你的签名的?
-
我没有手动执行此操作,但我怀疑这是问题所在:正如我所说,我可以使用 Transmit 很好地连接到“顶级”位置,因此显然 Transmit 会生成有效的签名。连接到
s3.amazonaws.com和myapp.s3.amazonaws.com有什么区别?
标签: node.js amazon-web-services amazon-s3 knox-amazon-s3-client