You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于AWS S3与CloudFront的无服务器应用如何禁用80端口?

禁用S3+CloudFront架构下的HTTP(80端口)访问

你的应用基于S3和CloudFront搭建、未使用EC2,要禁用80端口(禁止HTTP访问),核心是从CloudFront层强制HTTPS,同时限制S3的直接HTTP访问,具体操作步骤如下:

1. 让CloudFront强制重定向HTTP到HTTPS

  • 打开CloudFront控制台,找到目标分发,进入「行为」标签页编辑对应行为规则
  • 将「查看协议政策」改为重定向HTTP到HTTPS,所有走80端口的请求会自动转到443端口的HTTPS
  • 保存更改后,等待CloudFront完成分发更新(一般几分钟到半小时不等)

2. 确保CloudFront的SSL证书配置正常

  • 如果使用了自定义域名,需在CloudFront分发的「设置」里,为自定义域名配置ACM(AWS证书管理器)的SSL证书,证书要部署在us-east-1区域(CloudFront要求),保证HTTPS访问正常

3. 限制用户直接HTTP访问S3存储桶

方法一:使用Origin Access Control(OAC)

  • 在CloudFront分发的「源」设置里,将S3源的访问方式改为Origin Access Control,创建并关联对应的OAC策略
  • 配置后仅CloudFront能访问S3桶,用户无法直接通过HTTP访问S3域名绕开CloudFront

方法二:配置S3 Bucket Policy

  • 打开S3控制台,找到目标桶的「权限」标签,编辑Bucket Policy,添加以下规则(替换占位符为实际信息):
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::你的存储桶名称/*",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        },
        "StringNotEquals": {
          "aws:SourceArn": "arn:aws:cloudfront::你的AWS账号ID:distribution/你的CloudFront分发ID"
        }
      }
    }
  ]
}
  • 该规则会拒绝所有非CloudFront发起的HTTP请求,同时允许CloudFront的HTTPS请求访问桶内容

4. 验证配置效果

  • 尝试用HTTP地址访问应用,应自动跳转到HTTPS
  • 直接访问S3的HTTP地址(如http://你的存储桶.s3.amazonaws.com),应收到访问拒绝的错误

内容的提问来源于stack exchange,提问作者Garry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:15:40