引入

在公网对对象存储进行读取,有公有读和私有读两个方式,但是由于CDN无法进行验证,导致如果非同一厂商支持内网验证的CDN环境下,必须使用公有读才可以正常从外网访问。
最近腾讯云CDN的源站多了一个新选项第三方对象存储,控制台对此的注释是AWS S3和阿里云OSS
言下之意,就是腾讯云CDN支持私有访问第三方存储桶了。

腾讯云的老用户都知道如果使用COS服务,可以通过CDN私有访问,防止有别的用户通过直接访问COS源站,忽略了CDN的简易防御,产生大量损失。而现如今腾讯云CDN将这个功能适配到第三方存储桶上,恰好解决了这个问题。

本教程以阿里云OSS对接腾讯云CDN为例,简述如何使用该项功能~

准备

使用该项业务,需要先在第三方创建新的存储桶。
新建的时候存储桶的读写权限(Bucket ACL)选择私有,已有存储桶的清选择低访问量的时段进行操作避免影响用户体验。

AccessKey的获取与使用

创建完私有存储桶之后,我们需要获取AccessKey ID和AccessKey Secret。
由于AccessKey拥有账户的全部权限,所以不建议直接将主账号的AccessKey作为对接CDN的AccessKey。
阿里云用户可以通过RAM 访问控制创建新的子账户,具体命名规则参照用户文档。
需要给相应的子账户授权AliyunOSSReadOnlyAccess的权限策略名称,该权限是只读访问对象存储服务(OSS)的权限。因为不需要用到编辑,只需要只读权限,因此不建议给对应子账户授权太多内容避免出现风险。

对接腾讯云CDN

一切创建好之后,进入腾讯云CDN控制台,选择添加域名,源站选择第三方存储桶,源站地址填写对象存储的外网访问地址。然后勾选私有存储桶访问,填写刚刚获取的子账户AccessKey ID和AccessKey Secret然后点击确认。

缓存策略及问题检查

对于动静分离和图站分离的站长,建议直接缓存全站30天,当静态文件出现变更时,再到控制台进行刷新,这样可以大量减少对象存储的计费。
如果出现文件加载异常,建议先把存储桶改成公有读私有写,之后关闭私有访问,若依旧存在问题则为对象存储/CDN配置不当。若问题解决,建议检查AccessKey有效性和权限。

结语

腾讯云CDN居然可以推出此项功能是我没想到,相比别家自己只能对接自己的对使用多家云厂商产品的用户更加友好。也希望别的厂商能尽快推出类似功能。

最后修改:2021 年 09 月 28 日
如果觉得我的文章对你有用,请随意赞赏