首页 文章

带有签名URL的AWS CloudFront:403拒绝访问

提问于
浏览
1

我正在配置一个环境 Amazon S3 Bucket 用于存储媒体文件, Amazon CloudFront 用于限制分发目的 .

对这些媒体文件的访问需要是私有的,应该通过 signed URL 来完成 . 所以我在 South America (São Paulo) 区域创建了 S3 Bucket 并上传了一些测试文件 . 然后我创建了一个 CloudFront Distribution ,其前一个 bucketOrigin ,它的 Bucket Accessrestricted . 我创建了一个新的 OAI (Origin Access Identity)并选择了 Yes, Update Bucket Policy 选项,以便自动配置 S3 Bucket Policies . 我只使用 default Behavior ,并配置了 HTTP and HTTPS viewer protocol policyGET, HEAD allowed methods . Restrict Viewer Access (Use Signed URLs or Signed Cookies) 已设置且 Trusted Signer 设置为 Self .

这里有一些图片来阐明设置:

S3 Bucket Policy
S3 Bucket Policy

Distribution's Origin
Distribution's Origin

Distribution's Behavior
Distribution's Behavior

我在尝试访问使用 awsclicfsign.pl 生成的签名URL时收到 HTTP 403

<Error>
    <Code>AccessDenied</Code>
    <Message>Access denied</Message>
</Error>

有什么遗失我不知道吗?看起来我做了 docs 所说的一切 .

3 回答

  • 1

    重新创建 Amazon S3 BucketAmazon CloudFront Distribution 后,我仍然遇到问题 . 与我的橡皮鸭会话后,我发现我使用的 Private Key 文件属于已删除的 CloudFront Key-pair .

    现在我已经解释了为什么第一个 bucketdistribution 没有工作,因为在那个特定情况下我使用的是 same 配置集和正确的 Private Key 文件 .

  • 1

    我也遇到了同样的问题 . 可能,我们必须重新生成Clouf Front密钥对 .

  • 1

    我收到了相同的 Access Denied 错误,花了最后几个小时试图弄清楚发生了什么 . 我终于意识到 Expires 参数是在过去设置的,因为我使用的是本地时间而不是UTC . 确保根据UTC设置 Expires .

相关问题