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

'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。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 06:48:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 06:48:01       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 06:48:01       87 阅读
  4. Python语言-面向对象

    2023-12-13 06:48:01       96 阅读

热门阅读

  1. 【洛谷】【模板】排序

    2023-12-13 06:48:01       66 阅读
  2. Vue3:ref函数和reactive函数和setup函数

    2023-12-13 06:48:01       63 阅读
  3. 元编程(Metaprogramming)

    2023-12-13 06:48:01       70 阅读
  4. 2.linux常用命令

    2023-12-13 06:48:01       47 阅读
  5. 【告警自动化处置脚本】

    2023-12-13 06:48:01       53 阅读
  6. 【环境系列】Linux虚拟机(Centos、Ubuntu)、云服务器

    2023-12-13 06:48:01       69 阅读
  7. webpack的使用

    2023-12-13 06:48:01       55 阅读