使用事件中樞保護 Azure Functions
在 Azure 中設定資源的存取權時,您應該對資源的許可權套用更細緻的控制。 存取這些資源應該以需要知道和最低許可權的安全性原則為基礎,以確保用戶端只能執行授與他們的有限動作集。
授權存取事件中樞
您可以使用下列安全性建構,授權存取 Azure 事件中樞 資源:
Microsoft Entra ID: Microsoft Entra ID 提供角色型訪問控制 (RBAC),以細微控制用戶端對事件中樞資源的存取。 根據授與的角色和許可權,Microsoft Entra標識符會使用 OAuth 2.0 存取令牌來授權要求。
共用存取簽章: 共用存取簽章 (SAS) 可讓您根據授權規則保護事件中樞資源。 您可以選取一或多個 原則規則來定義授權原則,例如傳送訊息、接聽訊息,以及管理命名空間中的實體。
共用存取簽章考慮
搭配 Azure Functions 和事件中樞使用共用存取簽章時,應該檢閱下列考慮:
避免管理許可權: 除了能夠管理事件中樞命名空間中的實體之外,管理許可權也包含傳送和接聽許可權。 在理想情況下,函式應用程式應該只會根據其執行的動作,授與傳送和接聽許可權的組合。
請勿使用預設的Manage規則:請避免使用名為 RootManageSharedAccessKey 的默認原則規則,除非函式應用程式需要此規則,這應該是不常見的案例。 此預設規則的另一個注意事項是在命名空間層級建立,並將許可權授與所有基礎事件中樞。
檢閱共用存取原則範圍: 您可以在命名空間層級和每個事件中樞建立共用存取原則。 請考慮建立針對每個用戶端量身打造的細微存取原則,以限制其範圍和許可權。
受控識別
Active Directory 身分識別可以指派給 Azure 中的受控資源,例如函式應用程式或 Web 應用程式。 指派身分識別之後,其具有使用 Microsoft Entra 標識符進行授權的其他資源的功能,這與服務主體非常類似。
函式應用程式可以指派 受控識別 ,並利用服務子集的身分識別型連線,包括事件中樞。 身分識別型連線同時支援觸發程式和輸出系結延伸模組,而且必須使用 事件中樞延伸模組 5.x 和更新版本 來支援。
網路
根據預設,只要要求隨附有效的驗證和授權,事件中樞命名空間即可從因特網存取。 有三個選項可用來限制事件中樞命名空間的網路存取:
在所有情況下,請務必注意,至少指定命名空間的一個IP防火牆規則或虛擬網路規則。 否則,如果未指定IP位址或虛擬網路規則,則會透過公用因特網存取命名空間(使用存取密鑰)。
Azure Functions 可以設定為取用事件,或將事件發佈至事件中樞,這些事件是使用服務端點或私人端點所設定。 您的函式應用程式需要區域虛擬網路整合,才能使用服務端點或私人端點連線到事件中樞。
當您整合 Functions 與虛擬網路並啟用 vnetRouteAllEnabled
時,函式應用程式的所有輸出流量都會透過虛擬網路強制執行。 對於您想要透過檢查和控制虛擬網路的所有流量,包括 Azure 服務流量在內的所有流量來保護函式應用程式,這特別重要。 如果您想要完全鎖定函式應用程式,您也需要 限制記憶體帳戶。
若要在虛擬網路環境中觸發(取用)事件,函式應用程式必須裝載於進階方案、專用(App Service) 方案或 App Service 環境(ASE)。
此外,在 Azure Functions Premium 方案中執行,並從虛擬網路受限制的事件中樞取用事件需要支援虛擬網路觸發程式,也稱為 運行時間規模監視。 您可以透過 Azure 入口網站、Azure CLI 或其他部署解決方案來設定運行時間調整監視。 當函式是在專用 (App Service) 方案或 ASE 中執行時,無法使用運行時間調整監視。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- 大衛·巴科爾 |主要解決方案專家 GBB
若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。
下一步
在繼續之前,請考慮檢閱下列相關文章: