CDN配置管理

EMAS Serverless支持CDN配置,通过设置跨域校验、URL鉴权、Referer防盗链、IP黑/白名单、UA黑/白名单来实现对访客身份的识别和过滤,从而限制访问CDN资源的用户,提升CDN的安全性。

操作步骤

  1. 登录EMAS管理控制台

  2. 查找您的项目,单击项目,进入EMAS概览页。

  3. 在顶部导航栏,选择平台服务

  4. 在左侧导航栏,选择EMAS Serverless > 云存储

  5. 单击CDN配置页签。

  6. 单击编辑配置,可对跨域校验URL鉴权Referer防盗链IP黑/白名单UA黑/白名单进行配置。

  7. 配置完成后,单击保存

配置跨域校验

跨域校验是指需要跨域共享或者访问资源时,您可以通过指定跨域规则来实现。

image.png

参数

说明

跨域规则

  • 设置为“*”,不论用户请求里面是否携带“Origin”参数,也不论携带的“Origin”参数为何值,都固定返回“Access-Control-Allow-Origin:*”。

  • 跨域资源共享的响应头值设置了单个或者多个值(多个值之间用“,”分隔)。

    • 如果用户请求头里携带的“Origin”参数值与被设置的任意一个值精确匹配,就会响应对应的跨域头。

    • 如果都没有精确匹配上,则不响应跨域头。

  • 设置为通配符域名,则会校验请求头中Origin值是否能匹配上。

跨域验证

  • 开启:开启状态下CDN节点将按跨域规则对用户做跨域校验,并根据校验结果响应“Access-Control-Allow-Origin”的值。

  • 关闭:关闭状态下CDN节点不会校验用户请求中携带的Origin头,只会固定响应已配置的Access-Control-Allow-Origin值。

说明

跨域验证为开启状态下,如果响应头值中的域名包含短划线-,需要对短划线做转义处理后再配置,将-转义为%-。例如:

  • 原始响应头值:http://doc.aliyun-example.com

  • 转义后的响应头值:http://doc.aliyun%-example.com

配置URL鉴权

URL鉴权是指用户按照指定的签名方式对于特定的URL增加鉴权认证,您可以通过自行配置校验鉴权URL中的加密串和时间戳,保护用户站点的资源不被非法站点下载盗用。URL鉴权比Referer防盗链安全性更高,适合于安全密级较高的文件。

说明
  • 鉴权的原理请参见CDN文档。

  • 您可以按照鉴权方式完成计算签名计算,也可以直接通过管控API ListFile或者客户端SDK file.info接口直接获取计算好的签名链接。

image.png

参数

说明

鉴权类型

阿里云CDN提供了3种鉴权签名计算方式。您可以根据访问加密URL格式,选择合适的鉴权方式,实现对源站资源的有效保护。URL鉴权类型如下:

说明

URL鉴权错误会返回403报错:

  • MD5计算类错误

    例如:X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760be

  • 时间类报错

    例如:X-Tengine-Error:denied by req auth: expired timestamp=1439469547

密钥

用于参与鉴权签名计算的密钥。

鉴权URL有效时长

CDN配置的鉴权URL有效时长,用户可在有效时间区间内访问CDN,超出该区间,鉴权失效。

  • 单位:秒

  • 取值范围:1~31536000

  • 默认值:1800(30分钟)

示例:例如签算服务器生成鉴权URL的时间(timestamp)为2020-08-15 15:00:00(UTC+8),CDN上鉴权URL有效时长为1800秒,则鉴权URL失效时间为2020-08-15 15:30:00(UTC+8)。

配置Referer防盗链

您可以通过配置访问请求来源的域名(即Referer黑名单和白名单),实现对访客身份的识别和过滤,限制访问CDN资源的用户,禁止其他网站引用您的资源链接。

说明

更多详情请参见:Referer防盗链

image.png

参数

说明

Referer类型

  • 黑名单

    黑名单内的域名均无法访问当前的资源。

  • 白名单

    只有白名单内的域名能访问当前资源,白名单以外的域名均无法访问当前的资源。

说明

黑名单和白名单互斥,同一时间您只能选择其中一种方式。

规则

  • 支持添加多个Referer名单,使用回车符进行分隔。

  • 支持使用星号(*)作为通配符。例如,配置*.developer.aliyundoc.com,可以匹配到image.developer.aliyundoc.comvideo.developer.aliyundoc.com等。

说明

Referer防盗链规则的总长度最长不超过60 KB。

高级配置

允许通过浏览器地址栏直接访问资源URL

当勾选该选项时,无论配置的是Referer黑名单还是白名单,请求Referer字段为空或无Referer字段(例如浏览器请求),CDN节点都将允许用户访问当前的资源。

精确匹配

白名单:使用精确匹配模式,控制“白名单列表”项中填写的域名是否为精确匹配。

  • 勾选精确匹配时:

    • 支持精确匹配。

      白名单列表填写example.com,匹配example.com

      白名单列表填写a*b.example.com,匹配a<任意字符>b.example.com

    • 不支持后缀匹配。

  • 未勾选精确匹配时:

    • 不支持精确匹配。

    • 支持后缀匹配。

      白名单列表填写example.com,匹配example.com<任意字符>.example.com

      白名单列表填写a*b.example.com,匹配a<任意字符>b.example.com<任意字符>.a<任意字符>b.example.com

黑名单:使用精确匹配模式,控制“黑名单列表”项中填写的域名是否为精确匹配。

  • 勾选精确匹配时:

    • 支持精确匹配。

      黑名单列表填写example.com,匹配example.com

      黑名单列表填写a*b.example.com,匹配a<任意字符>b.example.com

    • 不支持后缀匹配。

  • 未勾选精确匹配时:

    • 不支持精确匹配。

    • 支持后缀匹配。

      黑名单列表填写example.com,匹配example.com<任意字符>.example.com

      黑名单列表填写a*b.example.com,匹配a<任意字符>b.example.com<任意字符>.a<任意字符>b.example.com

配置IP黑/白名单

您可以通过配置访问请求来源的IP地址(即IP黑名单和白名单),来实现对访客身份的识别和过滤,限制访问CDN资源的用户,防止恶意IP盗刷、攻击等问题。

说明

更多详情请参见:IP黑/白名单

image.png

参数

说明

名单类型

IP名单类型如下:

  • 黑名单

    黑名单内的IP无法访问加速域名下的所有资源。

  • 白名单

    只有白名单内的IP能访问加速域名下的资源,白名单以外的IP均无法访问。

规则

输入IP段(不可重复,例如:192.168.0.0/24)或IP地址(例如192.168.0.1)。支持IPv6地址、IPv4地址,配置多个IP时使用回车符分隔。

  • IPv6:最多可配置约700个IPv6地址,IP黑名单和白名单均支持IPv6地址(地址中的英文字母不区分大小写,即支持全大写、全小写或大小写混合)。例如:FC00:AA3:0:23:3:300:300A:1234或fc00:0aa3:0000:0023:0003:0300:300a:1234。IPv6地址不支持::缩写格式,例如:不支持FC00:0AA3::0023:0003:0300:300A:1234。支持输入IP段,例如:FC00:0AA3:0000:0000:0000:0000:0000:0000/48。

  • IPv4:最多可配置约2000个IPv4地址。

  • IP地址字符串的总长度不能超过30 KB。

配置UA黑/白名单

User-Agent是访问请求客户端的标识,当您想指定访问的客户端时,可以通过配置User-Agent黑名单和白名单来实现对访客身份的识别和过滤,保证用户只从您允许的客户端访问。

说明

更多详情请参见:UA黑/白名单

image.png

参数

说明

名单类型

User-Agent名单类型如下:

  • 黑名单

    HTTP请求头中的User-Agent字段命中黑名单的情况下,用户将无法访问加速域名下的所有资源。

  • 白名单

    只有HTTP请求头中的User-Agent字段命中白名单的情况下,用户才能访问加速域名下的资源。

规则

配置User-Agent字段时,用竖线(|)分割多个值,支持通配符号(*)。例如:*curl*|*IE*|*chrome*|*firefox*

说明
  • 如果您需要对用户请求中携带了User-Agent请求头,但是值为空的情况做访问控制,您可以使用参数this-is-empty-ua来表示User-Agent值为空。

    • 白名单下:规则中包含this-is-empty-ua,表示如果用户请求中携带了User-Agent请求头,但是值为空,则允许该请求。

    • 黑名单下:规则中包含this-is-empty-ua,表示如果用户请求中携带了User-Agent请求头,但是值为空,则拒绝该请求。

  • 如果您需要对用户请求中不携带User-Agent请求头的情况做访问控制,目前UA黑白名单功能暂不支持。您可以通过边缘脚本功能来实现,具体请参见边缘脚本;或者填写信息申请后台配置。