借助Microsoft Azure 提供的無服務器平臺Azure功能,開發人員可以簡單地部署代碼來運行作業,而無需了解底層基礎設施或操作系統。Azure功能平臺負責管理部署環境,智能響應潛在事件,例如消息隊列中的數據或數據流中的更改。
云共享責任模型
云計算允許公司將托管和維護其底層基礎設施的責任外包給第三方云服務提供商。這使公司能夠利用云的各種優勢,并將保護此底層基礎設施的責任移交給云提供商。
然而,在云共享責任模型下,云提供商并不對客戶的云部署承擔全部責任。根據所使用的云模型(SaaS、IaaS、PaaS 等),客戶可以訪問和控制其云基礎架構堆棧的某些級別。除了配置和維護這些級別之外,客戶還負責充分保護它們。
什么是無服務器安全?
充分利用云計算的優勢需要部署云原生解決方案。無服務器應用程序(例如Azure功能)在云提供商管理整個基礎架構堆棧而不是客戶的環境中運行,從而為開發人員創建一個托管環境以在其中部署和執行代碼。
無服務器功能和環境的設計會帶來獨特的安全風險。例如,無服務器功能是僅在響應特定事件時才處于活動狀態的應用程序,因此很難使用傳統的安全解決方案對其進行有效監控。無服務器安全性提供針對Azure功能和其他無服務器應用程序的獨特需求和安全挑戰量身定制的安全性。
Azure功能安全性的重要性
隨著公司更全面地采用 Microsoft Azure,可能已經“提升和轉移”的遺留應用程序可能會被重新設計為云原生無服務器應用程序,而新的開發將充分利用無服務器生態系統。因此,一家公司將擁有越來越多的無服務器應用程序。
這些應用程序可能會訪問敏感信息并實施組織 IT 解決方案的核心組件。實施強大的Azure功能安全性對于防止數據泄露、關鍵服務中斷以及對組織運營的其他潛在威脅至關重要。
Azure功能安全最佳實踐
Azure功能等無服務器應用程序面臨許多與非無服務器應用程序相同的安全威脅。但是,無服務器功能也具有獨特的安全風險和管理它們的最佳實踐。
其中一些最佳實踐包括:
驗證不受信任的輸入:注入攻擊是對應用程序安全的最大威脅之一,這些漏洞的存在是因為應用程序對不受信任的輸入做出假設而不強制執行。在處理輸入之前驗證輸入可以保護Azure功能和其他應用程序免受注入攻擊。
實施最低權限:如果Azure功能存在可利用的漏洞,則攻擊者可能會利用此漏洞訪問敏感數據或其他企業 IT 資產。將Azure功能的訪問權限限制為僅對其角色所需的訪問權限有助于最大限度地減少應用程序受到攻擊或其他問題的影響。
管理供應鏈風險:應用程序通常依賴于各種第三方庫和其他外部依賴項,其中可能包含可被攻擊者利用的漏洞。監視安全更新的依賴項并及時安裝它們對于維護依賴它們的應用程序的安全性至關重要。
安全的云存儲:Azure功能通常是無狀態的,依賴云存儲來維護重要的狀態數據;然而,云數據安全是組織面臨的共同挑戰。限制對云數據存儲的訪問對于無服務器函數數據的機密性、完整性和可用性至關重要。
保護函數機密:Azure功能可能需要訪問機密信息,例如加密密鑰、API 密鑰和其他數據。這些數據必須安全存儲,而不是放置在攻擊者可能訪問的明文配置文件或環境變量中。
實施零信任安全:無服務器應用程序旨在相互連接。由于一些可能是面向公眾的,而另一些可能會訪問關鍵數據和功能,因此薄弱的身份驗證和訪問管理實踐可能會使關鍵功能容易受到攻擊。應在零信任模型下實施身份驗證和授權,在該模型中,每個訪問請求都會根據最低權限訪問控制進行審查和批準或拒絕。