首页 文章

Cloudfront - 无法使用于返回403的对象无效

提问于
浏览
3

设置

我有一个最初设置为安全的Amazon Cloudfront发行版 . 此分发中的对象需要URL签名 . 例如,有效的URL通常具有以下格式:

https://d1stsppuecoabc.cloudfront.net/images/TheImage.jpg?Expires=1413119282&Signature=NLLRTVVmzyTEzhm-ugpRymi~nM2v97vxoZV5K9sCd4d7~PhgWINoTUVBElkWehIWqLMIAq0S2HWU9ak5XIwNN9B57mwWlsuOleB~XBN1A-5kzwLr7pSM5UzGn4zn6GRiH-qb2zEoE2Fz9MnD9Zc5nMoh2XXwawMvWG7EYInK1m~X9LXfDvNaOO5iY7xY4HyIS-Q~xYHWUnt0TgcHJ8cE9xrSiwP1qX3B8lEUtMkvVbyLw__&Key-Pair-Id=APKAI7F5R77FFNFWGABC

分发指向一个曾经被保护的S3存储桶(它只允许通过 Cloud 端访问) .

发生了什么事

在某些时候,URL唱歌过期并返回403 .

由于我们不再需要保持相同的安全级别,因此我最近更改了 Cloud 端分发和它所指向的S3存储桶的设置,两者都是公开的 .

然后我尝试使此分发中的对象无效 . 失效没有抛出任何错误,但失效似乎没有成功 . 对同一个 Cloud 端URL(带或不带查询字符串)的请求仍返回403 .

响应标头如下所示:

HTTP/1.1 403 Forbidden
Server: CloudFront
Date: Mon, 18 Aug 2014 15:16:08 GMT
Content-Type: text/xml
Content-Length: 110
Connection: keep-alive
X-Cache: Error from cloudfront
Via: 1.1 3abf650c7bf73e47515000bddf3f04a0.cloudfront.net (CloudFront)
X-Amz-Cf-Id: j1CszSXz0DO-IxFvHWyqkDSdO462LwkfLY0muRDrULU7zT_W4HuZ2B==

我尝试过的事情

我尝试设置另一个指向与原始服务器相同的S3的 Cloud 端分发 . 对新分发中的同一对象的请求是成功的 .

这个问题

有没有人遇到过返回403的 Cloud 端URL无法失效的情况?是否有任何理由不能使对象失效?

谢谢你的帮助!

1 回答

  • 0
    • 首先检查Invalidation是否正在进行中 . 如果是,那么等到它完成 .

    • 如果使用公共URL通过CloudFront访问S3对象,则需要对该S3对象具有公共读取权限 .

    • 如果您尝试使用签名URL通过CloudFront访问S3对象,请确保生成签名URL时提及的时间必须大于当前时间 .

相关问题