使用腾讯云SCF实现COS费用封顶的最佳实践 环球新动态
2023-04-08 14:27:39 来源:腾讯云

概述

腾讯云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

“旺季”来临!煤炭板块走高 云煤能源、陕西黑猫涨停

2023-09-09

北极冰川中出现巨大冰窟窿 面积大小相当于韩国面积的70%

2023-09-09

皇马球员罗德里戈,巴尔韦德和楚阿梅尼在国际比赛日...

2023-09-09

他是村民健康“守门人”

2023-09-09

中信博:融资净买入9327元,融资余额1.24亿元(09-08)

2023-09-09

若昂保罗二世机场(关于若昂保罗二世机场简述)

2023-09-09

常州举办“专精特新”企业股改上市培训活动 积极支持北交所“扩容”

2023-09-08

借款人可否提前偿还住房公积金贷款

2023-09-08

深圳特大暴雨 :营救疏散逾600位被困人员 转移民众超1600人

2023-09-08

花样年位于成都的4宗地块将被拍卖,总起拍价约5.57亿元

2023-09-08

“中国数坝”张家口大数据产业对接会举行 8个项目签约总投资80.15亿元

2023-09-08

中油工程:签订30.33亿元施工总承包合同

2023-09-08

粉蒸羊肉的做法最正宗的做法视频教程(粉蒸羊肉的做法最正宗的做法)

2023-09-08

梅西赛后与厄瓜多尔门将交换球衣,两人儿时是邻居曾经常交手

2023-09-08

限时抢购Redmi 红米 Note11T Pro 5G 1699元

2023-09-08

广西省造老银元价格(2023年09月08日)

2023-09-08

打破信息壁垒,皮小度让专业美肤方案触手可及

2023-09-08

旷达科技(002516):MACD指标DIF线上穿0轴-技术指标上后市看多(09-08)

2023-09-08

存款利率一降再降,大行存款规模却大幅增加!钱从哪里来的?

2023-09-08

人民银行开展1010亿元逆回购操作 公开市场实现净回笼1200亿元

2023-09-01

如何做好出厂后组件的隐裂控制?

2023-09-01

圆通速递(600233)8月31日主力资金净买入731.34万元

2023-09-01

文明海南 | 七旬老人为孤残侄女筑起幸福港湾

2023-09-01

药品包装机(关于药品包装机简述)

2023-09-01

突发!一栋五层建筑失火,已致73人遇难

2023-08-31

武铁暑运火爆收官:发送旅客3808万人次,装运货物1662万吨,双双创新高

2023-08-31

税务专管员回应宋祖儿被举报上热搜,税务系统内部人士:分局专员无举报受理权限,不知情很正常

2023-08-31

ST小桥2023年上半年净利-98.14万 由盈转亏

2023-08-31

中毛自贸区联委会首次会议在路易港举行

2023-08-31

A0级小型车,几何E萤火虫、海鸥、缤果怎么选?

2023-08-31

芯途异构宣布完成千万级天使轮融资

2023-08-31

“五经普”动态丨湖南:全面构建第五次经济普查工作宣传格局

2023-08-31

造梦西游3号和密码大全真的(造梦西游3号和密码90级)

2023-08-31

格力电器:上半年实现营业收入992.37亿元

2023-08-31

长株潭获批综合型流通支点城市

2023-08-31

假面骑士Gotchard:三骑雷杰多未有追加情报放出,难道小明哥回归只是一个噱头

2023-08-31

儿童棒棒糖,来自日本核辐射地区!已立案调查

2023-08-31

南方航空上半年营收同比增长约76%,厦门航空扭亏为盈

2023-08-31

今日公告透露利好:6只个股有潜力

2023-08-31

深市分红三大新趋势彰显公司回报意识攀升 主板去年现金分红超过股权融资金额

2023-08-30

股票行情快报:方大炭素(600516)8月30日主力资金净卖出1042.68万元

2023-08-30

关羽的“智多星”,计谋不输诸葛亮,关羽若听他的话,荆州不会丢

2023-08-30

同方知网与华为云签约,共建华知大模型

2023-08-30

这国局势突变!中国使馆紧急提醒中国公民不外出

2023-08-30

习近平对四川凉山州金阳县山洪灾害作出重要指示

2023-08-30

上座率达九成,中杂《双奥密境》成为暑期旅游演出热门项目

2023-08-30

江苏金租增资获批 注册资本将增至约42.45亿元

2023-08-30

德必集团:8月29日融资买入840.21万元,融资融券余额4064.32万元

2023-08-30

债主变股东!碧桂园拟发行3.51亿股新股,建滔集团旗下企业认购

2023-08-30

太行山水 漳河画廊

2023-08-30

品牌建设引领产业振兴——哈尔滨县域经济发展一线观察

2023-08-30

第九套广播体操 mp3音乐(第九套广播体操 mp3)

2023-08-30

男篮世界杯:16强已出10席 亚洲5队已出局

2023-08-30

留一半清醒,留一半醉

2023-08-29

公职人员被举报酒后辱骂殴打村民 单位回应:公安和纪委正在调查

2023-08-29

江苏雷利:接受海南恒立私募等机构调研

2023-08-29

全新配色不简单!Nike Vaporfly 3 又有新配色!

2023-08-29

2023蜀里安逸四川消费券领取步骤(图解)

2023-08-29

8月29日国内萤石产业链部分价格上涨

2023-08-29

区位码和国标码之间的转换(区位码与国标码的转换)

2023-08-29

春秋战国时期变法(春秋战国时期)

2023-08-29

迈信林:8月28日融资买入362.18万元,融资融券余额3594.67万元

2023-08-29

中铁工业上半年实现净利润10亿元 同比增长8.04%

2023-08-29

美国人普遍认为拜登年龄太大,不宜连任美国总统

2023-08-29

康普顿上半年净利3711万 同比增21%;小鹏58亿收购滴滴汽车业务丨AC早报

2023-08-29

每体:费尔明将与巴萨续约至2028年,解约金4亿欧

2023-08-29

仁和药业董事长杨潇合计增持183万股公司股份 耗资1204.14万元

2023-08-28

云天化:上半年实现净利润26.78亿元

2023-08-28

[c/洛/猫/红/卡]照进末地的光.4

2023-08-28

真我GT5销量公布:打破今年所有手机新品尝鲜购销量纪录

2023-08-28

dnf自动刷图脚本哪个比较好_dnf自动刷图脚本

2023-08-28

东方米兰国际城户型图(东方米兰国际城)

2023-08-28

satellite tool kit下载

2023-08-28

永胜医疗(01612)将于9月29日派中期股息每股0.0125港元

2023-08-28

高居中乙榜首,重庆铜梁龙主帅:足协杯踢申花,我们抱着学习态度

2023-08-28

龙佰集团8月28日开盘涨幅达5%

2023-08-28

安徽决定:在全省范围内排查

2023-08-28

周一机构一致最看好的10金股

2023-08-28

受洗的意义和目的讲章(受洗)

2023-08-28

蔚来能源与雅诗阁签订绿色能源合作协议

2023-08-27

同屏器干啥用的_同屏器是什么

2023-08-27

不够的组词(不够组词)

2023-08-27

水蒸荷包蛋怎么蒸最好吃

2023-08-27

国家统计局:1-7月全国规上工业企业利润下降15.5%

2023-08-27

送孩子上学的经典语句

2023-08-27

关于悟道

2023-08-27

【小里帮忙】煜城阳光花邸小区30号楼频繁停水,物业:一加压就爆管

2023-08-27

安徽幼师高等专科学校排名 安徽幼师学校有哪些

2023-08-27

惨败塞尔维亚!事实证明,赵继伟、王哲林、李凯尔打不了国际大赛

2023-08-26

什么情况构成敲诈勒索行为

2023-08-26

桂林记录者:苗医廖德银,传承千年苗医 弘扬仁心医术

2023-08-26

成都车展直击:电动车狂奔,燃油车末路?

2023-08-26

四川省威远县发布大风蓝色预警

2023-08-26

违规开展学科类校外培训,武汉这些机构(个人)被查处!

2023-08-26

恐怖游戏《逃生:试炼》推迟至明年登陆 PS5、Xbox 主机平台

2023-08-26

副院长微信号被盗 晒“副处长礼物”博主发文:被盗号 基本情况讲解

2023-08-26

西安——亿科江山悦丨楼盘测评

2023-08-26

竞业达(003005):8月25日北向资金增持35.58万股

2023-08-26

肚包鸡的做法大全窍门(肚包鸡的做法)

2023-08-25

中国再次逮捕了一名美国间谍。法媒报道称,在华的11万名间谍

2023-08-25