AWS api 403 在 S3、Cloudfront 中被禁止

问题描述 投票:0回答:1

我在 S3 上部署了一个 React 应用程序,在 EC2 上部署了一个 Spring Boot API,并使用 CloudFront 作为 CDN。虽然我可以通过 CloudFront 访问静态内容(HTML、CSS),但我无法获取 API 数据。这是我的设置:

  • React 前端部署到 S3
  • EC2 上的 Spring Boot 后端
  • CloudFront 分发设置用于提供 S3 内容并将 API 请求路由到 EC2

当我在邮递员中向 ec2 服务器发送请求时,它运行良好。但是当我向cloudfront域发送请求时,enter image description here

我收到访问被拒绝错误。 enter image description here

我可以访问 CloudFront 域 URL,并且可以查看 HTML 和 CSS 文件,但看不到 API 数据

我在 s3 中设置 CORS 配置如下

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "HEAD",
            "POST",
            "PUT",
            "DELETE"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag",
            "Access-Control-Allow-Origin"
        ],
        "MaxAgeSeconds": 3000
    }
]

我创建了 OAC 策略来阻止直接发送到 s3 的请求。仅可通过 Cloudfront 请求。

它看起来不像 CORS 错误,因为它是访问被拒绝错误。获取 API 数据需要什么设置吗?

amazon-web-services amazon-s3 deployment amazon-cloudfront
1个回答
0
投票

对于请求id,请检查cloudfromt访问日志。那应该可以为您提供更多详细信息。

此外,检查 cloudfront 中定义的行为,您的请求似乎被路由到 S3 ,并且从那里拒绝访问。

© www.soinside.com 2019 - 2024. All rights reserved.