实时

您的位置:首页>资讯 >

使用腾讯云SCF实现COS费用封顶的最佳实践-世界观热点

概述

腾讯云COS对象存储,在使用的过程中,为了降低开发成本或单纯的出于“便捷”的考虑,往往将存储桶设置为公有读状态。但这也埋下了巨大的安全风险的种子,在各种流量盗刷场景下,会快速吸干账户余额,正可谓“公有一时爽,盗刷就破产”。

那么对于我们这些中小企业个人用户,盗刷都有哪些具体危害呢?


(资料图片)

恶意竞争:盗刷流量的行为可能是某些企业或个人恶意竞争的手段,通过消耗竞争对手的流量来获取商业利益或个人利益。经济损失:盗刷流量会导致网站运营商面临经济损失,因为他们需要支付更多的非业务流量费用,同时也会影响网站或应用的正常业务体验等。法律维权:盗刷流量是一种违法行为,在盗刷导致损失后,需要收集相关证据,上报至网警备案,追根溯源进行打击。无形成本:包括证据采集,日志分析,多方沟通产生的时间等额外无形成本。

那么有没有一种折中方案,允许我们在使用匿名用户访问的情况下的安全使用呢?既在常态模式下方便用户访问,又能在极端情况下为我们及时止损。

下面就介绍一下用过使用SCF来自动实现COS的权限修改的方式。

整体的逻辑为 创建SCF云函数-->定时拉取存bucket的准实时流量-->判断流量是否超过阈值-->修改为私有读方式

功能事件图

实现方式

功能介绍与组件

方案中所用到的产品包括

1.云函数(Serverless Cloud Function,SCF)

云函数的主要作用和优势

1)可以创建主动型触发事件,可根据需要设定触发周期。

2)已内置腾讯云 通用云openapi SDK以及COS SDK库,无需外部引用。

3)同园区与COS内网互访,不产生外网流量。

2.腾讯云可观测平台(Tencent Cloud Observability Platform,TCOP) AKA :(云监控)

云监控主要作用

1)多维度采集COS监控项,包括外网流量,请求次数,CDN回源流量,跨地域复制流量等等。更多指标详见

https://cloud.tencent.com/document/product/248/45140

2)数据采集延时低,通过实际测试,一般10分钟内可采集到分钟级数据指标。

实现逻辑与步骤

云监控调用方法

# MetricName 参数 InternetTraffic 指的是外网下行流量         req = models.GetMonitorDataRequest()    params = {        "Namespace": "QCE/COS",        "MetricName": "InternetTraffic",        "Period": 60,        "StartTime": time_start.strftime("%Y-%m-%d %H:%M:%S"),        "EndTime": time_end.strftime("%Y-%m-%d %H:%M:%S"),        "Instances": [            {                "Dimensions": [                    {                        "Name": "bucket",                        "Value": bucket                    }                ]            }        ]    }    req.from_json_string(json.dumps(params))

返回数据

{  "Response": {    "DataPoints": [      {        "Dimensions": [          {            "Name": "bucket",            "Value": "wainsun-1253985742"          }        ],        "Timestamps": [          1680576000,          1680576060,          1680576120,          1680576180,          1680576240,          1680576300        ],        "Values": [          155189649,          169098752,          0,          0,          0,          0        ]      }    ],    "EndTime": "2023-04-04 10:45:00",    "MetricName": "InternetTraffic",    "Msg": "",    "Period": 60,    "RequestId": "57d5d310-0989-47db-8982-26b1903afe85",    "StartTime": "2023-04-04 10:40:00"  }}

返回结果中

Timestamps以及对应的Values是我们得到并用于判断的数据信息。通过简单的SUM就可以得到这个时间段的总流量,从而做出限制性操作。

实践案例

介绍一个具体的实践案例,展示如何使用以上方法来实现流量费用封顶。

1. 登录腾讯云官网,进入到SCF控制台--函数服务--选择园区--点击“新建”按钮

2. 选择模板创建--过滤 timer关键词--找到定时拨测 标签:python3.6的模板

3. 确认配置

1)修改自定义函数名称,修改对应函数描述。

2)确认函数代码执行环境为运行环境:Python3.6执行方法: index.main_handler

3)启动日志,选择默认配置

4)修改触发器为自定义创建,触发方式定时触发,周期修改为每1分钟

5)点击完成

4. 创建函数并设置函数代码

创建过程很快,十几秒可创建成功。

进入到函数管理--函数代码--复制文章下面附件中的函数代码内容并粘贴进来

注意,这里需要按照自己的环境,修改4个必选变量

secret_id 和 secret_key

这个是账号的API 秘钥,建议使用子账号秘钥,子账号需要授权COS存储桶的putbucketacl权限。

region

这个是存储桶所在地域,更多地域信息可参见 COS地域列表

bucket

这个是存储桶的完整名称,通常为bucket-appid的形式,这个可以在COS控制台的桶列表中查看到。

其他可选变量

"MetricName":"InternetTraffic",

这里默认设置为公网下行流量,其他监控指标详见

if_flow>100*1024*1024:#超过100MB流量阈值

这里默认设置100MB,主要用于测试,测试完成后根据业务所需要的限额流量自行设置。

5. 部署与测试

点击测试,会自动执行 :部署+1次函数 触发

执行正常可以看到测试成功,并返回执行日志。

6. 验证有效性

设置对应存储桶权限为公共读权限,并验证匿名访问一个对象,正常可以返回200 ok

找到一个大于我们设置阈值100MB的文件,再次下载。

注意:不要使用同地域的CVM或docker测试,同地域走内网,不会产生公网下行流量。

大约10分钟后,可以看到云函数检查到了公网下行流量超过阈值,并将存储桶ACL改为私有。

控制台检查并再次匿名测试下载资源

均符合预期。

这样就实现了盗刷场景发生后自动及时止损。这里为什么会延时10分钟的,这个是因为存储桶数据的采集,向云监控推送,统一计算等等均需要时间。所以根据实践测试,将延时设置为10分钟。

总结

上面通过这个实践,我们将SCF,COS,云监控整合在一起,通过基础数据采集,事件触发,ACL修改等方式,实现了盗刷即停服的保护措施,同时又弥补了告警+人工处理的时效性低的问题。针对于费用敏感又必须使用匿名方式对外提供访问的用户,是一个比较适合的方案。

多说几句。

上面的实践是通过检测外网下行流量并修改存储桶的ACL的方式实现止损。

如果使用CDN(回源鉴权)+COS的方式,那么修改私有是没有效果的,因为CDN的回源参数都会带上签名,这样的场景就需要修改授权CDN的策略来实现止损,(需要将授权给CDN策略的allow改为deny),接口调用方式详见。如果有朋友需要也可以在下面留言,我会再补充文档。

再多说几句。

如果对停服敏感,可以将代码中这段注释去掉。这样就可实现盗刷流量峰值过去后即恢复服务。但可能有反复盗刷的情况。对于结果优劣各位亲家自行评估。

index.rar

关键词:

推荐阅读
腾讯云COS对象存储,在使用的过程中,为了降低开发成本或单纯的出于“便捷”的考虑,往往将存储桶设置为公有读状态。但这也埋下了巨大的安全风

2023-04-08 01:12:25

【山河药辅:一季度净利预增40 11%-51 93%】财联社4月7日电,山河药辅发布业绩预告,预计2023年一季度归母净

2023-04-07 22:05:59

现代快报网是由凤凰出版传媒集团旗下的现代快报倾力打造的江苏新闻门户网站,目前在南京、苏州、无锡、常州、扬州、泰州等十三地市,影响力辐射

2023-04-07 20:53:18

半岛全媒体记者李晓哲刘笑笑孙兆慧孟达4月7日,2023青岛数字文化应用发展大会在青岛西海岸新区正式开幕。大会现场

2023-04-07 19:18:06

牛皮癣是一种非常难以治疗的慢性皮肤病,不但治疗过程慢,而且又容易反复发作,给患者的身心健康带来伤害 所以,患者朋友在日常生活中一定要做好

2023-04-07 18:19:51

购买新车奥迪,保养时发现售前有维修记录,一审法院判商家赔偿2万

2023-04-07 17:15:30

天命奇御是一款非常好玩的角色扮演游戏,很多玩家想知道天命奇御2一探究竟任务怎么做,为了帮助玩家能够顺利的完成这个任务,小编就为大家带来

2023-04-07 16:23:00

中央纪委国家监委网站讯据中央纪委国家监委驻中国农业银行纪检监察组、云南省纪委监委消息:中国农业银行云南省分行原党委委员、副行长沈锐涉

2023-04-07 15:18:12

保护消费者权益是无论如何都应该首当其冲需要考虑的事情。经过一番调查和实地考察,有部分网友表示颖儿所代言的某家居品牌存在质量问题,已经

2023-04-07 14:48:30

大家好,今日关于【丰县“八孩女子”丈夫被判9年】迅速上了的热搜榜,受到全网的关注度非常高。那么【丰县“八孩女子”丈夫被判9年】是什么

2023-04-07 13:24:13

「核心要点」京东是中国电商领域的重要参与者之一,但在竞争激烈的市场环境中,刘强东面临着市场份额缩减、财务状况不如预期、竞争对手等挑战

2023-04-07 12:07:03

命运方舟职业推荐2023最新职业强度排名榜,命运方舟职业哪个厉害,在游戏中可以选择职业也是很多的,各种不同的类型的职业也不同,你需要根据自

2023-04-07 11:25:43

云南是一个多民族聚居省份,各民族同胞在生产生活中积淀了丰富多彩的民族文化,形成了极具特色的民族歌舞和民族节日。在这里,有这样一种说法

2023-04-07 10:22:44

1、就是降低存款准备金占其存款总额的比例。2、存款准备金,也称为法定存款准备金或存储准备金,是指金融机构为保证客户提取存

2023-04-07 09:58:40

7大纵队整合了大客户业务、ISGChina(基础设施业务群)和SSGChina(方案服务业务群)的销售团队,重新整编为客户经理(AR)、产品及解决方案专家(SS)

2023-04-07 08:54:20

1、一般外八字脚的成因主要有两种,所以对于不同成因的外八字脚,矫正方法也是不同的。如果要矫正先天性踝关节外翻导致的走路姿

2023-04-07 07:53:55

NBA正式驳回独行侠5打0申诉!联盟详解原因库班1万美元打水漂,勇士,科尔,nba,独行侠主场,克拉斯诺达尔库班足球俱乐部

2023-04-07 06:08:20

1、服用最后3片米索前列醇后2-3小时,会出现阴道出血和下腹痛。2、大多数人会在服药后6小时内出院,大多数人会在服药后3

2023-04-07 03:05:57

此外,俄白双方正在紧锣密鼓地制定共同经济政策,筹备签署统一电力市场协议

2023-04-06 22:50:04

创维数字4月6日在互动平台表示,公司相关海外智能盒子、家庭智能助手等ChatGPT应用的产品,公司已在规划、开发及测试中

2023-04-06 21:15:07