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