签名 cookie 不存在时的 Cloudfront 重定向

Cloudfront redirect when signed cookies not present

我有一个 s3 存储桶,其中包含两个文件夹:login 和 portal。在 cloudfront 中,portal/index.html 被设置为默认根对象,默认行为已自行设置为可信签署人。第二种行为是用模式​​ login/* 定义的,没有设置受信任的签名者。

假设备用域名设置为 mydomain.com 我想要发生的事情是让 cloudfront 将任何去往 mydomain.com 且不包含已签名 cookie 的请求重定向到 mydomain。com/login. cloudfront 可以做到吗?

是的,可以。您可以使用 Lambda@Edge 函数查看任何传入请求的 cookie 并根据它更改您的路径。

查看此 AB 测试示例。它查看 cookie 并根据它更改目标路径:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-examples.html#lambda-examples-a-b-testing

还有这篇来自 AWS 的博客 post 关于这个主题(在他们的案例中使用 cognito,但你可以改变它来做你想做的事):https://aws.amazon.com/blogs/networking-and-content-delivery/authorizationedge-using-cookies-protect-your-amazon-cloudfront-content-from-being-downloaded-by-unauthenticated-users/