指定容器和容器協調流程的安全性需求
此單元摘要說明適用於 Azure Kubernetes Service 的 Azure 安全性基準 \(部分機器翻譯\)。 對於具有許多控制項的區域,我們只包含前五個提及的控制項。
如需有關 Microsoft 雲端安全性基準的更多背景資訊,請參閱 Microsoft 網路安全性參考架構和雲端安全性基準的簡介。
我們已在下表中包含完整基準的控制項,其中:
- 「支援」但預設「未」啟用的安全性控制項
- 有明確指引,其中包含客戶要採取的動作
區域 | 控制 | 指導方針摘要 |
---|---|---|
網路安全性 | 1.1:保護虛擬網路內的 Azure 資源 | 根據預設,會自動建立網路安全性群組和路由表,以及建立 Microsoft Azure Kubernetes Service (AKS) 叢集。 AKS 會在使用負載平衡器、連接埠對應或輸入路由來建立服務時,自動修改網路安全性群組以取得適當的流量流程。 |
1.2:監視和記錄虛擬網路、子網路及 NIC 的設定與流量 | 使用適用於雲端的 Microsoft Defender,並遵循其網路保護建議,來保護 Azure Kubernetes Service (AKS) 叢集所使用的網路資源。 | |
1.3:保護重要的 Web 應用程式 | 在 AKS 叢集前面使用已啟用 Azure 應用程式閘道的 Web 應用程式防火牆 (WAF),透過篩選連入至 Web 應用程式的流量來提供額外的安全性層。 Azure WAF 會使用 Open Web Application Security Project (OWASP) 所提供的一組規則來抵禦對此流量的攻擊,例如,跨網站指令碼或 Cookie 中毒。 | |
1.4:拒絕與已知惡意 IP 位址的通訊 | 在虛擬網路上啟用 Microsoft 分散式拒絕服務 (DDoS) 標準保護,其中會部署 Azure Kubernetes Service (AKS) 元件來抵禦 DDoS 攻擊。 | |
1.5:記錄網路封包 | 視需要使用網路監看員封包擷取來調查異常活動。 | |
記錄和監視 | 2.1:使用核准的時間同步來源 | Azure Kubernetes Service (AKS) 節點會使用 ntp.ubuntu.com,以及 UDP 連接埠 123 和網路時間通訊協定 (NTP),進行時間同步處理。 |
2.2:設定中央安全性記錄管理 | 從 Azure Kubernetes Service (AKS) 主要元件 (kube-apiserver 和 kube-controller-manager) 啟用稽核記錄,這些元件會以受管理的服務的形式來提供。 | |
2.3:啟用 Azure 資源的稽核記錄 | 使用活動記錄來監視 Azure Kubernetes Service (AKS) 資源上的動作,以檢視所有活動及其狀態。 | |
2.4:從作業系統收集安全性記錄檔 | 啟用 Log Analytics 代理程式的自動安裝,以從 AKS 叢集節點收集資料。 此外,從適用於雲端的 Microsoft Defender 開啟 Azure Log Analytics 監視代理程式的自動佈建,預設會關閉自動佈建。 | |
2.5:設定安全性記錄檔儲存體保留期 | 將 Azure Kubernetes Service (AKS) 執行個體上線到 Azure 監視器,並根據組織的合規性需求來設定對應的 Azure Log Analytics 工作區保留期間。 | |
身分識別與存取控制 | 3.1:維護系統管理帳戶的清查 | Azure Kubernetes Service (AKS) 本身不提供用於儲存一般使用者帳戶和密碼的身分識別管理解決方案。 透過與 Microsot Entra 叢集,您可以允許使用者或群組存取命名空間內或叢集上的 Kubernetes 資源。 |
3.2:變更預設密碼 (如果適用的話) | Azure Kubernetes Service (AKS) 沒有常見預設密碼的概念,也不會提供可儲存一般使用者帳戶和密碼的身分識別管理解決方案。 透過 Microsoft Entra 整合,您可以授與在命名空間中或跨叢集對 AKS 資源進行角色型存取的權限。 | |
3.3:使用專用的系統管理帳戶 | 將適用於 Azure Kubernetes Service (AKS) 叢集的使用者驗證與 Microsoft Entra ID 整合。 使用 Microsoft Entra 驗證權杖來登入 AKS 叢集。 | |
3.4:搭配 Microsoft Entra ID 使用單一登入 (SSO) | 針對 Azure Kubernetes Service (AKS) 使用單一登入,並針對 AKS 叢集進行 Microsoft Entra 整合式驗證。 | |
3.5:針對所有 Microsoft Entra ID 型存取使用多重要素驗證 | 將適用於 Azure Kubernetes Service (AKS) 的驗證與 Microsoft Entra ID 整合。 | |
資料保護 | 4.1:維護敏感性資訊的清查 | 指引:針對與 Azure Kubernetes Service (AKS) 部署相關的資源使用標籤,以協助追蹤儲存或處理敏感性資訊的 Azure 資源。 |
4.2:將儲存或處理敏感性資訊的系統隔離 | 使用 Azure Kubernetes Service (AKS),以邏輯方式隔離相同叢集中的小組和工作負載,因而可提供最少的權限數目,並將範圍限制為每個小組所需的資源。 | |
4.3:監視並封鎖未獲授權的敏感性資訊傳輸 | 在網路周邊使用來自 Azure Marketplace 的協力廠商解決方案,來監視未獲授權的敏感性資訊傳輸,並在警示資訊安全專業人員時封鎖此類傳輸。 | |
4.4:加密傳輸中的所有敏感性資訊 | 建立 HTTPS 輸入控制器,並使用您自己的 TLS 憑證 (或是選擇使用 Let's Encrypt) 來進行 Azure Kubernetes Service (AKS) 部署。 | |
4.5:使用主動探索工具來識別敏感性資料 | 目前還無法針對 Azure 儲存體或計算資源使用資料識別、分類及外洩防護功能。 基於合規性目的,視需要實作協力廠商解決方案。 Microsoft 會管理底層平台,並將所有客戶內容視為敏感性內容,盡力防範客戶資料遺失和曝光。 | |
弱點管理 | 5.1:執行自動化弱點掃描工具 | 使用適用於雲端的 Microsoft Defender 來監視您的 Azure Container Registry,包括 Azure Kubernetes Service (AKS) 執行個體是否有弱點。 在適用於雲端的 Microsoft Defender 中啟用容器登錄套件組合,以確保適用於雲端的 Microsoft Defender 已準備好掃描要推送至登錄的映像。 |
5.2:部署自動化作業系統修補管理解決方案 | 安全性更新會自動套用至 Linux 節點,以保護客戶的 Azure Kubernetes Service (AKS) 叢集。 這些更新包括 OS 安全性修正程式或核心更新。 請注意,讓 Windows Server 節點保持最新狀態的流程與執行 Linux 的節點不同,因為 Windows Server 節點不會收到每日更新。 | |
5.3:針對協力廠商軟體標題部署自動化修補管理解決方案 | 實作手動流程,以確保 Azure Kubernetes Service (AKS) 叢集節點的協力廠商應用程式會在叢集存留期間持續修補。 這可能需要啟用自動更新、監視節點,或定期執行重新開機。 | |
5.4:比較背對背弱點掃描 | 以一致的間隔匯出適用於雲端的 Microsoft Defender 掃描結果,並比較結果以確認已補救弱點。 | |
5.5:使用風險評等流程來設定所探索到弱點的補救優先順序 | 使用適用於雲端的 Microsoft Defender 所提供的嚴重性評分來排定弱點補救的優先順序。 | |
庫存和資產管理 | 6.1:使用自動化資產探索解決方案 | 使用 Azure Resource Graph 來查詢/探索您訂用帳戶內的所有資源 (例如計算、儲存體、網路等)。 確保您在租用戶中具有適當的 (讀取) 權限,而且能夠列舉所有 Azure 訂用帳戶,以及您訂用帳戶內的資源。 |
6.2:維護資產中繼資料 | 將標籤套用至具有中繼資料的 Azure 資源,以邏輯方式將其組織成分類法。 | |
6.3:刪除未獲授權的 Azure 資源 | 在適當的情況下,使用標籤、管理群組和個別訂用帳戶來組織及追蹤資產。 | |
6.4:定義和維護已核准 Azure 資源的清查 | 根據組織商務需求,定義已核准的 Azure 資源清單和已針對計算資源核准的軟體。 | |
6.5:監視未核准的 Azure 資源 | 使用下列內建原則定義,使用 Azure 原則,對可在客戶訂用帳戶中建立的資源類型施加限制:不允許的資源類型、允許的資源類型 | |
安全設定 | 7.1:為所有 Azure 資源建立安全設定 | 使用 "Microsoft.ContainerService" 命名空間中的 Azure 原則別名來建立自訂原則,以稽核或強制執行 Azure Kubernetes Service (AKS) 執行個體的設定。 使用內建的 Azure 原則定義。 |
7.2:建立安全的作業系統設定 | Azure Kubernetes 叢集 (AKS) 會部署於已將安全性最佳化之 OS 的主機虛擬機器上。 主機 OS 已併入額外的安全性強化步驟,因而可減少受攻擊的介面區,並允許以安全方式部署容器。 | |
7.3:維護安全的 Azure 資源設定 | 使用 Pod 安全性原則來保護 Azure Kubernetes Service (AKS) 叢集。 限制可排程的 Pod,以提升叢集的安全性。 | |
7.4:維護安全的作業系統設定 | Azure Kubernetes Service (AKS) 叢集會部署於已將安全性最佳化之 OS 的主機虛擬機器上。 主機 OS 已併入額外的安全性強化步驟,因而可減少受攻擊的介面區,並允許以安全方式部署容器。 | |
7.5:安全地儲存 Azure 資源的設定 | 如果使用自訂 Azure 原則定義,請使用 Azure Repos 安全地儲存和管理您的設定。 使用 Azure Resource Manager,以 JavaScript 物件標記法 (JSON) 匯出您的 Azure Kubernetes Service (AKS) 設定範本。 | |
惡意程式碼防禦 | 8.1:使用集中管理的反惡意程式碼軟體 | AKS 會代表您管理代理程式節點的生命週期和作業,不支援修改與代理程式節點相關聯的 IaaS 資源。 不過,針對 Linux 節點,您可以使用精靈集來安裝自訂軟體,例如,反惡意程式碼解決方案。 |
8.2:要上傳至非計算 Azure 資源的預先掃描檔案 | 預先掃描所有要上傳至 AKS 資源的檔案。 如果使用 Azure 儲存體帳戶作為資料存放區,或追蹤 AKS 叢集的 Terraform 狀態,請針對資料服務使用適用於雲端的 Microsoft Defender 威脅偵測,來偵測已上傳至儲存體帳戶的惡意程式碼。 | |
8.3:確保反惡意程式碼軟體和簽章均已更新 | AKS 會代表您管理代理程式節點的生命週期和作業,不支援修改與代理程式節點相關聯的 IaaS 資源。 不過,針對 Linux 節點,您可以使用精靈集來安裝自訂軟體,例如,反惡意程式碼解決方案。 | |
資料復原 | 9.1:確保定期自動備份 | 針對您的儲存體類型 (例如 Velero),使用適當的工具來備份資料,其可備份永續性磁碟區,以及額外的叢集資源和設定。 定期驗證那些備份的完整性及安全性。 |
9.2:執行完整的系統備份,並備份所有客戶自控金鑰 | 針對您的儲存體類型 (例如 Velero),使用適當的工具來備份資料,其可備份永續性磁碟區,以及額外的叢集資源和設定。 | |
9.3:驗證所有備份,包括客戶自控金鑰 | 定期對 Velero 備份中的內容執行資料還原。 如有必要,請測試還原至隔離的虛擬網路。 | |
9.4:確保備份和客戶自控金鑰會受到保護 | 針對您的儲存體類型 (例如 Velero),使用適當的工具來備份資料,其可備份永續性磁碟區,以及額外的叢集資源和設定。 | |
事件回覆 | 10.1:建立事件回應指南 | 為組織製作事件回應指南。 確定有書面事件回應方案,其中會定義人員的所有角色,以及從偵測到事件後檢閱的事件處理/管理階段。 |
10.2:建立事件評分和優先處理程序 | 使用適用於雲端的 Microsoft Defender 為警示指派嚴重性時,請先排定必須調查哪些警示的優先順序。 嚴重性的依據是適用於雲端的 Microsoft Defender 對於據以發出警示的發現結果或分析結果有多少信心,以及認定導致警示的活動背後存在惡意意圖的把握程度。 | |
10.3:測試安全性回應程序 | 定期進行練習,以測試系統的事件回應功能。 識別弱點和差距,並視需要修訂事件回應方案。 | |
10.4:提供安全性事件連絡人詳細資料,並設定安全性事件的警示通知 | 如果 Microsoft 安全回應中心 (MSRC) 發現客戶的資料遭到非法或未經授權的對象存取,Microsoft 將使用安全性事件連絡人資訊來連絡您。 | |
10.5:將安全性警示併入事件回應系統中 | 使用適用於雲端的 Microsoft Defender 的連續匯出功能來匯出警示和建議。 連續匯出可讓您手動匯出警示和建議,或以持續的連續方式匯出。 | |
滲透測試和紅隊練習 | 11.1:進行 Azure 資源的定期滲透測試,並確保會補救所有重大安全性發現 | 遵循 Microsoft 運作規則,以確保滲透測試不會違反 Microsoft 原則。 |