Azure 容器應用程式提供在不管理複雜基礎設施的情況下執行容器化應用程式的能力,同時具備企業級安全功能。 部署此服務時,請遵循安全最佳實務以保護資料、設定與基礎設施。
本文提供安全建議,協助保護您的 Azure 容器應用程式部署。
本文中的安全性建議會實作零信任原則:「明確驗證」、「使用最低許可權存取」和「假設違規」。 如需完整的 零信任 指引,請參閱 零信任 指引中心。
服務特定的安全性
容器應用程式提供專為容器化工作負載、微服務架構及雲原生應用程式設計的獨特安全功能。
設定環境層級的安全邊界:利用容器應用程式環境在不同應用程式與工作負載間建立安全邊界。 將生產環境與非生產環境分開,以防止未經授權存取與設定漂移。 欲了解更多資訊,請參閱 環境概述。
實施適當的擴展與資源限制:設定適當的擴展規則與資源限制,以防止資源耗盡攻擊,並確保應用程式間資源公平分配。 監控擴展事件,尋找可能顯示安全問題的異常模式。 如需詳細資訊,請參閱在 Azure 容器應用程式中設定調整規則 (機器翻譯)。
網路安全性
網路安全控制防止未經授權存取容器應用端點,並在你的應用程式與外部服務之間建立安全的通訊邊界。
在虛擬網路中部署容器應用程式:為了控制網路流量並保護後端資源的存取,請將您的容器應用程式環境與 Azure 虛擬網路整合。 虛擬網路整合讓您的應用程式能存取私有網路中的資源,同時防範基於網際網路的攻擊。 欲了解更多資訊,請參閱 虛擬網路配置。
啟用私有端點以進行入站存取:透過 Azure Private Link 將用戶端流量路由至虛擬網路,消除公共網路暴露。 私有端點提供虛擬網路的私有 IP 位址,實際上將你的容器應用程式帶入網路邊界。 欲了解更多資訊,請參閱「在 Azure 容器應用程式 環境中使用私人端點」。
配置內部環境以達到完全隔離:部署內部容器應用程式環境,限制虛擬網路內所有用戶端的入站存取。 內部環境提供與公共網際網路的完全隔離,並促進容器應用程式與其他網路資源間的安全通訊。 欲了解更多資訊,請參閱 Azure 容器應用程式 環境中的網絡 Networking。
關閉公共網路存取:設定容器應用程式環境,在使用私有端點時關閉公共網路存取,確保所有連線都透過你受控的虛擬網路環境進行。 此配置可防止未經授權的外部存取嘗試。 欲了解更多資訊,請參閱 Azure 容器應用程式 環境中虛擬網路的私有端點與 DNS。
實作 Azure 防火牆進行外站流量控制:使用帶有使用者定義路由(UDR)的 Azure 防火牆來控制並監控所有來自容器應用程式的外出流量,確保通訊只發生在核准的目的地。 欲了解更多資訊,請參閱啟用使用者定義路由(UDR)。
以限制性規則配置網路安全群組:透過實施預設拒絕政策,並針對所需通訊模式設置特定允許規則,套用網路安全群組來控制容器應用程式子網的流量流。 欲了解更多資訊,請參閱 以網路安全群組保護現有虛擬網路。
設定應用程式層級限制:設定入口設定,並加入適當的安全控制,包括客戶端憑證認證及 IP 限制,以保障容器應用程式的安全暴露。 對於不應該從網路存取的應用程式,使用內部入口。 欲了解更多資訊,請參閱 Ingress 概述。
身分識別與存取權管理
身份與存取管理控制確保只有授權使用者與應用程式能以適當的權限與認證機制存取容器應用程式資源。
啟用認證與授權:使用Microsoft Entra ID及其他身份提供者設定內建認證,以保護容器應用程式端點,超越基本存取控制。 此配置提供集中式身份管理並支援自訂授權規則。 欲了解更多資訊,請參閱Azure 容器應用程式中的
認證與授權。 使用管理身份進行服務連線:設定系統指派或使用者指派的受管理識別碼,以驗證其他 Azure 服務,且不需將憑證儲存在程式碼或設定中。 受控識別可消除認證管理額外負荷,並提供自動秘密輪替。 欲了解更多資訊,請參閱 Use managed identities in Azure 容器應用程式。
實作基於角色的存取控制(RBAC):僅為每個容器應用程式管理任務分配所需的權限。 容器應用程式專屬的內建角色可提供比廣泛的「參與者」或「擁有者」角色指派更受限的存取權限,但其中有些會使用萬用字元權限,而這類權限包含讀取祕密值的動作。 如果沒有任何內建角色提供你需要的存取邊界,可以建立一個帶有明確權限的自訂角色。 更多資訊請參閱管理秘密權限及 Azure 容器內建角色。
設定 Microsoft Entra ID 驗證:使用 Microsoft Entra ID 進行集中式身份管理,並啟用條件存取政策,根據使用者、位置及裝置狀況控制存取。 此配置提供企業級認證功能,並支援多重驗證。 更多資訊請參閱 Microsoft Entra ID 啟用 Azure 容器應用程式 中的認證與授權。
啟用憑證儲存以實現安全認證:利用內建的憑證儲存功能,安全管理認證憑證,獨立於你的應用程式代碼之外。 令牌儲存提供自動令牌更新,並透過消除自訂令牌管理程式碼來減少攻擊面。 欲了解更多資訊,請參閱 啟用認證憑證儲存。
資料保護
資料保護機制透過加密、安全儲存,以及妥善處理機密與設定資料,保護容器應用程式處理的敏感資訊。
強制所有通訊使用 HTTPS:設定 Envoy 代理將所有 HTTP 流量重新導向至 HTTPS,以確保所有資料傳輸皆使用 TLS 加密。 在入口設定中設定
allowInsecure: false以防止未加密連線。 如需詳細資訊,請參閱 在 Azure 容器應用程式 中設定 HTTPS 或 TCP 輸入。使用 Azure Key Vault 管理秘密:將連線字串、API 金鑰及其他秘密存放在 Azure Key Vault 中,取代應用程式設定。 利用金鑰庫參考在執行時擷取秘密,同時維持集中式秘密管理,並具備強化的安全與稽核能力。 如需詳細資訊,請參閱 管理 Azure 容器應用程式 中的秘密。
啟用互助傳輸層安全(mTLS):使用 mTLS 驗證並加密服務間的流量,提供雙向驗證,驗證客戶端與伺服器身份。 此功能提升了容器應用程式環境中服務對服務通訊的安全性。 欲了解更多資訊,請參閱使用互助傳輸層安全(mTLS)。
實施適當的秘密管理:使用 Container Apps 內建的秘密儲存庫,透過適當的隔離與存取控制來保存敏感值,避免直接將秘密存放在容器映像或環境變數中。 欲了解更多資訊,請參閱 管理秘密的權限。
安全的容器映像儲存:將容器映像儲存在啟用認證的 Azure 容器登錄檔中,並設定地理複製以進行災難復原。 使用私人登錄檔取代公開儲存庫來管理生產工作負載,以維持對影像存取的控制。 如需詳細資訊,請參閱 使用 Azure 容器登錄進行驗證。
記錄和監視
完整的日誌與監控提供容器應用程式運作、安全事件及效能指標的可視性,促進威脅偵測與營運監督。
啟用 Azure 監視器 Log Analytics 整合:配置 Log Analytics Workspace 整合,以收集並分析環境中所有容器應用程式的系統與應用日誌。 此配置提供集中式日誌管理,並支援安全監控與合規稽核。 欲了解更多資訊,請參閱 使用 Log Analytics 監控 Azure 容器應用中的日誌。
設定診斷設定:啟用診斷設定,將容器應用程式的日誌與指標串流至 Azure 監視器 日誌、儲存帳號或事件中心,以便集中分析與長期保存。 此配置支援安全調查與合規要求。 欲了解更多資訊,請參閱 Azure 容器應用中的可觀察性。
設定 Azure 監視器 警示:針對可疑活動設定警示,包括驗證失敗、異常流量模式、高錯誤率及資源消耗異常。 使用行動群組來實現對潛在資安事件的自動回應。 如需詳細資訊,請參閱 Azure 監視器警示。
啟用日誌串流以進行即時監控:利用日誌串流功能,從容器中查看近即時的系統與主控台日誌,以便即時排除故障與安全事件偵測。 此能力使安全事件期間能迅速回應。 欲了解更多資訊,請參閱 「串流日誌」。
實施 Application Insights 整合:配置 Application Insights 整合,擷取來自容器應用程式的詳細遙測、效能指標及自訂追蹤。 此整合提供全面的可觀察性,用於安全分析與效能優化。 如需詳細資訊,請參閱 Application Insights 概觀。
合規性和治理
合規與治理控管確保容器應用程式部署符合法規要求與組織政策,透過適當的組態管理與稽核能力。
套用 Azure 原則 定義:利用內建的 Azure 原則 定義來稽核並執行安全設定,如虛擬網路部署、認證要求及 HTTPS 強制執行。 政策有助於維持跨環境的安全一致性。 欲了解更多資訊,請參閱 Azure 原則 內建定義 Azure 容器應用。
實施資源標籤:對容器應用程式資源套用一致的資源標籤,以進行成本管理、安全監控、合規追蹤及治理。 使用標籤來識別資料分類、擁有者資訊和法規要求。 欲了解更多資訊,請參見 使用標籤整理您的 Azure 資源。
設定條件式存取原則:套用 Microsoft Entra 條件式存取 原則,要求管理 Container Apps 及其環境的身分,以及受內建驗證功能保護的終端使用者存取,必須使用多重要素驗證並搭配相容裝置。 欲了解更多資訊,請參閱「Azure 管理要求多重因素驗證」。
維護稽核追蹤與合規文件:透過診斷設定與活動日誌,確保全面記錄涵蓋所有容器應用程式的管理動作、設定變更及存取嘗試,以供法規遵循與安全調查。 如需詳細資訊,請參閱 Azure 活動記錄。
備份及復原
備份與復原策略透過適當的災難復原規劃與多區域部署策略,保護容器應用程式配置並確保業務連續性。
啟用區域冗餘以提升高可用性:在容器應用程式環境中設定區域冗餘,以自動將副本分散到區域內多個可用區域。 此配置可防止區域層級故障並提升應用程式運作時間。 欲了解更多資訊,請參閱 Azure 容器應用中的可靠性。
實施多區域部署:透過使用 Azure Front Door 或 Azure 流量管理員 部署多個 Azure 區域的容器應用程式,以在區域故障期間自動切換功能。 此策略可確保關鍵工作負載的應用程式持續可用。 欲了解更多資訊,請參閱 「區域性失敗的韌性」。
以基礎設施作為程式碼進行部署自動化:透過使用 Azure Resource Manager 範本、Bicep 或其他基礎設施作為程式碼工具,實作自動化部署流程,確保你能在事件發生後或在其他區域快速重新部署容器應用程式設定。 欲了解更多資訊,請參閱 Azure Resource Manager 與 Bicep API 規範 for Azure 容器應用程式。
配置地理冗餘容器登錄檔:啟用地理複製後使用 Azure 容器登錄檔,確保容器映像檔在多個區域都能使用,以應對災難復原情境。 此配置可防範登錄檔中斷,並支援多區域部署。 欲了解更多資訊,請參閱 Azure Container Registry 中的 Geo-replication。
測試災難復原程序:定期測試備份與復原程序,包括應用程式部署、組態還原及故障轉移流程,以驗證成效並找出災難復原規劃中的缺口。 記錄測試結果並根據所學經驗更新程序。 欲了解更多資訊,請參閱 「客製化多區域韌性解決方案」。