【问题标题】:Amazon cloudfront custom origin rails with authentication具有身份验证的 Amazon Cloudfront 自定义源轨道
【发布时间】:2012-12-22 18:56:51
【问题描述】:

据我了解,只有当 cloudfront 能够从我的网站 url 访问文件时,使用 cloudfront 的自定义源服务器才有效:

例如:www.domain.com/hello.html

但是,我的网站需要登录才能查看 hello.html。我怎样才能拥有登录机制并仍然使用自定义源服务器在云端缓存我的真实 hello.html 页面?

顺便说一句,我正在使用 Ruby on Rails,但这也适用于其他堆栈。

【问题讨论】:

    标签: ruby-on-rails webserver amazon-cloudfront


    【解决方案1】:

    我很确定这是不可能的。正如您所说,CloudFront 必须能够访问文件以提供和缓存它。我从未见过告诉 CloudFront 使用密码来访问文件的选项。

    一个想法:也许您可以在要求用户输入密码之前检查您的 Rails 应用程序,如果请求来自 CloudFront(我确定有一些标头表明这一点),如果是这样,绕过登录要求?

    编辑:

    上面写着docs

    Do not configure your origin server to request client authentication.
    

    我很确定设置的一件事是用户代理。检查user_agent =~ /cloudfront/i并绕过身份验证?

    【讨论】:

    • 感谢您的回答。我会标记它已接受!对于私人内容用例,您的解决方法似乎是唯一对我有意义的方法..
    • 另一件事也是可能的......这就是我想做的......是:1>在我的DNS服务器中将Cloudfront更新为像static.domain.com这样的CNAME......所以所有 static.domain.com/x.html 都转到 cloudfront.. 2> 将 S3 设置为源服务器,并使其对除 cloudfront 和我的网络服务器(安全 S3)之外的任何人都无法访问 3> 将文件写入 S3 并生成签名(安全) 使用 Amazon API 从我的 Rails 站点以编程方式使用 N 天到期的 URL .. 这样我可以将登录的用户重定向到我的“签名” URL 并强制匿名用户登录..
    • 另外,因为 static.domain.com/x7353936.html 的签名 URL 将在几天后过期..人们不能用它来绕过登录太久..这对我的网站来说足够安全。
    猜你喜欢
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 2020-04-01
    • 2022-12-10
    • 2015-03-22
    • 2014-09-29
    相关资源
    最近更新 更多