Angular Routes 不适用于 cloudfront + s3

And*_*ndy 1 amazon-s3 amazon-cloudfront angular

目前,我在 cloudfront 中的应用程序仅加载了应用程序启动时的默认路由。当我cloudfront.[address].net 使用 WAF 访问站点根目录时,它可以使用我也使用 WAF 将其限制为仅我的 IP 地址,但是当我转到 cloudfront.[address].net/signup 或 /login 时,我得到

在此处输入图片说明

我怎样才能让子路线也起作用?我有我的存储桶策略

桶策略

{
 "Version": "2008-10-17",
 "Statement": [
     {
         "Sid": "3",
         "Effect": "Allow",
         "Principal": {
             "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E2SRF18SRG0FC7"
         },
         "Action": "s3:GetObject",
         "Resource": "arn:aws:s3:::[bucket]/*"
     }
 ]
}

Run Code Online (Sandbox Code Playgroud)

我阻止了所有公共访问,但我也在使用带有 OAI 的 cloudfront,所以我认为我不需要担心它会被阻止,因为它正在通过 cloudfront。

在此处输入图片说明

我感谢任何帮助!

Aru*_*han 5

您需要将 cloudfront 发行版的错误文档设置为您的入口文档(index.html)

请确保您已完成以下步骤。

  1. S3 存储桶策略仅允许 Cloudfront 执行 GetObject
  2. Cloudfront 分发的自定义错误响应设置/index.html为 HTTP404403错误代码
  3. Cloudfront 分布处于deployed状态,因为 cloudfront 可能需要更长的时间,我们很容易出现观察错误

希望这可以帮助。