本頁為Azure 原則內建政策定義的索引,適用於Azure Kubernetes Service。 如需其他服務的更多Azure 原則內建功能,請參見 Azure 原則內建定義。
每個內建政策定義的名稱會連結到 Azure 入口網站中的政策定義。 請使用Version欄位中的連結,查看Azure 原則 GitHub repo的原始碼。
方案
| 名稱 | 描述 | 原則 | 版本 |
|---|---|---|---|
| [預覽]:使用映像完整性確保只部署受信任的影像 | 使用映像完整性(Image Integrity)確保 AKS 叢集只部署受信任的映像,方法是啟用 Image Integrity 與 AKS 叢集的Azure 原則 Add-Ons。 影像完整性 Add-On 與Azure 原則 Add-On都是使用映像完整性驗證部署時映像是否已簽署的前提條件。 如需詳細資訊,請造訪 https://aka.ms/aks/image-integrity。 | 3 | 1.1.0-preview |
| 此方案包含適用於因特網安全性中心 (CIS) Kubernetes 基準的安全性建議原則,您可以使用此方案來符合 CIS Kubernetes 基準檢驗標準。 如需 CIS 合規性的詳細資訊,請造訪: https://aka.ms/aks/cis-kubernetes | 7 | 1.0.0-preview | |
| 部署防護措施應協助開發者遵循 AKS 推薦的最佳實務 | 這是一系列由 Azure Kubernetes Service (AKS) 推薦的 Kubernetes 最佳實務集合。 為了獲得最佳體驗,請使用部署保全措施來指派此原則方案:https://aka.ms/aks/deployment-safeguards。 Azure 原則 Add-On AKS 是將這些最佳實務應用於叢集的前提。 關於啟用 Azure 原則 附加元件的說明,請前往 aka.ms/akspolicydoc | 二十七 | 3.0.0 |
| Kubernetes 叢集 Pod 基於 Linux 工作負載的安全基線標準 | 此計畫包含 Kubernetes 叢集 Pod 安全性基準標準的原則。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需使用此原則的指示,請造訪 https://aka.ms/kubepolicydoc。 | 5 | 1.4.0 |
| Kubernetes 叢集 Pod 對 Linux 工作負載的安全限制標準 | 此計畫包含 Kubernetes 叢集 Pod 安全性受限標準的原則。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需使用此原則的指示,請造訪 https://aka.ms/kubepolicydoc。 | 8 | 2.5.0 |
原則定義
Microsoft。貨櫃服務
| 名稱 (Azure portal) |
描述 | 效果 | 版本 (GitHub) |
|---|---|---|---|
| [預覽]:[映像完整性] Kubernetes 叢集應該只使用以標記法簽署的映像 | 使用以標記法簽署的映像,以確保映像來自受信任的來源,且不會遭到惡意修改。 如需詳細資訊,請造訪 https://aka.ms/aks/image-integrity | 稽核、已停用 | 1.1.0-preview |
| [預覽]:Azure 備份擴充功能應安裝於 AKS 叢集 | 確保在你的 AKS 叢集中安裝備份擴充功能以利用 Azure 備份。 Azure 備份 for AKS 是一個安全且雲端原生的資料保護解決方案,適用於 AKS 叢集 | AuditIfNotExists,已停用 | 1.0.0-preview |
| [預覽]:Azure 備份 應啟用於 AKS 叢集 | 啟用 Azure 備份 來確保 AKS 叢集的保護。 Azure 備份 for AKS 是一個安全且雲端原生的資料保護解決方案,適用於 AKS 叢集。 | AuditIfNotExists,已停用 | 1.0.0-preview |
| [預覽]:Azure Kubernetes Service 管理叢集應該是區域冗餘 | Azure Kubernetes Service Managed Clusters 可以設定為區域冗餘或非。 此原則會檢查叢集中的節點集區,並確保已為所有節點集區設定可用性區域。 | 稽核、拒絕、停用 | 1.0.0-preview |
| 同時部署映像完整性與政策 Add-Ons Azure Kubernetes 叢集。 如需詳細資訊,請造訪 https://aka.ms/aks/image-integrity | DeployIfNotExists,已停用 | 1.2.0-preview | |
| [預覽]:在 AKS 叢集(管理叢集)中安裝 Azure 備份 擴充功能,並使用指定標籤. | 安裝 Azure 備份 擴充功能是保護 AKS 叢集的前提條件。 在包含指定標籤的所有 AKS 叢集上強制執行安裝備份延伸模組。 這樣做可協助您大規模管理 AKS 叢集的備份。 | AuditIfNotExists、DeployIfNotExists、Disabled | 1.0.0-preview |
| [預覽]:在 AKS 叢集(管理叢集)安裝 Azure 備份 擴充功能,但未設定指定標籤。 | 安裝 Azure 備份 擴充功能是保護 AKS 叢集的前提條件。 在沒有特定標籤值的所有 AKS 叢集上強制執行安裝備份延伸模組。 這樣做可協助您大規模管理 AKS 叢集的備份。 | AuditIfNotExists、DeployIfNotExists、Disabled | 1.0.0-preview |
| [預覽]:Kubernetes 叢集容器應該只使用允許的 sysctl 介面 | 容器應該只使用 Kubernetes 叢集中允許的 sysctl 介面。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、拒絕、停用 | 1.0.0-preview |
| [預覽]:Kubernetes 叢集應該實作精確的 Pod 中斷預算 | 防止錯誤的 Pod 中斷預算,確保最少的作業 Pod 數目。 如需詳細資訊,請參閱官方 Kubernetes 文件。 依賴 Gatekeeper 資料複寫,並將所有範圍限定為該範圍的 Deployment、StatefulSet 和 PodDisruptionBudget 資源同步到 OPA 中。 套用此原則之前,請確定同步處理的資源不會對記憶體容量造成壓力。 跨命名空間的所有這些類型的資源都會同步。附註:目前為 Kubernetes 服務 (AKS) 的預覽版。 | 稽核、拒絕、停用 | 1.3.1-preview |
| [預覽]:Kube 叢集應限制指定資源類型的建立 | 指定的 Kube 資源類型不應部署在特定命名空間中。 | 稽核、拒絕、停用 | 2.3.0-preview |
| [預覽]:將 runAsNotRoot 設定為 true,防止容器以 root 身分執行。 | 將 runAsNotRoot 設定為 true 可藉由防止容器以 root 身分執行來提高安全性。 | Mutate、Disabled | 1.1.0-preview |
| [預覽]:將 runAsNotRoot 設定為 true,防止 Init 容器以 root 身分執行。 | 將 runAsNotRoot 設定為 true 可藉由防止容器以 root 身分執行來提高安全性。 | Mutate、Disabled | 1.1.0-preview |
| [預覽]:將 Kubernetes 叢集容器 securityContext.runAsUser 欄位設定為 1000,非根使用者識別碼 | 減少因存在安全性弱點而提升根使用者的權限所帶來的攻擊面。 | Mutate、Disabled | 1.1.0-preview |
| [預覽]:如果不存在,將 Kubernetes 叢集容器的安全運算模式設定檔類型設定為 RuntimeDefault。 | 設定容器的安全運算模式設定檔類型,以防止未經授權的及潛在的有害系統從使用者空間呼叫核心。 | Mutate、Disabled | 1.2.0-preview |
| [預覽]:將 Kubernetes 叢集 init 容器 securityContext.runAsUser 欄位設定為 1000,非根使用者識別碼 | 減少因存在安全性弱點而提升根使用者的權限所帶來的攻擊面。 | Mutate、Disabled | 1.1.0-preview |
| [預覽]:如果不存在,將 Kubernetes 叢集 init 容器的安全運算模式設定檔類型設定為 RuntimeDefault。 | 設定 init 容器的安全運算模式設定檔類型,以防止未經授權的及潛在的有害系統從使用者空間呼叫核心。 | Mutate、Disabled | 1.2.0-preview |
| [預覽]:將 Kubernetes 叢集 Pod securityContext.runAsUser 欄位設定為 1000,非根使用者識別碼 | 減少因存在安全性弱點而提升根使用者的權限所帶來的攻擊面。 | Mutate、Disabled | 1.1.0-preview |
| [預覽]:將 init 容器中 Pod 規格中的權限提升設定為 false。 | 藉由防止容器允許權限提升,例如透過 set-user-ID 或 set-group-ID 檔案模式,在 init 容器中將權限提升設定為 false,會增加安全性。 | Mutate、Disabled | 1.2.0-preview |
| [預覽]:將 Pod 規格中的權限提升設定為 false。 | 藉由防止容器允許權限提升,例如透過 set-user-ID 或 set-group-ID 檔案模式,將權限提升設定為 false,會增加安全性。 | Mutate、Disabled | 1.2.0-preview |
| [預覽]:將 UnhealthyPodEvictionPolicy 設定為 'AlwaysAllow' | 將 Pod 中斷預算的 UnhealthyPodEvictionPolicy 設定為 'AlwaysAllow',以允許在執行叢集管理時收回狀況不良的 Pod | Mutate、Disabled | 1.1.0-preview |
| Kubernetes Services 上應定義授權 IP 範圍 | 僅將 API 存取權授與特定範圍內的 IP 位址,以限制對 Kubernetes Service 管理 API 的存取。 建議僅限存取授權 IP 範圍,以確保只有來自允許網路的應用程式可以存取叢集。 | 稽核、已停用 | 2.0.1 |
| Azure Kubernetes 叢集應該會停用 SSH | 停用 SSH 可讓您保護叢集並減少受攻擊面。 若要深入了解,請造訪:aka.ms/aks/disablessh | 稽核、已停用 | 1.0.0 |
| Azure Kubernetes 叢集應該啟用容器儲存介面(CSI) | 容器儲存介面(CSI)是一種標準,用於在 Azure Kubernetes Service 上將任意區塊與檔案儲存系統暴露給容器化工作負載。 若要深入了解,https://aka.ms/aks-csi-driver | 稽核、已停用 | 1.0.0 |
| Azure Kubernetes 叢集應該啟用金鑰管理服務(KMS) | 利用金鑰管理服務 (KMS) 來加密 etcd 的待用資料,以確保 Kubernetes 叢集安全性。 深入了解:https://aka.ms/aks/kmsetcdencryption。 | 稽核、已停用 | 1.1.0 |
| Azure Kubernetes 叢集應該使用 Azure CNI | Azure CNI 是某些 Azure Kubernetes Service 功能的前提,包括 Azure 網路政策、Windows 節點池和虛擬節點附加元件。 深入了解:https://aka.ms/aks-azure-cni | 稽核、已停用 | 1.0.1 |
| 偵測並回報任何非 Azure Kubernetes Fleet Manager 成員的 AKS 叢集。 如要深入了解,請造訪 https://aka.ms/kubernetes-fleet/policy | AuditIfNotExists,已停用 | 1.0.0 | |
| Azure Kubernetes Service叢集應該會停用指令呼叫 | 停用命令叫用可避免略過受限制的網路存取或 Kubernetes 角色型存取控制,進而增強安全性 | 稽核、已停用 | 1.0.1 |
| Azure Kubernetes Service叢集應該啟用叢集自動升級 | AKS 叢集自動升級可確保叢集是最新的,且不會錯過來自 AKS 和上游 Kubernetes 的最新功能或修補程式。 深入了解:https://learn.microsoft.com/en-us/azure/aks/auto-upgrade-cluster。 | 稽核、已停用 | 1.0.0 |
| Azure Kubernetes Service叢集應該啟用影像清理器 | Image Cleaner 會執行自動易受攻擊、未使用映像識別和移除,以降低過時映像的風險,並減少清除映像所需的時間。 深入了解:https://aka.ms/aks/image-cleaner。 | 稽核、已停用 | 1.0.0 |
| Azure Kubernetes Service叢集應該能啟用Microsoft Entra ID整合 | AKS 管理的 Microsoft Entra ID 整合可透過設定 Kubernetes 基於角色的存取控制(Kubernetes RBAC),根據使用者身份或目錄群組成員資格來管理叢集的存取。 深入了解:https://aka.ms/aks-managed-aad。 | 稽核、已停用 | 1.0.2 |
| Azure Kubernetes Service叢集應該啟用節點作業系統自動升級 | AKS 節點 OS 自動升級會控制節點層級 OS 安全性更新。 深入了解:https://learn.microsoft.com/en-us/azure/aks/auto-upgrade-node-image。 | 稽核、已停用 | 1.0.0 |
| Azure Kubernetes Service叢集應啟用工作負載識別 | 工作負載身份允許為每個 Kubernetes Pod 指派唯一身份,並將其與 Azure AD 保護的資源(如 Azure Key Vault)關聯,從而從 Pod 內部安全存取這些資源。 深入了解:https://aka.ms/aks/wi。 | 稽核、已停用 | 1.0.0 |
| Azure Kubernetes Service叢集應該啟用Defender設定檔 | Microsoft Defender for Containers 提供雲端原生的 Kubernetes 安全能力,包括環境強化、工作負載保護及執行時保護。 當你在 Azure Kubernetes Service 叢集啟用 SecurityProfile.AzureDefender 時,會部署一個代理程式到叢集來收集安全事件資料。 了解更多關於https://docs.microsoft.com/azure/defender-for-cloud/defender-for-containers-introduction?tabs=defender-for-container-arch-aks 容器的 Microsoft Defender | 稽核、已停用 | 2.0.1 |
| Azure Kubernetes Service 叢集應該要關閉本地認證方法 | 關閉本地認證方法可提升安全性,確保 Azure Kubernetes Service 叢集應專門要求 Azure Active Directory 身份來進行認證。 深入了解:https://aka.ms/aks-disable-local-accounts。 | 稽核、拒絕、停用 | 1.0.1 |
| Azure Kubernetes Service 叢集應該使用受管理身份 | 使用受控識別來包裝服務主體、簡化叢集管理,並避免受管理的服務主體所需的複雜性。 深入了解:https://aka.ms/aks-update-managed-identities | 稽核、已停用 | 1.0.1 |
| Azure Kubernetes Service 私有叢集應該啟用 | 啟用 Azure Kubernetes Service 叢集的私有叢集功能,確保 API 伺服器與節點池之間的網路流量僅在私人網路上。 這是許多法規和業界合規性標準的常見需求。 | 稽核、拒絕、停用 | 1.0.1 |
| Azure 原則 Kubernetes 服務外掛(AKS)應該安裝並啟用於你的叢集 | Azure 原則 Add-on for Kubernetes 服務(AKS)擴充了 Gatekeeper v3,一個用於開放政策代理(OPA)的准入控制器 webhook,能以集中且一致的方式對你的叢集施加大規模強制與防護措施。 | 稽核、已停用 | 1.0.2 |
| Azure執行容器映像檔時,漏洞應該已解決(由 Microsoft Defender 弱點管理 驅動) | 容器映像弱點評量會掃描登錄中的常見已知弱點 (CVE),並提供每個映像的詳細弱點報告。 此建議可讓您看見目前在 Kubernetes 叢集中執行的易受攻擊映像。 補救目前正在執行的容器映像中的弱點是改善安全性態勢的關鍵,可大幅降低容器化工作負載的受攻擊面。 | AuditIfNotExists,已停用 | 1.0.1 |
| 使用客戶自控金鑰加密 OS 和資料磁碟,可在金鑰管理方面提供更大的控制能力和彈性。 這是許多法規和業界合規性標準的常見需求。 | 稽核、拒絕、停用 | 1.0.1 | |
| 無法編輯個別節點 | 無法編輯個別節點。 使用者不應該編輯個別節點。 請編輯節點集區。 修改個別節點可能會導致設定不一致、操作挑戰和潛在的安全性風險。 | 稽核、拒絕、停用 | 1.3.1 |
| 配置 AKS 叢集自動加入指定的 Azure Kubernetes Fleet Manager | 偵測並確保 AKS 叢集加入特定的 Azure Kubernetes Fleet Manager。 您可以選擇性地選取查閱標籤,以指定要加入的車隊更新群組。 如要深入了解,請造訪 https://aka.ms/kubernetes-fleet/policy | DeployIfNotExists,已停用 | 1.0.0 |
| 配置Azure Kubernetes Service叢集以啟用Defender設定檔 | Microsoft Defender for Containers 提供雲端原生的 Kubernetes 安全能力,包括環境強化、工作負載保護及執行時保護。 當你啟用安全設定檔時,Defender在您的Azure Kubernetes Service叢集上,會部署代理程式以收集安全事件資料。 了解更多關於容器Microsoft Defender:https://docs.microsoft.com/azure/defender-for-cloud/defender-for-containers-introduction?tabs=defender-for-container-arch-aks。 | DeployIfNotExists,已停用 | 4.3.0 |
| 設定 Kubernetes 叢集上的 Flux 延伸模組安裝 | 在 Kubernetes 叢集安裝 Flux 延伸模組,以在叢集中啟用 'fluxconfigurations' 部署 | DeployIfNotExists,已停用 | 1.0.0 |
| 使用 KeyVault 中的貯體來源和祕密,以 Flux v2 設定來設定 Kubernetes 叢集 | 將 'fluxConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的貯體取得其真實來源。 此定義需要儲存在 金鑰保存庫 中的桶秘密金鑰。 如需指示,請瀏覽 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists,已停用 | 1.1.0 |
| 使用 Git 存放庫和 HTTPS CA 憑證,以 Flux v2 設定來設定 Kubernetes 叢集 | 將 'fluxConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的 Git 存放庫取得其真實來源。 此定義需要 HTTPS CA 憑證。 如需指示,請瀏覽 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists,已停用 | 1.1.0 |
| 使用 Git 存放庫和 HTTPS 祕密,以 Flux v2 設定來設定 Kubernetes 叢集 | 將 'fluxConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的 Git 存放庫取得其真實來源。 此定義需要將 HTTPS 金鑰秘密存於 金鑰保存庫 中。 如需指示,請瀏覽 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists,已停用 | 1.1.0 |
| 使用 Git 存放庫和本機祕密,以 Flux v2 設定來設定 Kubernetes 叢集 | 將 'fluxConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的 Git 存放庫取得其真實來源。 此定義需要 Kubernetes 叢集中儲存的本機驗證祕密。 如需指示,請瀏覽 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists,已停用 | 1.1.0 |
| 使用 Git 存放庫和 SSH 祕密,以 Flux v2 設定來設定 Kubernetes 叢集 | 將 'fluxConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的 Git 存放庫取得其真實來源。 此定義需要將 SSH 私鑰秘密儲存在 金鑰保存庫 中。 如需指示,請瀏覽 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists,已停用 | 1.1.0 |
| 使用公用 Git 存放庫,以 Flux v2 設定來設定 Kubernetes 叢集 | 將 'fluxConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的 Git 存放庫取得其真實來源。 此定義不需要任何祕密。 如需指示,請瀏覽 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists,已停用 | 1.1.0 |
| 使用本機祕密,以指定的 Flux v2 Bucket 來源來設定 Kubernetes 叢集 | 將 'fluxConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的貯體取得其真實來源。 此定義需要 Kubernetes 叢集中儲存的本機驗證祕密。 如需指示,請瀏覽 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists,已停用 | 1.1.0 |
| 使用採用 HTTPS 祕密的指定 GitOps 設定,設定 Kubernetes 叢集 | 將 'sourceControlConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的 Git 存放庫取得其真實來源。 此定義要求 HTTPS 使用者與金鑰秘密存放於 金鑰保存庫。 如需指示,請瀏覽 https://aka.ms/K8sGitOpsPolicy。 | auditIfNotExists、AuditIfNotExists、deployIfNotExists、DeployIfNotExists、disabled、Disabled | 1.1.0 |
| 使用未使用祕密的指定 GitOps 設定,設定 Kubernetes 叢集 | 將 'sourceControlConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的 Git 存放庫取得其真實來源。 此定義不需要任何祕密。 如需指示,請瀏覽 https://aka.ms/K8sGitOpsPolicy。 | auditIfNotExists、AuditIfNotExists、deployIfNotExists、DeployIfNotExists、disabled、Disabled | 1.1.0 |
| 使用採用 SSH 祕密的指定 GitOps 設定,設定 Kubernetes 叢集 | 將 'sourceControlConfiguration' 部署到 Kubernetes 叢集,確保叢集會對於工作負載和設定從定義的 Git 存放庫取得其真實來源。 此定義要求 金鑰保存庫 中有一個 SSH 私鑰秘密。 如需指示,請瀏覽 https://aka.ms/K8sGitOpsPolicy。 | auditIfNotExists、AuditIfNotExists、deployIfNotExists、DeployIfNotExists、disabled、Disabled | 1.1.0 |
| 配置Microsoft Entra ID整合的Azure Kubernetes Service叢集,並具備必要的管理員群組存取權 | 透過集中管理管理員對整合 Microsoft Entra ID AKS 叢集的存取,確保提升叢集安全性。 | DeployIfNotExists,已停用 | 2.1.0 |
| 使用 Node OS 自動升級來控制 Azure Kubernetes Service (AKS) 叢集的節點層級作業系統安全更新。 如需詳細資訊,請造訪 https://learn.microsoft.com/en-us/azure/aks/auto-upgrade-node-image。 | DeployIfNotExists,已停用 | 1.2.0 | |
| 部署 Azure Kubernetes Service 的診斷設定,將資源日誌串流至 Log Analytics 工作空間。 | DeployIfNotExists,已停用 | 3.0.0 | |
| 部署Azure 原則外掛到Azure Kubernetes Service叢集 | 使用 Azure 原則 Add-on 來管理並報告您的 Azure Kubernetes Service (AKS) 叢集的合規狀態。 如需詳細資訊,請參閱https://aka.ms/akspolicydoc。 | DeployIfNotExists,已停用 | 4.2.0 |
| 在 Azure Kubernetes 叢集部署 Image Cleaner。 如需詳細資訊,請造訪 https://aka.ms/aks/image-cleaner | DeployIfNotExists,已停用 | 1.2.0 | |
| 部署計畫維護以排程並控制您的Azure Kubernetes Service (AKS)叢集升級 | 計劃性維護可讓您排程每週維護時段來執行更新,並將工作負載影響降到最低。 排程之後,只會在您選取的時段進行升級。 深入了解:https://aka.ms/aks/planned-maintenance | DeployIfNotExists、AuditIfNotExists、Disabled | 1.1.0 |
| 停用命令叫用可拒絕對叢集的叫用命令存取,從而增強安全性 | DeployIfNotExists,已停用 | 1.2.0 | |
| 請確認叢集容器已設定整備或活躍度探查 | 此原則會強制所有 Pod 都已設定整備度探查和/或活躍度探查。 探查類型可以是任何 tcpSocket、HTTPGet 和 exec 任一個。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需使用此原則的指示,請造訪 https://aka.ms/kubepolicydoc。 | 稽核、拒絕、停用 | 3.3.0 |
| Kubernetes 叢集容器映像必須包含 preStop 掛勾 | 需要容器映像包含 preStop 勾點,以在 Pod 關機期間正常終止程序。 | 稽核、拒絕、停用 | 1.1.1 |
| Kubernetes 叢集容器映像不應包含最新的映像標籤 | 需要容器映像在 Kubernetes 中不使用最新的標籤,最佳做法是確保重現性、防止非預期的更新,以及使用明確和已設定版本的容器映像,更輕鬆地偵錯和復原。 | 稽核、拒絕、停用 | 2.0.1 |
| 容器 CPU 及記憶體資源限制不應超過 Kubernetes 叢集內指定的限制 | 強制執行容器 CPU 和記憶體資源限制,以防止 Kubernetes 叢集內的資源耗盡攻擊。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 9.3.0 |
| 必須定義 Kubernetes 叢集容器 CPU 和記憶體資源要求 | 強制執行容器 CPU 和記憶體資源要求,以確保排程節點具有必要的資源。 | 稽核、拒絕、停用 | 1.0.0-preview |
| Kubernetes 叢集容器不應共用主機命名空間 | 封鎖 Pod 容器共用 Kubernetes 叢集中的主機程序識別碼命名空間、主機 IPC 命名空間和主機網路命名空間。 此建議符合主機命名空間的 Kubernetes Pod 安全標準,並且是 CIS 5.2.1、5.2.2 和 5.2.3 的一部分,旨在提高 Kubernetes 環境的安全性。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、拒絕、停用 | 6.0.0 |
| Kubernetes 叢集中的容器不得使用禁止的 sysctl 介面 | 容器不應在 Kubernetes 叢集中使用禁止的 sysctl 介面。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 7.2.0 |
| Kubernetes 叢集容器應該只有在存在映像提取密碼時才提取映像 | 限制容器的映像提取,以強制 ImagePullSecrets 存在,確保 Kubernetes 叢集內映像的安全和授權存取 | 稽核、拒絕、停用 | 1.3.1 |
| Kubernetes 叢集中的容器只能使用允許的 AppArmor 設定檔 | Kubernetes 叢集內的容器應該只使用允許的 AppArmor 設定檔。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 6.2.1 |
| Kubernetes 叢集中的容器只能使用允許的功能 | 限制功能以減少 Kubernetes 叢集內容器的受攻擊面。 這項建議是 CIS 5.2.8 和 CIS 5.2.9 的一部分,旨在改善 Kubernetes 環境的安全性。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 6.2.0 |
| Kubernetes 叢集容器應該只使用允許的映像檔 | 使用來自受信任登錄的映像,以減少 Kubernetes 叢集暴露在未知弱點、安全性問題和惡意映像的風險。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 9.3.0 |
| Kubernetes 叢集中的容器只能使用允許的 ProcMountType | Pod 容器只能在 Kubernetes 叢集中使用允許的 ProcMountTypes。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 8.2.0 |
| Kubernetes 叢集容器應只使用允許的提取原則 | 限制容器的提取原則略,以強制容器在部署上只使用允許的映像 | 稽核、拒絕、停用 | 3.2.0 |
| Kubernetes 叢集中的容器只能使用允許的 seccomp 設定檔 | Pod 容器只會在 Kubernetes 叢集中使用允許的 seccomp 設定檔。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 7.2.0 |
| Kubernetes 叢集中的容器應使用唯讀的根檔案系統執行 | 使用唯讀根檔案系統執行容器,以防止在執行階段發生變更,讓惡意二進位檔新增至 Kubernetes 叢集的 PATH 中。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 6.3.0 |
| Kubernetes 叢集中的 Pod FlexVolume 磁碟區只能使用允許的驅動程式 | Pod FlexVolume 磁碟區只能在 Kubernetes 叢集中使用允許的驅動程式。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 5.2.0 |
| Kubernetes 叢集中的 Pod hostPath 磁碟區只能使用允許的主機路徑 | 限制 Pod HostPath 磁碟區裝載到 Kubernetes 叢集內允許的主機路徑。 此政策通常適用於Kubernetes Service(AKS)及啟用Azure Arc的Kubernetes。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 6.3.0 |
| Kubernetes 叢集 Pod 和容器應遵循 SELinux 安全標準 | 此政策對 SELinux 選項強制執行 Kubernetes Pod 安全標準。 在 PSS 模式下,'user' 和 'role' 欄位必須是空的,而 'type' 欄位必須是允許的值之一。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、拒絕、停用 | 8.0.0 |
| Kubernetes 叢集中的 Pod 及容器只能使用核准的使用者與群組識別碼執行 | 控制 Pod 及容器可用來在 Kubernetes 叢集內執行的使用者、主要群組、增補群組與檔案系統群組識別碼。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 6.2.0 |
| Kubernetes 叢集中的 Pod 只能使用允許的磁碟區類型 | Pod 在 Kubernetes 叢集中只會使用允許的磁碟區類型。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 5.2.0 |
| Kubernetes 叢集網繭應該只使用核准的主機網路和連接埠清單 | 限制 Pod 存取主機網路和 Kubernetes 叢集中允許的主機連接埠。 此建議是 CIS 5.2.4 的一部分,旨在改善 Kubernetes 環境的安全性,並符合 hostPort 的 Pod 安全標準 (PSS)。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、拒絕、停用 | 7.0.0 |
| Kubernetes 叢集 Pod 應使用指定的標籤 | 使用指定的標籤來識別 Kubernetes 叢集中的 Pod。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 7.2.0 |
| 確保服務只會接聽 Kubernetes 叢集內允許的連接埠 | 限制服務只會接聽允許的連接埠,以保護 Kubernetes 叢集的存取權。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 8.2.0 |
| Kubernetes 叢集服務只可使用允許的外部 IP | 使用允許的外部 IP 來避免 Kubernetes 叢集中的潛在攻擊 (CVE-2020-8554)。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 5.2.0 |
| Kubernetes 叢集服務應使用唯一選取器 | 請確定命名空間中的服務具有唯一的選取器。 唯一的服務選取器可確保命名空間中的每個服務都根據特定準則進行唯一識別。 此原則會透過閘道守將服務資源同步至 OPA。 套用之前,請確認 Gatekeeper Pod 記憶體容量不會超過。 參數會套用至特定命名空間,但其會跨所有命名空間同步處理該類型的所有資源。 目前針對 Kubernetes Service (AKS) 為預覽階段。 | 稽核、拒絕、停用 | 1.2.2 |
| 在 Kubernetes 叢集內不應允許具有特殊權限的容器 | 請勿允許在 Kubernetes 叢集內建立具有特殊權限的容器。 這項建議是 CIS 5.2.1 的一部分,旨在改善 Kubernetes 環境的安全性。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 9.2.0 |
| Kubernetes 叢集不應使用裸 Pod | 封鎖使用祼 Pod。 若節點失敗,不會重新排程祼 Pod。 Pod 應由 Deployment、Replicset、Daemonset 或 Jobs 管理 | 稽核、拒絕、停用 | 2.3.1 |
| Kubernetes 叢集Windows容器不應該過度投入 CPU 和記憶體 | Windows 容器的資源請求應少於或等於資源限制,或未指定,以避免過度提交。 如果 Windows 記憶體過度配置,它會處理磁碟中的頁面——這可能會降低效能——而不是以記憶體不足終止容器 | 稽核、拒絕、停用 | 2.2.0 |
| 避免使用 ContainerAdministrator 作為執行 Windows Pod 或容器容器程序的使用者。 此建議旨在提升 Windows 節點的安全性。 如需詳細資訊,請參閱https://kubernetes.io/docs/concepts/windows/intro/。 | 稽核、拒絕、停用 | 1.2.0 | |
| 控制使用者,讓 Windows Pod 和容器能在 Kubernetes 叢集中執行。 此建議是 Windows 節點 Pod 安全政策的一部分,旨在提升 Kubernetes 環境的安全性。 | 稽核、拒絕、停用 | 2.2.0 | |
| Kubernetes 叢集Windows pods 不應該執行 HostProcess 容器 | 防止對 Windows 節點的特殊權限存取。 此建議旨在提升 Windows 節點的安全性。 如需詳細資訊,請參閱https://kubernetes.io/docs/concepts/windows/intro/。 | 稽核、拒絕、停用 | 1.0.0 |
| Kubernetes 叢集應只能經由 HTTPS 存取 | 使用 HTTPS 可確保驗證,並保護傳輸中的資料不受網路層的竊聽攻擊。 此功能目前已普遍適用於 Kubernetes Service(AKS),並於 Azure Arc 啟用的 Kubernetes 預覽版中。 如需詳細資訊,請造訪 https://aka.ms/kubepolicydoc | 稽核、拒絕、停用 | 9.0.0 |
| Kubernetes 叢集應停用自動掛接 API 認證 | 停用自動掛接 API 認證,防止可能遭盜用的 Pod 資源對 Kubernetes 叢集執行 API 命令。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 4.2.0 |
| Kubernetes 叢集應該確定僅於需要時才使用叢集管理員角色 | 角色「cluster-admin」提供廣泛的環境權力,只應在需要的位置和時機使用。 | 稽核、已停用 | 1.1.0 |
| Kubernetes 叢集應該將角色和叢集角色中的萬用字元使用降到最低 | 使用萬用字元「*」可能是安全性風險,因為其授與特定角色可能不需要的廣泛權限。 如果角色具有太多權限,攻擊者或遭入侵使用者可能會濫用,以取得叢集中資源的未經授權存取權。 | 稽核、已停用 | 1.1.0 |
| Kubernetes 叢集不應允許容器提升權限 | 請勿允許容器在 Kubernetes 叢集內以提升的根權限來執行。 這項建議是 CIS 5.2.5 的一部分,旨在改善 Kubernetes 環境的安全性。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、拒絕、停用 | 8.0.0 |
| Kubernetes 叢集不應允許 ClusterRole/system: 彙總到編輯的端點編輯權限 | 因為 CVE-2021-25740,ClusterRole/system:aggregate-to-edit 不應該允許端點編輯權限,端點與 EndpointSlice 權限允許跨命名空間轉寄,https://github.com/kubernetes/kubernetes/issues/103675。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、已停用 | 3.2.0 |
| Kubernetes 叢集不應授與 CAP_SYS_ADMIN 安全性功能 | 若要減少容器的攻擊面,請限制 CAP_SYS_ADMIN Linux 功能。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 5.1.0 |
| Kubernetes 叢集不應使用特定的安全性功能 | 避免使用 Kubernetes 叢集中的特定安全性功能,以防止未授與權限存取 Pod 資源。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 5.2.0 |
| Kubernetes 叢集不應使用預設命名空間 | 避免在 Kubernetes 叢集中使用預設命名空間,以防止未經授權存取 ConfigMap、Pod、祕密、服務和 ServiceAccount 資源類型。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 4.2.0 |
| Kubernetes 叢集應在輸入資源規則中指定主機 | 請務必在輸入資源規則中指定主機,以防止後端服務無意中暴露給未經授權的存取。 此原則會評估 Kubernetes 輸入資源,以確保每個規則都有指定的主機欄位。 | 稽核、拒絕、停用 | 1.1.0-preview |
| Kubernetes 叢集應使用容器儲存體介面 (CSI) 驅動程式 StorageClass | 容器儲存體介面 (CSI) 是一種標準,可對 Kubernetes 上的容器化工作負載公開任意區塊及檔案儲存體系統。 樹狀結構內佈建程式 StorageClass 應自 AKS 1.21 版起淘汰。 若要深入了解,https://aka.ms/aks-csi-driver | 稽核、拒絕、停用 | 2.3.0 |
| Kubernetes 叢集應使用內部負載平衡器 | 使用內部負載平衡器讓 Kubernetes 服務僅供在與 Kubernetes 叢集相同的虛擬網路中執行的應用程式存取。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、稽核、拒絕、拒絕、停用、停用 | 8.2.0 |
| Kubernetes 資源應該有必要的注釋 | 請確保已在指定的 Kubernetes 資源種類上附加必要的注釋,以改善您 Kubernetes 資源的資源管理。 此政策通常適用於Kubernetes Service(AKS),以及啟用Azure Arc的Kubernetes預覽版。 如需詳細資訊,請參閱https://aka.ms/kubepolicydoc。 | 稽核、拒絕、停用 | 3.2.0 |
| Kubernetes 服務應升級為不易受攻擊的 Kubernetes 版本 | 將您的 Kubernetes 服務叢集升級為較新的 Kubernetes 版本,以防禦您目前 Kubernetes 版本中的已知弱點。 Kubernetes 版本 1.11.9 +、1.12.7+、1.13.5+ 及 1.14.0+ 中已修補弱點 CVE-2019-9946 | 稽核、已停用 | 1.0.2 |
| 必須設定反親和性規則或拓蹼分散限制 | 此原則可確保 Pod 排程在叢集內的不同節點上。 透過強制執行反親和性規則或 Pod 拓蹼分散限制,即使其中一個節點變得無法使用,也會維持可用性。 Pod 會繼續在其他節點上執行,增強復原能力。 | 稽核、拒絕、停用 | 1.2.2 |
| Mutate K8s 容器以移除所有功能 | 將 securityContext.capabilities.drop 變更為在 "ALL" 中新增。 這會卸除 k8s Linux 容器的所有功能 | Mutate、Disabled | 1.2.1 |
| Mutate K8s Init 容器以移除所有功能 | 將 securityContext.capabilities.drop 變更為在 "ALL" 中新增。 這會卸除 k8s linux init 容器的所有功能 | Mutate、Disabled | 1.2.1 |
| 沒有 AKS 特定標籤 | 防止客戶套用 AKS 特定標籤。 AKS 會使用前面加上 kubernetes.azure.com 的標籤來表示 AKS 擁有的元件。 客戶不應該使用這些標籤。 |
稽核、拒絕、停用 | 1.2.1 |
| 如果套用突變,則列印訊息 | 查閱套用的突變註釋,並在註釋存在時列印訊息。 | 稽核、已停用 | 1.2.1 |
| 保留系統集區污點 | 將 CriticalAddonsOnly 污點限制為僅系統集區。 AKS 會使用 CriticalAddonsOnly 污點讓客戶 Pod 遠離系統集區。 可確保 AKS 元件與客戶 Pod 之間的清楚區隔,並防止客戶 Pod 在不允許 CriticalAddonsOnly 污點時被收回。 | 稽核、拒絕、停用 | 1.2.1 |
| Resource 日誌應該啟用Azure Kubernetes Service | Azure Kubernetes Service 的資源日誌能協助在調查安全事件時重建活動軌跡。 將其啟用以確定記錄會在需要時存在 | AuditIfNotExists,已停用 | 1.0.0 |
| 將 CriticalAddonsOnly 污點限制為僅系統集區。 | 為了避免將使用者應用程式從使用者集區收回,並維護使用者與系統集區之間的分開考量,'CriticalAddonsOnly' 污點不應套用至使用者集區。 | Mutate、Disabled | 1.3.1 |
| Role-Based 存取控制(RBAC)應用於Kubernetes Services | 為了提供使用者可執行動作的細緻過濾,請使用 Role-Based 存取控制(RBAC)管理 Kubernetes 服務叢集中的權限並設定相關的授權政策。 | 稽核、已停用 | 1.1.0 |
| 將容器中 Pod 規格中的 automountServiceAccountToken 設定為 false。 | 藉由避免預設自動掛接服務帳戶權杖,將 automountServiceAccountToken 設定為 false 會增加安全性 | Mutate、Disabled | 1.2.1 |
| 將 Kubernetes 叢集容器的 CPU 限制設定為預設值,以防不存在。 | 設定容器 CPU 限制,以防止 Kubernetes 叢集中的資源消耗攻擊。 | Mutate、Disabled | 1.3.1 |
| 將 Kubernetes 叢集容器記憶體限制設定為預設值,以防不存在。 | 設定容器記憶體限制,以防止 Kubernetes 叢集中的資源消耗攻擊。 | Mutate、Disabled | 1.3.1 |
| 將 PodDisruptionBudget 資源的 maxUnavailable Pods 設定為 1 | 將無法使用 Pod 值上限設定為 1,可確保您的應用程式或服務在中斷期間可供使用 | Mutate、Disabled | 1.3.1 |
| 如果未設定,則將 init 容器中 Pod 規格中的 readOnlyRootFileSystem 設定為 true。 | 將 readOnlyRootFileSystem 設定為 true 可藉由防止容器寫入根檔案系統來提高安全性。 這僅適用於 Linux 容器。 | Mutate、Disabled | 1.3.1 |
| 如果未設定 Pod 規格中的 readOnlyRootFileSystem,則將其設定為 true。 | 將 readOnlyRootFileSystem 設定為 true 可藉由防止容器寫入根檔案系統來提高安全性 | Mutate、Disabled | 1.3.1 |
| 為了提升資料安全性,儲存在 Azure Kubernetes Service 節點虛擬機虛擬機(VM)主機上的資料,應在靜態時加密。 這是許多法規和業界合規性標準的常見需求。 | 稽核、拒絕、停用 | 1.0.1 |
下一步
- 請參考 Azure 原則 GitHub 倉庫 上的內建功能。
- 請檢視Azure 原則定義結構。
- 檢閱了解原則效果。