責(zé)任共擔(dān)
函數(shù)計(jì)算提供安全機(jī)制幫助用戶減輕安全保障的負(fù)擔(dān),用戶需要根據(jù)自身實(shí)際情況,運(yùn)用好函數(shù)計(jì)算提供的安全機(jī)制來(lái)實(shí)現(xiàn)業(yè)務(wù)安全性。
用戶身份憑證等鑒權(quán)信息不可泄露
如果用戶泄露了身份憑證等鑒權(quán)信息,業(yè)務(wù)安全將無(wú)從保障。用戶可以使用訪問(wèn)控制服務(wù)通過(guò)RAM用戶以最小授權(quán)原則授權(quán),結(jié)合STS提供臨時(shí)身份憑證,減少身份憑證等鑒權(quán)信息泄露的風(fēng)險(xiǎn)。
函數(shù)代碼及層安全性保障
函數(shù)計(jì)算為通過(guò)鑒權(quán)的用戶提供臨時(shí)代碼及下載地址,用戶需要避免臨時(shí)下載地址泄露,減少代碼或庫(kù)泄露風(fēng)險(xiǎn)。
用戶應(yīng)該避免在代碼或?qū)又杏涗浬矸輵{證等鑒權(quán)信息,避免身份憑證信息泄露。
用戶應(yīng)關(guān)注代碼或?qū)拥拇笮。^(guò)大可能導(dǎo)致函數(shù)實(shí)例冷啟動(dòng)過(guò)慢或啟動(dòng)失敗。
由于函數(shù)實(shí)例可能在不同的調(diào)用間復(fù)用,前面調(diào)用可能導(dǎo)致全局變量、環(huán)境變量和文件系統(tǒng)內(nèi)容等發(fā)生修改,用戶在代碼里不可假設(shè)調(diào)用在全新的環(huán)境執(zhí)行。
由于函數(shù)實(shí)例不能保障一定在不同調(diào)用間復(fù)用,用戶在代碼里不可假設(shè)其它調(diào)用修改的全局變量、環(huán)境變量、文件系統(tǒng)等內(nèi)容在本次調(diào)用依然有效。
在異步調(diào)用及異步任務(wù)場(chǎng)景,函數(shù)計(jì)算幫助用戶自動(dòng)重試函數(shù)執(zhí)行錯(cuò)誤,一個(gè)事件保障至少執(zhí)行一次,但用戶不可假設(shè)同事件最多只觸發(fā)一次調(diào)用。
當(dāng)函數(shù)執(zhí)行返回時(shí),函數(shù)計(jì)算將凍結(jié)函數(shù)實(shí)例,用戶不可假設(shè)調(diào)用返回時(shí)所有異步進(jìn)程、線程、協(xié)程等執(zhí)行完成,也不可假設(shè)本次異步寫入的日志被刷新。
雖然函數(shù)計(jì)算單個(gè)函數(shù)實(shí)例可以執(zhí)行多個(gè)并發(fā),但并發(fā)能力與Runtime語(yǔ)言實(shí)現(xiàn)有關(guān)系,比如Node.js是單線程模式。Python有GIL全局鎖,對(duì)計(jì)算密集型調(diào)用無(wú)法并發(fā)執(zhí)行,用戶不可假設(shè)并發(fā)執(zhí)行數(shù)始終符合預(yù)期。
函數(shù)調(diào)用有多種資源限制,比如調(diào)用請(qǐng)求包和返回包
headers
大小不超過(guò)4 KB,環(huán)境變量總大小不超過(guò)4 KB,請(qǐng)求包body
不超過(guò)16 MB等(資源限制可能調(diào)整,以官網(wǎng)文檔為準(zhǔn)),用戶不可假設(shè)代碼在超過(guò)資源限制時(shí)可以正常執(zhí)行。函數(shù)計(jì)算運(yùn)行時(shí)版本支持時(shí)間與社區(qū)同步,當(dāng)社區(qū)停止支持時(shí),函數(shù)計(jì)算也會(huì)啟動(dòng)停止支持流程,停止支持后不保證函數(shù)一直正常運(yùn)行,用戶需要及時(shí)棄用已停止支持的運(yùn)行時(shí)版本。
用戶需要自行保障代碼及庫(kù)的安全性,及時(shí)修復(fù)漏洞并更新函數(shù)。
函數(shù)配置安全性保障
函數(shù)資源配置
用戶應(yīng)合理地設(shè)置函數(shù)最大執(zhí)行時(shí)長(zhǎng),設(shè)置過(guò)長(zhǎng)在異常時(shí)可能產(chǎn)生更多的費(fèi)用,設(shè)置過(guò)短可能影響服務(wù)可用性。
用戶應(yīng)合理設(shè)置函數(shù)的最大內(nèi)存配置,設(shè)置過(guò)高會(huì)產(chǎn)生更多的費(fèi)用,設(shè)置過(guò)少可能影響服務(wù)可用性或執(zhí)行性能。
用戶應(yīng)合理設(shè)置單個(gè)函數(shù)實(shí)例的調(diào)用并發(fā)度,設(shè)置過(guò)多可能影響服務(wù)的可用性或執(zhí)行性能。
用戶應(yīng)合理地設(shè)置最大資源配額,避免異常時(shí)消耗更多的費(fèi)用。
函數(shù)訪問(wèn)權(quán)限配置
用戶應(yīng)使用訪問(wèn)控制服務(wù)合理的規(guī)劃不同RAM用戶訪問(wèn)函數(shù)計(jì)算的權(quán)限,以降低安全風(fēng)險(xiǎn)。
用戶應(yīng)合理的選擇函數(shù)的訪問(wèn)權(quán)限,比如是否限定只能從指定的VPC網(wǎng)絡(luò)訪問(wèn)。
用戶應(yīng)合理地開(kāi)通觸發(fā)器的訪問(wèn)權(quán)限,以免函數(shù)被非預(yù)期調(diào)用。
函數(shù)網(wǎng)絡(luò)外訪配置
用戶應(yīng)根據(jù)實(shí)際需要合理的選擇網(wǎng)絡(luò)外訪配置,比如是否允許訪問(wèn)指定的VPC等,避免敏感信息泄露。
阿里云服務(wù)訪問(wèn)配置
用戶應(yīng)根據(jù)實(shí)際需要合理地為函數(shù)計(jì)算執(zhí)行角色配置阿里云服務(wù)的訪問(wèn)權(quán)限,如OSS和OTS等,避免敏感信息泄露。
對(duì)于用戶配置的NAS,目前通過(guò)VPC網(wǎng)絡(luò)傳輸保障安全性,用戶可以自主選擇是否啟用加密傳輸功能。更多信息,請(qǐng)參見(jiàn)NFS文件系統(tǒng)傳輸加密。