成人刺激大片在线,精品一区二区中文字幕,亚洲国产片在线观看,亚洲欧美激情国产区

    1. 您的位置:首頁 >寬帶 > 正文

      使用騰訊云SCF實(shí)現(xiàn)COS費(fèi)用封頂?shù)淖罴褜?shí)踐|熱門

      來源:騰訊云 時(shí)間:2023-04-08 08:23:17

      概述

      騰訊云COS對象存儲,在使用的過程中,為了降低開發(fā)成本或單純的出于“便捷”的考慮,往往將存儲桶設(shè)置為公有讀狀態(tài)。但這也埋下了巨大的安全風(fēng)險(xiǎn)的種子,在各種流量盜刷場景下,會快速吸干賬戶余額,正可謂“公有一時(shí)爽,盜刷就破產(chǎn)”。

      那么對于我們這些中小企業(yè)個(gè)人用戶,盜刷都有哪些具體危害呢?

      惡意競爭:盜刷流量的行為可能是某些企業(yè)或個(gè)人惡意競爭的手段,通過消耗競爭對手的流量來獲取商業(yè)利益或個(gè)人利益。經(jīng)濟(jì)損失:盜刷流量會導(dǎo)致網(wǎng)站運(yùn)營商面臨經(jīng)濟(jì)損失,因?yàn)樗麄冃枰Ц陡嗟姆菢I(yè)務(wù)流量費(fèi)用,同時(shí)也會影響網(wǎng)站或應(yīng)用的正常業(yè)務(wù)體驗(yàn)等。法律維權(quán):盜刷流量是一種違法行為,在盜刷導(dǎo)致?lián)p失后,需要收集相關(guān)證據(jù),上報(bào)至網(wǎng)警備案,追根溯源進(jìn)行打擊。無形成本:包括證據(jù)采集,日志分析,多方溝通產(chǎn)生的時(shí)間等額外無形成本。

      那么有沒有一種折中方案,允許我們在使用匿名用戶訪問的情況下的安全使用呢?既在常態(tài)模式下方便用戶訪問,又能在極端情況下為我們及時(shí)止損。


      【資料圖】

      下面就介紹一下用過使用SCF來自動(dòng)實(shí)現(xiàn)COS的權(quán)限修改的方式。

      整體的邏輯為 創(chuàng)建SCF云函數(shù)-->定時(shí)拉取存bucket的準(zhǔn)實(shí)時(shí)流量-->判斷流量是否超過閾值-->修改為私有讀方式

      功能事件圖

      實(shí)現(xiàn)方式

      功能介紹與組件

      方案中所用到的產(chǎn)品包括

      1.云函數(shù)(Serverless Cloud Function,SCF)

      云函數(shù)的主要作用和優(yōu)勢

      1)可以創(chuàng)建主動(dòng)型觸發(fā)事件,可根據(jù)需要設(shè)定觸發(fā)周期。

      2)已內(nèi)置騰訊云 通用云openapi SDK以及COS SDK庫,無需外部引用。

      3)同園區(qū)與COS內(nèi)網(wǎng)互訪,不產(chǎn)生外網(wǎng)流量。

      2.騰訊云可觀測平臺(Tencent Cloud Observability Platform,TCOP) AKA :(云監(jiān)控)

      云監(jiān)控主要作用

      1)多維度采集COS監(jiān)控項(xiàng),包括外網(wǎng)流量,請求次數(shù),CDN回源流量,跨地域復(fù)制流量等等。更多指標(biāo)詳見

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

      2)數(shù)據(jù)采集延時(shí)低,通過實(shí)際測試,一般10分鐘內(nèi)可采集到分鐘級數(shù)據(jù)指標(biāo)。

      實(shí)現(xiàn)邏輯與步驟

      云監(jiān)控調(diào)用方法

      # MetricName 參數(shù) InternetTraffic 指的是外網(wǎng)下行流量         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))

      返回?cái)?shù)據(jù)

      {  "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"  }}

      返回結(jié)果中

      Timestamps以及對應(yīng)的Values是我們得到并用于判斷的數(shù)據(jù)信息。通過簡單的SUM就可以得到這個(gè)時(shí)間段的總流量,從而做出限制性操作。

      實(shí)踐案例

      介紹一個(gè)具體的實(shí)踐案例,展示如何使用以上方法來實(shí)現(xiàn)流量費(fèi)用封頂。

      1. 登錄騰訊云官網(wǎng),進(jìn)入到SCF控制臺--函數(shù)服務(wù)--選擇園區(qū)--點(diǎn)擊“新建”按鈕

      2. 選擇模板創(chuàng)建--過濾 timer關(guān)鍵詞--找到定時(shí)撥測 標(biāo)簽:python3.6的模板

      3. 確認(rèn)配置

      1)修改自定義函數(shù)名稱,修改對應(yīng)函數(shù)描述。

      2)確認(rèn)函數(shù)代碼執(zhí)行環(huán)境為運(yùn)行環(huán)境:Python3.6執(zhí)行方法: index.main_handler

      3)啟動(dòng)日志,選擇默認(rèn)配置

      4)修改觸發(fā)器為自定義創(chuàng)建,觸發(fā)方式定時(shí)觸發(fā),周期修改為每1分鐘

      5)點(diǎn)擊完成

      4. 創(chuàng)建函數(shù)并設(shè)置函數(shù)代碼

      創(chuàng)建過程很快,十幾秒可創(chuàng)建成功。

      進(jìn)入到函數(shù)管理--函數(shù)代碼--復(fù)制文章下面附件中的函數(shù)代碼內(nèi)容并粘貼進(jìn)來

      注意,這里需要按照自己的環(huán)境,修改4個(gè)必選變量

      secret_id 和 secret_key

      這個(gè)是賬號的API 秘鑰,建議使用子賬號秘鑰,子賬號需要授權(quán)COS存儲桶的putbucketacl權(quán)限。

      region

      這個(gè)是存儲桶所在地域,更多地域信息可參見 COS地域列表

      bucket

      這個(gè)是存儲桶的完整名稱,通常為bucket-appid的形式,這個(gè)可以在COS控制臺的桶列表中查看到。

      其他可選變量

      "MetricName":"InternetTraffic",

      這里默認(rèn)設(shè)置為公網(wǎng)下行流量,其他監(jiān)控指標(biāo)詳見

      if_flow>100*1024*1024:#超過100MB流量閾值

      這里默認(rèn)設(shè)置100MB,主要用于測試,測試完成后根據(jù)業(yè)務(wù)所需要的限額流量自行設(shè)置。

      5. 部署與測試

      點(diǎn)擊測試,會自動(dòng)執(zhí)行 :部署+1次函數(shù) 觸發(fā)

      執(zhí)行正??梢钥吹綔y試成功,并返回執(zhí)行日志。

      6. 驗(yàn)證有效性

      設(shè)置對應(yīng)存儲桶權(quán)限為公共讀權(quán)限,并驗(yàn)證匿名訪問一個(gè)對象,正??梢苑祷?00 ok

      找到一個(gè)大于我們設(shè)置閾值100MB的文件,再次下載。

      注意:不要使用同地域的CVM或docker測試,同地域走內(nèi)網(wǎng),不會產(chǎn)生公網(wǎng)下行流量。

      大約10分鐘后,可以看到云函數(shù)檢查到了公網(wǎng)下行流量超過閾值,并將存儲桶ACL改為私有。

      控制臺檢查并再次匿名測試下載資源

      均符合預(yù)期。

      這樣就實(shí)現(xiàn)了盜刷場景發(fā)生后自動(dòng)及時(shí)止損。這里為什么會延時(shí)10分鐘的,這個(gè)是因?yàn)榇鎯ν皵?shù)據(jù)的采集,向云監(jiān)控推送,統(tǒng)一計(jì)算等等均需要時(shí)間。所以根據(jù)實(shí)踐測試,將延時(shí)設(shè)置為10分鐘。

      總結(jié)

      上面通過這個(gè)實(shí)踐,我們將SCF,COS,云監(jiān)控整合在一起,通過基礎(chǔ)數(shù)據(jù)采集,事件觸發(fā),ACL修改等方式,實(shí)現(xiàn)了盜刷即停服的保護(hù)措施,同時(shí)又彌補(bǔ)了告警+人工處理的時(shí)效性低的問題。針對于費(fèi)用敏感又必須使用匿名方式對外提供訪問的用戶,是一個(gè)比較適合的方案。

      多說幾句。

      上面的實(shí)踐是通過檢測外網(wǎng)下行流量并修改存儲桶的ACL的方式實(shí)現(xiàn)止損。

      如果使用CDN(回源鑒權(quán))+COS的方式,那么修改私有是沒有效果的,因?yàn)镃DN的回源參數(shù)都會帶上簽名,這樣的場景就需要修改授權(quán)CDN的策略來實(shí)現(xiàn)止損,(需要將授權(quán)給CDN策略的allow改為deny),接口調(diào)用方式詳見。如果有朋友需要也可以在下面留言,我會再補(bǔ)充文檔。

      再多說幾句。

      如果對停服敏感,可以將代碼中這段注釋去掉。這樣就可實(shí)現(xiàn)盜刷流量峰值過去后即恢復(fù)服務(wù)。但可能有反復(fù)盜刷的情況。對于結(jié)果優(yōu)劣各位親家自行評估。

      index.rar

      標(biāo)簽:

      相關(guān)閱讀