AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1170030
Accepted
J.C
J.C
Asked: 2025-01-12 08:24:02 +0800 CST2025-01-12 08:24:02 +0800 CST 2025-01-12 08:24:02 +0800 CST

S3 静态托管,带有 OAC、SSL 和 Route53 的 Cloudfront:返回 403 Cloudfront 错误请求

  • 772

我花了不少时间进行故障排除。以下是我目前已确认的内容:

S3 侧

  • Bucket 名称正好是我的网站名称
  • 启用静态托管,将索引文档设置为 index.html(位于存储桶中)
  • 阻止所有公共访问:开启。应该没问题,因为我使用 OAC
  • 存储桶策略:
{
    "Version": "2012-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "AllowCloudFrontServicePrincipal",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucketname/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudfront::<something>:distribution/<wahtever>"
                }
            }
        }
    ]
}

云端分布

  • 自定义 SSL 证书,tls 1.2(https 不起作用,但这是以后的问题)
  • 默认根对象/index.html。不清楚这是否完全必要,因为 s3 已经知道这是根对象。
  • 来源:来源域是 S3 WEBSITE 端点,端口 80 http
  • 行为:将 HTTP 重定向到 HTTPS

53 号公路

3 条记录:

  1. A记录,别名,简单路由,指向我的cloudfront域
  2. 由 Aws 创建的 NS 记录(我将它们添加到我购买域名的 DNS 服务器列表中
  3. 由 aws 创建的 SOA 记录
amazon-s3
  • 1 1 个回答
  • 92 Views

1 个回答

  • Voted
  1. Best Answer
    J.C
    2025-01-12T23:43:43+08:002025-01-12T23:43:43+08:00

    AWS 文档确实概述了,如果您在设置 Cloudfront 分发时使用 S3 的网站端点(AWS Wizard 坚持这样做),则您不能使用 OAC。

    因此我删除了与 OAC 相关的存储桶策略,变得简单了:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PublicReadGetObject",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::my-bucket/*"
            }
        ]
    }
    

    现在重要的是将“阻止所有公共访问”设置为OFF。

    然而我遗漏了两个关键部分:

    1. 在 Cloudfront 分发设置中,我需要添加一个Alternate domain name (CNAME) - optional,这是我的 fqdn(也是 S3 存储桶名称)。

    2. [让 https 生效] 仅将自定义 SSL 证书添加到分发设置是不够的,我忘记添加 DNS 记录了。转到 AWS Cert Manager (ACM),您的证书和 DNS 信息出现在标题下DOMAINS,您可以将其导出为 CSV。看起来不错

    CNAME name   | CNAME value
    _blabla.yourwebsite.com | _blablabla.yourwebsite.com._blablabla.blabla.acm-validations.aws.
    

    您将其作为新的 CNAME 记录输入到 Route53 中。

    结论:Wix 可能价值每月 12 美元。

    • 0

相关问题

  • 如何将 Symantec Backup Exec 与 S3 Amazon 存储结合使用?

  • Amazon S3 是否对您的数据做出任何形式的保证?

  • Amazon S3 存储如何计费?[关闭]

  • 使用亚马逊 S3 时的注意事项

  • 用于备份等的 S3 接口 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve