秒懂边缘云 | CDN基础入门:访问控制及带宽阈值

简介: 在通过CDN对外提供服务时,为了保障资源的安全性,我们建议对请求进行访问权限控制,避免被恶意用户请求,提升业务在CDN上的安全性。

在通过CDN对外提供服务时,为了保障资源的安全性,我们建议对请求进行访问权限控制,避免被恶意用户请求,提升业务在CDN上的安全性。


准备工作



1.已经添加完成的CDN域名

2.阿里云CDN控制台。


基础介绍


在使用CDN前,一般鉴权和响应均在源站完成。如下图,当终端用户对资源发起请求时,请求到达源站先校验是否符合权限控制规则,如果鉴权通过,源站再响应终端用户所请求的内容。



当业务使用CDN后,可能面临两个问题:

  1. 如果CDN在命中缓存时直接返回内容给终端用户,无需回源站,那此时源站的鉴权规则不会被触发。
  2. 如果鉴权token参数通过请求的query携带(例如:http://test.aliyun.com/test.mp4?token=1234×tamp=12345),由于鉴权参数值频繁变化,此时,CDN视为独立请求回源站进行鉴权,每次都无法共享缓存,导致无法享受正常缓存加速的效果。


那这两个问题如何解决呢?我们需要鉴权和响应拆分为两个环节去处理,其中的鉴权动作拆分到CDN节点执行,响应由源站和CDN节点共同完成。

如下图,当终端用户对资源发起请求时,请求到达CDN节点,由CDN节点校验是否符合权限控制规则。如果鉴权通过,CDN节点再执行内容响应动作:

  • 节点本地已有缓存时,CDN节点将直接响应给用户,无需源站处理;
  • 节点本地无缓存时,CDN节点将逐级回源拉取,直至回到源站获取。



了解鉴权功能的实现位置后,我们再一起学习CDN已经开放的鉴权功能,概览信息参考下表,常见功能将在下文介绍,您可以根据需求选择性阅读。在配置时,也可以通过基础防护组合进阶防护的方式,共同完成加强防护等级的目的。针对常用的基础防护和进阶防护,下文将为您具体介绍其工作逻辑及配置方法。如果您需要使用特殊防护中的功能,可以在控制台申请开通,参考产品文档进行配置。


类别

功能

效果

优点

缺点

安全指数

基础防护

Referer防盗链

通过配置访问的

Referer黑名单和白名单来实现对访客身份的识别和过滤

配置简单,定向防护

过滤方式单一,可能被伪造

☆☆

IP黑白名单

通过配置IP黑名单和白名单来实现对访客身份的识别和过滤

配置简单,定向防护

过滤方式单一,可能被伪造

☆☆

UA黑白名单

通过配置

UserAgent黑名单和白名单来实现对访客身份的识别和过滤

配置简单,定向防护

过滤方式单一,可能被伪造

☆☆

进阶防护

URL鉴权

通过配置URL鉴权功能保护用户站点的资源不被非法站点下载盗用

安全性相对简单配置功能较高,无法伪造

被抓取URL后,在有效期内仍有遭受攻击可能。

★★★

远程鉴权

通过配置远程鉴权功能,对发送到

CDN边缘节点上的用户请求进行校验,避免CDN节点上的资源被非授权用户访问。

鉴权逻辑可根据业务需求自定义规则,调整便捷度高,安全度可控

源站需要部署鉴权服务器,客户需要有开发能力


★★★

特殊防护

频次控制

遭受恶意CC攻击导致响应缓慢,可通过频次控制功能拦截恶意流量,阻断访问该网站的所有请求,提升网站的安全性。

专注对CC的防护。

目前需要开通DCDN WAF支持

★★

区域封禁

一键阻断来自指定区域的访问请求,解决部分地区高发的恶意请求问题。

按照区域划分,拦截面较大

目前需要开通DCDN WAF支持

★★

DCDN WAF

结合边缘Web应用防火墙WAF能力,将业务流量进行恶意特征识别及防护,将正常、安全的流量回源到

服务器

对请求行为有分析识别能力,阻断常规攻击注入手段。

目前需要开通DCDN WAF支持

★★★



基础防护


配置入口:登录CDN控制台,在左侧导航栏,单击域名管理,单击目标域名对应的管理,单击访问控制,在 Referer防盗链/IP黑白名单/UA黑白名单 区域,单击修改配置。


Referer防盗链(推荐)


基于HTTP协议支持的Referer机制,通过请求header中携带的Referer头部跟踪来源,对来源进行识别和判断。

以下图为例,该请求发出时,浏览器自动携带了请求头referer:https://cdn.console.aliyun.com/,代表该请求来源为阿里云CDN控制台域名,被请求域名可以通过referer防盗链控制放行或者拒绝该referer的请求。





  1. 配置时,支持黑名单机制或白名单机制:
  • 黑名单:仅黑名单内域名禁止访问该资源
  • 白名单:仅允许白名单内域名访问该资源
  1. 配置需要放行/限制的域名即可,支持通配符*匹配多个子域名。
  2. 重定向URL:针对不在白名单或针对在黑名单中被拦截的请求返回302及重定向地址,默认为空时,被拦截将返回403状态码。
  3. 允许通过地址栏直接访问资源URL:在浏览器地址栏中直接输入URL地址进行访问时,其来源为空,因此请求头部中默认不会携带referer。
  • 如允许此类不携带referer访问请求,建议勾选开启。
  • 如果该域名下资源的所有请求都会携带referer,可以保持关闭。
  1. 精确匹配:开启后,referer鉴权时为精确匹配规则内容,不会匹配规则的子目录。
  2. 忽略scheme:referer鉴权时候忽略referer请求头中的协议部分。


IP黑白名单


IP黑白名单


通过对客户端真实IP或客户端建联IP进行限制,实现仅部分IP用户可访问,或特定用户IP不允许访问的需求。支持输入IP段,限制某个地址段用户的访问。

  • 客户端真实IP:用户请求中x-forwarded-for请求头携带的第一个IP
  • 客户端建联IP:客户端与CDN节点之间建连使用的IP


默认情况下,仅校验客户端真实IP,如需校验建联IP需通过提交工单申请。配置时,支持黑名单机制或白名单机制:

  • 黑名单:仅黑名单内IP禁止访问该域名
  • 白名单:仅白名单内IP允许访问该域名


UA黑白名单


User-Agent是HTTP请求头的一部分,包含用户访问时所使用的操作系统及版本、浏览器类型及版本等标识信息。

配置UA黑白名单后,用户请求资源时,CDN将获取用户请求时HTTP请求头中的User-Agent字段,同配置中的黑/白名单进行匹配。

以下图为例,该请求发出时,浏览器自动携带了请求头

user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36

代表该请求来源的客户端信息,被请求域名可以通过user-agnet黑白名单控制放行或者拒绝该UA的请求。

一般适用于限制特定UA的终端请求,或对当客户端携带特定UA才允许放行的场景适用。



配置时,支持黑白名单两种防护方式,配置规则时支持通配符*匹配,多个值时使用 | 分割,例如 *curl*|*IE*|*chrome*|*firefox*。

如果需要对空UA(不携带UA 或 UA值为空)限制,规则的值可以配置用 ^$ 表示。


进阶防护


如果您的业务对URL资源安全性要求较高,担心基础防护无法满足安全性需求,可以了解URL鉴权和远程鉴权功能,两者均能实现较高的安全防护。

配置入口:登录CDN控制台,在左侧导航栏,单击域名管理,单击目标域名对应的管理,单击访问控制,在 URL鉴权/远程鉴权 区域,单击修改配置。


URL鉴权(推荐)


URL鉴权功能通过阿里云CDN加速节点与客户资源站点配合,形成了更为安全可靠的源站资源防盗方法。主要由以下几个部分配合:

  • 源站应用服务器:根据鉴权URL生成规则(包括鉴权算法、密钥)生成鉴权URL返回给客户端。
  • 客户端:发起资源请求,并发送鉴权URL给CDN节点进行验证。
  • CDN节点:对鉴权URL中的鉴权信息(鉴权字符串、时间戳等)进行验证。



开启鉴权前访问URL:http://DomainName/timestamp/md5hash/FileName

开启鉴权后访问URL:http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash(A类鉴权为例)

当用户携带的时间戳或鉴权凭证错误时,访问到达CDN节点后将被拒绝,返回状态码403。



URL鉴权支持三种鉴权的签算算法:

  • A方式

http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash

  • B方式

http://DomainName/timestamp/md5hash/FileName

  • C方式

格式1:http://DomainName/FileName{&KEY1=&KEY2=}

格式2:http://DomainName/{/}/FileName

三种方式在安全等级上一致,但URL的构造形式有所区别,如果不需要混淆URL,选择方式A即可,如果有混淆URL的需求,可以选择方式B或者C,算法详情请参考产品文档说明。


注意:

  1. 如果您是线上域名,需要确保业务已经携带正确鉴权参数后,再点击确定开启功能,防止开启后因鉴权失败导致业务无法访问。
  2. 如果您已关闭URL鉴权,请删除业务中携带的鉴权参数,或,配置忽略参数缓存,避免业务因鉴权参数无法命中缓存(开启鉴权时自动忽略鉴权参数缓存)。


远程鉴权


如果您觉得URL鉴权的算法模式单一,无法满足业务的定制化鉴权诉求,您也可以通过远程鉴权,通过自行维护的鉴权服务器用于自主管理。



① 用户发起的资源访问请求到达CDN节点,请求中携带了鉴权参数。

② CDN节点收到用户请求,将用户请求直接转发(或者经过指定的规则处理后转发)给鉴权服务器。

③ 鉴权服务器根据用户请求中携带的鉴权参数给出鉴权结果,并返回给CDN节点。

④ CDN节点根据鉴权服务器返回的鉴权结果执行对应的动作,并返回对应的数据给用户。


鉴权结果举例如下:

举例1:鉴权成功,CDN节点与用户开始正常的缓存数据访问交互。

举例2:鉴权失败,CDN节点返回404状态码给用户。(失败状态码可自定义)

举例3:鉴权失败,CDN节点对用户访问进行限速。

举例4:鉴权超时,CDN节点执行鉴权超时的默认动作,即放行或者拒绝用户请求。



在配置远程鉴权时,您需要指定以下信息

  1. 鉴权服务器的地址,CDN转发鉴权请求时所使用的请求方法,以及是否需求针对特定文件类型鉴权。
  2. 请求鉴权服务器时,访问URL中的请求参数是否需要全部保留转发。
  3. 鉴权服务器返回的状态码,具体如何判断鉴权成功或失败。
  4. 如果鉴权服务器返回鉴权失败,CDN需要返回什么状态码给客户端。
  5. 鉴权服务器多久未响应时判定为超时,超时后应判断本次鉴权通过还是拒绝。


带宽上限阈值


如果您担心存在突发流量导致的损失,可以为域名设置封顶带宽。带宽封顶,即通过设置带宽上限,来控制带宽用量。当指定加速域名在统计周期(1分钟)内产生的平均带宽超出预设上限,CDN将停止为该域名提供加速服务,且该域名会被解析到无效地址offline.***.com,无法被继续访问。

注意:触发封顶后业务将无法继续被访问,非限速策略。

配置入口:登录CDN控制台,在左侧导航栏,单击域名管理,单击目标域名对应的管理,单击流量限制,单击修改配置。



  • 域名带宽小于上限:域名正常使用CDN加速服务。
  • 突发流量,域名带宽达到或超过带宽上限:域名将会自动下线,并通过CNAME域名被解析到无效地址offline.***.com,无法被继续访问。
  • 突发流量恢复正常,域名带宽重新小于带宽上限:CDN默认不会自动恢复加速服务,您需要在CDN控制台手动启用该域名来恢复CDN加速服务。如果您需要恢复业务,可以在CDN控制台域名管理页面,选中该域名,单击启用,重新启用该域名。


小提示:

  • 开启带宽封顶功能后,您的域名会受到带宽封顶的限制而下线。为了不影响您的域名业务,建议您合理评估,谨慎设置您的带宽峰值。
  • 由于带宽的监控数据存在一定的延迟,因此域名将在带宽达到峰值后10分钟左右被下线。


结束


至此,访问控制及带宽阈值的介绍及使用部分已经结束,在下个章节中,我们会继续学习CDN监控与计量相关内容,主要包含内容有:

  • 如何查看边缘访问/回源的状态码分布、带宽、流量等信息。
  • 如何分区域/运营商查看业务带宽分布。
  • 如何配置CDN的业务监控告警规则。



更多边缘云产品资讯欢迎访问【阿里云边缘云】或扫码关注【阿里云Edge Plus】

qrcode_for_gh_0cf3488f3334_258.jpg

边缘云 开启分布式云网融合新时代

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
1月前
|
JSON API 数据格式
阿里云国际版CDN查询实时带宽步骤
阿里云国际版CDN查询实时带宽步骤
|
存储 SQL JSON
使用SLS统计分析三方CDN回源OSS月95带宽实践
本文介绍通过使用阿里云日志服务SLS,对存储在SLS中的三方CDN回源阿里云OSS的监控日志数据,进行自定义查询分析之后得到按照不同运营商、不同业务类型(CND)纬度下,回源OSS的带宽月95量级数据,用于业务统计分析。
480 0
|
存储 运维 前端开发
带宽、流量、CDN
带宽、流量、CDN
695 0
|
数据采集 边缘计算 缓存
|
存储 移动开发 边缘计算
秒懂边缘云 | CDN基础入门:CDN日志下载与分析
CDN提供了离线日志、实时日志两种日志的对接方式,通过本文您可以了解CDN提供的日志相关的功能和产品。
1670 3
|
存储 数据挖掘 BI
秒懂边缘云 | CDN基础入门:CDN运营报表的使用
运营报表是通过对日志采集并提取数据,可以查询加速域名在各个不同时间段的离线分析数据;通过分析数据,便于您了解加速域名的运行状况,帮助您进行业务状态分析。
659 1
|
安全 CDN
《CDN政企边缘安全加速产品发布》电子版地址
《CDN政企边缘安全加速产品发布》PPT
126 0
《CDN政企边缘安全加速产品发布》电子版地址
|
缓存 监控 Android开发
秒懂边缘云 | 如何通过阿里云App上配置CDN
本文为您介绍在移动端进行数据监控、预付费资源包购买、域名启用/停用、刷新预热、IP归属查询等常用热门场景的操作方式。
481 0
秒懂边缘云 | 如何通过阿里云App上配置CDN
|
边缘计算 监控 前端开发
利用阿里云Eventbridge在CDN边缘应用程序中访问日志服务SLS
在Web前端领域,追求极致性能是个永恒的话题。这些年的一些新兴理念都是为了提升站点访问性能而提出,无论是Jamstack技术理念或者或者 ESR (边缘渲染),都是Client侧进行性能优化的基础上,进一步拓展到了网络Infra层面,就是我们现在经常讨论的边缘计算。而阿里云的CDN EdgeRoutine 就是为广大客户提供可自由编程的边缘计算能力,我们可以用他来构建边缘节点的网关应用,来访问静态资源或者后端服务。当这个边缘网关在业务上承担的角色越来越重要的时候,我们就对他内部的业务逻辑产生了可观测的诉求,希望能够记录日志到日志服务上,然而日志服务提供的SDK,在ER的环境中暂时不被支持,这个
333 0
|
1月前
|
云安全 网络安全 CDN
阿里云CDN遇到攻击?别慌,教你如何应对!
阿里云CDN遇到攻击?别慌,教你如何应对!

相关产品