使用者身份憑證等鑒權資訊不可泄露
如果使用者泄露了身份憑證等鑒權資訊,業務安全將無從保障。使用者可以使用存取控制服務通過RAM使用者以最小授權原則授權,結合STS提供臨時身份憑證,減少身份憑證等鑒權資訊泄露的風險。
函數代碼及層安全性保障
- Function Compute為通過鑒權的使用者提供臨時代碼及下載地址,使用者需要避免臨時下載地址泄露,減少代碼或庫泄露風險。
- 使用者應該避免在代碼或層中記錄身份憑證等鑒權資訊,避免身份憑證資訊泄露。
- 使用者應關注代碼或層的大小,過大可能導致函數執行個體冷啟動過慢或啟動失敗。
- 由於函數執行個體可能在不同的調用間複用,前面調用可能導致全域變數、環境變數和檔案系統內容等發生修改,使用者在代碼裡不可假設調用在全新的環境執行。
- 由於函數執行個體不能保障一定在不同調用間複用,使用者在代碼裡不可假設其它調用修改的全域變數,環境變數,檔案系統等內容在本次調用依然有效。
- 在非同步呼叫及非同步任務情境,Function Compute協助使用者自動重試函數執行錯誤,一個事件保障至少執行一次,但使用者不可假設同事件最多隻觸發一次調用。
- 當函數執行返回時,Function Compute將凍結函數執行個體,使用者不可假設調用返回時所有非同步進程、線程、協程等執行完成,也不可假設本次非同步寫入的日誌被重新整理。
- 雖然Function Compute單個函數執行個體可以執行多個並發,但並發能力與Runtime語言實現有關係,比如Node.js是單線程模式。Python有GIL全域鎖,對計算密集型調用無法並發執行,使用者不可假設並發執行數始終符合預期。
- 函數調用有多種資源限制,比如調用請求包和返回包
headers
大小不超過4 KB, 環境變數總大小不超過4 KB,請求包body
不超過16 MB等(資源限制可能調整,以官網文檔為準),使用者不可假設代碼在超過資源限制時可以正常執行。 - Function Compute運行時版本支援時間與社區同步,當社區停止支援時,Function Compute也會啟動停止支援流程,停止支援後不保證函數一直正常運行,使用者需要及時棄用已停止支援的運行時版本。
- 使用者需要自行保障代碼及庫的安全性,及時修複漏洞並更新函數。
函數配置安全性保障
函數資源配置
- 使用者應合理的設定函數最大執行時間長度,設定過長在異常時可能產生更多的費用,設定過短可能影響服務可用性。
- 使用者應合理設定函數的最大記憶體配置,設定過高會產生更多的費用,設定過少可能影響服務可用性或執行效能。
- 使用者應合理設定單個函數執行個體的調用並發度,設定過多可能影響服務的可用性或執行效能。
- 使用者應合理的設定最大資源配額,避免異常時消耗更多的費用。
函數存取權限配置
- 使用者應使用存取控制服務合理的規劃不同RAM使用者訪問Function Compute的許可權,以降低安全風險。
- 使用者應合理的選擇函數的存取權限,比如是否限定只能從指定的VPC網路訪問。
- 使用者應合理的開通觸發器的存取權限,以免函數被非預期調用。
函數網路外訪配置
使用者應根據實際需要合理的選擇網路外訪配置,比如是否允許訪問指定的VPC等,避免敏感資訊泄露。
阿里雲服務訪問配置
- 使用者應根據實際需要合理地為Function Compute執行角色配置阿里雲服務的存取權限,如OSS和OTS等,避免敏感資訊泄露。
- 對於使用者配置的NAS,目前通過VPC網路傳輸保障安全性,使用者可以自主選擇是否啟用加密傳輸功能。更多資訊,請參見NFS協議檔案系統傳輸加密。