AWS-CDN只能备用域名访问-使用Lambda@Edge(禁止分配的域名访问)

场景:cdn使用备用域名后,希望用户只能从备用域名访问,而不是自动分配的cdn域名,这也将是一个安全漏洞,被扫描到cdn域名访问刷流量等!
【建议部署前查看】参考链接

1.官方cdn返回示例

2.lambda@edge 403自定义示例

1. 部署cdn 并且绑定备用域名


测试能够访问

两个域名都可以访问!说明 cdn 到 源站正常!

2. 部署lambda@edge (lambda 创建nodejs脚本部署到cdn)

运行环境:

Node.js 20.x

创建主文件index.js

js 复制代码
'use strict';

exports.handler = (event, context, callback) => {
   const request = event.Records[0].cf.request;
   const headers = request.headers;
   const hostHeader = request.headers['host'][0].value;
   
   const response_error = {
    status: '403',
    statusDescription: 'Forbidden',
    body: 'CDN Domain Name Access Denied !!!',
    headers: {
        'content-type': [{
            key: 'Content-Type',
            value: 'text/plain'
        }]
    }
   };
   
   if (hostHeader == 'd1lwrlbp671jw0.cloudfront.net') {
       callback(null, response_error);
   } else {
       callback(null, request);
   }
};
配置lambda权限


部署到lambda@edge


3. 等待cdn部署生效,查看监控

最下面有绑定关系,确认是否绑定错误

测试

效果实现!!!

报错 502 503 时,说明 函数错误 检查相关lambda。

相关推荐
Lw老王要学习1 小时前
Linux容器篇、第一章_02Rocky9.5 系统下 Docker 的持久化操作与 Dockerfile 指令详解
linux·运维·docker·容器·云计算
_可乐无糖2 小时前
EC2安装WebRTC sdk-c环境、构建、编译
服务器·webrtc·aws
Britz_Kevin3 小时前
从零开始的云计算——番外实战,iptables防火墙项目
云计算·#项目实战·#linux·#iptables
debug 小菜鸟13 小时前
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
docker·云计算·aws
可观测性用观测云18 小时前
AWS EKS 集群日志上报观测云实践
aws
Johny_Zhao20 小时前
2025年6月Docker镜像加速失效终极解决方案
linux·网络·网络安全·docker·信息安全·kubernetes·云计算·containerd·yum源·系统运维
容器魔方1 天前
KubeCon 抢鲜 | Kmesh与你共创高性能流量治理更优方案
云原生·容器·云计算
亚林瓜子1 天前
AWS Elastic Beanstalk + CodePipeline(Python Flask Web的国区CI/CD)
python·ci/cd·flask·web·aws·beanstalk·codepipeline
过河不拆乔1 天前
AWS 公开数据集下载与操作说明
学习·云计算·aws
阿山同学.1 天前
AWS 亚马逊 S3存储桶直传 前端demo 复制即可使用
前端·javascript·aws