你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
此页面是Azure Policy内置策略定义的索引Azure Kubernetes 服务。 有关其他服务的附加Azure Policy内置,请参阅 Azure Policy 内置定义。
每个内置策略定义的名称链接到Azure门户中的策略定义。 使用 Version 列中的链接查看 Azure Policy GitHub 存储库上的源。
计划
| 名称 | 说明 | 策略 | 版本 |
|---|---|---|---|
| [预览]:使用映像完整性确保仅部署受信任的映像 | 使用映像完整性来确保 AKS 群集仅部署受信任的映像,方法是在 AKS 群集上启用映像完整性和Azure Policy Add-Ons。 映像完整性 Add-On 和Azure Policy Add-On都是使用映像完整性来验证映像是否在部署时签名的先决条件。 有关详细信息,请访问 https://aka.ms/aks/image-integrity。 | 3 | 1.1.0-预览 |
| [预览]:Kubernetes 群集应遵循 Internet 安全中心(CIS)Kubernetes 基准的安全控制建议 | 此计划包括了符合 Internet 安全中心(CIS)Kubernetes 基准的安全建议的政策,您可以使用此计划来保持对 CIS Kubernetes 基准的合规。 有关 CIS 符合性的详细信息,请访问: https://aka.ms/aks/cis-kubernetes | 7 | 1.0.0-预览版 |
| 部署安全措施应有助于指导开发人员了解 AKS 建议的最佳做法 | Azure Kubernetes 服务 (AKS)推荐的 Kubernetes 最佳做法的集合。 为了获得最佳体验,请使用部署安全措施分配此策略计划:https://aka.ms/aks/deployment-safeguards。 Azure Policy Add-On AKS 是将这些最佳做法应用于群集的先决条件。 有关启用Azure Policy加载项的说明,请转到 aka.ms/akspolicydoc | 二十七 | 3.0.0 |
| Kubernetes 基于 Linux 的工作负载的群集 Pod 安全基线标准 | 此计划包括 Kubernetes 群集 Pod 安全基线标准的策略。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关使用此策略的说明,请访问 https://aka.ms/kubepolicydoc。 | 5 | 1.4.0 |
| Kubernetes 群集 Pod 安全限制标准,适用于基于 Linux 的工作负荷 | 此计划包括 Kubernetes 群集 Pod 安全限制标准的策略。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关使用此策略的说明,请访问 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 |
| [预览]:应在 AKS 群集中安装Azure 备份扩展 | 确保保护在 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 服务托管群集应为区域冗余 | Azure Kubernetes 服务托管群集可配置为区域冗余群集。 该策略会检查群集中的节点池,并确保为所有节点池设置了可用性区域。 | Audit、Deny、Disabled | 1.0.0-preview |
| 部署映像完整性和策略 Add-Ons Azure Kubernetes 群集。 有关详细信息,请访问 https://aka.ms/aks/image-integrity | DeployIfNotExists、Disabled | 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 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | Audit、Deny、Disabled | 1.0.0-preview |
| [预览版]:Kubernetes 群集应实现准确的 Pod 中断预算 | 防止出现故障的 Pod 中断预算,确保操作 Pod 的数量最少。 有关详细信息,请参阅官方 Kubernetes 文档。 依赖于 Gatekeeper 数据复制,并将范围限定为 OPA 的所有部署、StatefulSet 和 PodDisruptionBudget 资源同步。 应用此策略之前,请确保同步的资源不会使内存容量紧张。 这些类型的所有资源都将同步。注意:目前为 Kubernetes 服务(AKS)提供预览版。 | Audit、Deny、Disabled | 1.3.1-preview |
| [预览版]:Kubernetes 群集应限制创建给定资源类型 | 给定的 Kubernetes 资源类型不应部署在特定命名空间中。 | Audit、Deny、Disabled | 2.3.0-preview |
| [预览]:通过将 runAsNotRoot 设置为 true 来防止容器以 root 身份运行。 | 将 runAsNotRoot 设置为 true 可防止容器以 root 身份运行,从而提高安全性。 | 突变,已禁用 | 1.1.0-preview |
| [预览]:通过将 runAsNotRoot 设置为 true 来防止 init 容器以 root 身份运行。 | 将 runAsNotRoot 设置为 true 可防止容器以 root 身份运行,从而提高安全性。 | 突变,已禁用 | 1.1.0-preview |
| [预览]:将 Kubernetes 群集容器 securityContext.runAsUser 字段设置为 1000(非根用户 ID) | 减少在存在安全漏洞时将特权提升为根用户所引入的攻击面。 | 突变,已禁用 | 1.1.0-preview |
| [预览]:将 Kubernetes 群集容器的安全计算模式配置文件类型设置为 RuntimeDefault(如果不存在)。 | 为容器设置安全计算模式配置文件类型,以防止用户空间对内核进行未经授权的潜在有害系统调用。 | 突变,已禁用 | 1.2.0-preview |
| [预览]:将 Kubernetes 群集 init 容器 securityContext.runAsUser 字段设置为 1000(非根用户 ID) | 减少在存在安全漏洞时将特权提升为根用户所引入的攻击面。 | 突变,已禁用 | 1.1.0-preview |
| [预览]:将 Kubernetes 群集 init 容器的安全计算模式配置文件类型设置为 RuntimeDefault(如果不存在)。 | 为 init 容器设置安全计算模式配置文件类型,以防止用户空间中对内核进行未经授权的潜在有害系统调用。 | 突变,已禁用 | 1.2.0-preview |
| [预览]:将 Kubernetes 群集 Pod securityContext.runAsUser 字段设置为 1000(非根用户 ID) | 减少在存在安全漏洞时将特权提升为根用户所引入的攻击面。 | 突变,已禁用 | 1.1.0-preview |
| [预览]:将 init 容器中 Pod 规范中的特权提升设置为 false。 | 将特权提升设置为 init 容器中的 false 可阻止容器允许特权提升(例如通过 set-user-ID 或 set-group-ID 文件模式),从而提高安全性。 | 突变,已禁用 | 1.2.0-preview |
| [预览]:将 Pod 规范中的特权提升设置为 false。 | 将特权提升设置为 false 可阻止容器允许特权提升(例如通过 set-user-ID 或 set-group-ID 文件模式),从而提高安全性。 | 突变,已禁用 | 1.2.0-preview |
| [预览]:将 UnhealthyPodEvictionPolicy 设置为“AlwaysAllow” | 将 Pod 中断预算的 UnhealthyPodEvictionPolicy 设置为“AlwaysAllow”,以允许在执行群集管理时逐出甚至运行不正常的 Pod | 突变,已禁用 | 1.1.0-preview |
| 应在 Kubernetes 服务上定义经授权的 IP 范围 | 通过仅向特定范围内的 IP 地址授予 API 访问权限,来限制对 Kubernetes 服务管理 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 服务上的容器化工作负荷公开任意块和文件存储系统的标准。 若要了解详细信息,请访问以下链接:https://aka.ms/aks-csi-driver | Audit、Disabled | 1.0.0 |
| Azure Kubernetes 群集应启用密钥管理服务 (KMS) | 使用密钥管理服务 (KMS) 在 etcd 中加密静态机密数据,以实现 Kubernetes 群集安全性。 有关详细信息,请访问:https://aka.ms/aks/kmsetcdencryption。 | Audit、Disabled | 1.1.0 |
| Azure Kubernetes 群集应使用 Azure CNI | Azure CNI 是某些Azure Kubernetes 服务功能的先决条件,包括Azure网络策略、Windows节点池和虚拟节点加载项。 了解详细信息:https://aka.ms/aks-azure-cni | Audit、Disabled | 1.0.1 |
| 检测和报告不是 Azure Kubernetes Fleet Manager 成员的任何 AKS 群集。 若要了解详细信息,请访问 https://aka.ms/kubernetes-fleet/policy | AuditIfNotExists、Disabled | 1.0.0 | |
| Azure Kubernetes 服务群集应禁用命令调用 | 禁用命令调用可避免绕过受限网络访问或 Kubernetes 基于角色的访问控制,从而增强安全性 | Audit、Disabled | 1.0.1 |
| Azure Kubernetes 服务群集应启用群集自动升级 | AKS 群集自动升级可以确保群集是最新版本,并且不会错过来自 AKS 和上游 Kubernetes 的最新功能或补丁。 有关详细信息,请访问:https://learn.microsoft.com/en-us/azure/aks/auto-upgrade-cluster。 | Audit、Disabled | 1.0.0 |
| Azure Kubernetes 服务群集应启用映像清理器 | 映像清理器可自动识别和移除易受攻击、未使用的映像,从而降低过期映像的风险,并减少清理映像所需的时间。 有关详细信息,请访问:https://aka.ms/aks/image-cleaner。 | Audit、Disabled | 1.0.0 |
| Azure Kubernetes 服务群集应启用Microsoft Entra ID集成 | AKS 管理的Microsoft Entra ID集成可以通过根据用户的标识或目录组成员身份配置 Kubernetes 基于角色的访问控制(Kubernetes RBAC)来管理对群集的访问。 有关详细信息,请访问:https://aka.ms/aks-managed-aad。 | Audit、Disabled | 1.0.2 |
| Azure Kubernetes 服务群集应启用节点 os 自动升级 | AKS 节点 OS 自动升级控制节点级 OS 安全更新。 有关详细信息,请访问:https://learn.microsoft.com/en-us/azure/aks/auto-upgrade-node-image。 | Audit、Disabled | 1.0.0 |
| Azure Kubernetes 服务群集应启用工作负荷标识 | 工作负荷标识允许为每个 Kubernetes Pod 分配唯一标识,并将其与 Azure AD 保护的资源(例如Azure 密钥保管库)相关联,从而从 Pod 内部安全访问这些资源。 有关详细信息,请访问:https://aka.ms/aks/wi。 | Audit、Disabled | 1.0.0 |
| Azure Kubernetes 服务群集应已启用Defender配置文件 | 容器Microsoft Defender提供云原生 Kubernetes 安全功能,包括环境强化、工作负荷保护和运行时保护。 在 Azure Kubernetes 服务 群集上启用 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 服务群集应禁用本地身份验证方法 | 禁用本地身份验证方法可确保Azure Kubernetes 服务群集仅需要Azure Active Directory标识进行身份验证,从而提高安全性。 有关详细信息,请访问:https://aka.ms/aks-disable-local-accounts。 | Audit、Deny、Disabled | 1.0.1 |
| Azure Kubernetes 服务群集应使用托管标识 | 使用托管标识包装服务主体、简化群集管理,并避免托管服务主体所需的复杂性。 了解详细信息:https://aka.ms/aks-update-managed-identities | Audit、Disabled | 1.0.1 |
| 应启用Azure Kubernetes 服务专用群集 | 为Azure Kubernetes 服务群集启用专用群集功能,以确保 API 服务器与节点池之间的网络流量仅保留在专用网络上。 这是许多法规和行业合规性标准中的常见要求。 | Audit、Deny、Disabled | 1.0.1 |
| Azure Policy应在群集上安装和启用 Kubernetes 服务的加载项 | Azure Policy Kubernetes 服务(AKS)的加载项扩展了 Gatekeeper v3,这是开放策略代理(OPA)的允许控制器 Webhook,以集中、一致的方式在群集上应用大规模强制措施和安全措施。 | Audit、Disabled | 1.0.2 |
| Azure运行容器映像时,应已解决漏洞(由 Microsoft Defender 漏洞管理) | 容器映像漏洞评估会扫描注册表中的常见漏洞 (CVE),并为每个映像提供详细的漏洞报告。 此建议可显示出 Kubernetes 群集中当前运行的易受攻击映像。 修正当前正在运行的容器映像中的漏洞是改善安全状况的关键,可显著减少容器化工作负载的攻击面。 | AuditIfNotExists、Disabled | 1.0.1 |
| Azure Kubernetes 服务 群集中的操作系统和数据磁盘应由客户管理的密钥加密 | 使用客户管理的密钥加密 OS 和数据磁盘可以更好地控制密钥管理并提高密钥管理的灵活性。 这是许多法规和行业合规性标准中的常见要求。 | Audit、Deny、Disabled | 1.0.1 |
| 无法编辑单个节点 | 无法编辑单个节点。 用户不应编辑单个节点。 请编辑节点池。 修改单个节点可能会导致设置不一致、操作挑战和潜在的安全风险。 | Audit、Deny、Disabled | 1.3.1 |
| 配置 AKS 群集以自动加入指定的 Azure Kubernetes Fleet Manager | 检测并确保 AKS 群集加入给定Azure Kubernetes Fleet Manager。 (可选)选择要加入的队列更新组的查找标记。 若要了解详细信息,请访问 https://aka.ms/kubernetes-fleet/policy | DeployIfNotExists、Disabled | 1.0.0 |
| 配置Azure Kubernetes 服务群集以启用Defender配置文件 | 容器Microsoft Defender提供云原生 Kubernetes 安全功能,包括环境强化、工作负荷保护和运行时保护。 启用 SecurityProfile 时。Azure Kubernetes 服务群集上的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 中使用 Bucket 源和机密通过 Flux v2 配置来配置 Kubernetes 群集 | 将“fluxConfiguration”部署到 Kubernetes 群集,确保群集从已定义的 Bucket 中获取其工作负载和配置的事实来源。 此定义需要存储在密钥保管库中的 Bucket SecretKey。 有关说明,请访问 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists、Disabled | 1.1.0 |
| 使用 Git 存储库和 HTTPS CA 证书通过 Flux v2 配置来配置 Kubernetes 群集 | 将“fluxConfiguration”部署到 Kubernetes 群集,确保群集从已定义的 Git 存储库中获取其工作负载和配置的事实来源。 此定义需要 HTTPS CA 证书。 有关说明,请访问 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists、Disabled | 1.1.0 |
| 使用 Git 存储库和 HTTPS 机密通过 Flux v2 配置来配置 Kubernetes 群集 | 将“fluxConfiguration”部署到 Kubernetes 群集,确保群集从已定义的 Git 存储库中获取其工作负载和配置的事实来源。 此定义需要存储在密钥保管库中的 HTTPS 密钥机密。 有关说明,请访问 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists、Disabled | 1.1.0 |
| 使用 Git 存储库和本地机密通过 Flux v2 配置来配置 Kubernetes 群集 | 将“fluxConfiguration”部署到 Kubernetes 群集,确保群集从已定义的 Git 存储库中获取其工作负载和配置的事实来源。 此定义需要存储在 Kubernetes 群集中的本地身份验证机密。 有关说明,请访问 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists、Disabled | 1.1.0 |
| 使用 Git 存储库和 SSH 机密通过 Flux v2 配置来配置 Kubernetes 群集 | 将“fluxConfiguration”部署到 Kubernetes 群集,确保群集从已定义的 Git 存储库中获取其工作负载和配置的事实来源。 此定义需要存储在密钥保管库中的 SSH 私钥机密。 有关说明,请访问 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists、Disabled | 1.1.0 |
| 使用公共 Git 存储库通过 Flux v2 配置来配置 Kubernetes 群集 | 将“fluxConfiguration”部署到 Kubernetes 群集,确保群集从已定义的 Git 存储库中获取其工作负载和配置的事实来源。 此定义不需要机密。 有关说明,请访问 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists、Disabled | 1.1.0 |
| 使用本地机密通过指定 Flux v2 Bucket 源来配置 Kubernetes 群集 | 将“fluxConfiguration”部署到 Kubernetes 群集,确保群集从已定义的 Bucket 中获取其工作负载和配置的事实来源。 此定义需要存储在 Kubernetes 群集中的本地身份验证机密。 有关说明,请访问 https://aka.ms/GitOpsFlux2Policy。 | DeployIfNotExists、Disabled | 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 服务群集 | 确保通过集中管理对Microsoft Entra ID集成 AKS 群集的管理员访问权限来提高群集安全性。 | DeployIfNotExists、Disabled | 2.1.0 |
| 在 Azure Kubernetes 群集上配置节点 OS 自动升级 | 使用节点 OS 自动升级来控制Azure Kubernetes 服务 (AKS)群集的节点级 OS 安全更新。 有关详细信息,请访问 https://learn.microsoft.com/en-us/azure/aks/auto-upgrade-node-image。 | DeployIfNotExists、Disabled | 1.2.0 |
| Deploy - 为Log Analytics工作区Azure Kubernetes 服务配置诊断设置 | 将Azure Kubernetes 服务的诊断设置部署到Log Analytics工作区的资源日志。 | DeployIfNotExists、Disabled | 3.0.0 |
| Azure Policy加载项添加到Azure Kubernetes 服务群集 | 使用Azure Policy加载项管理和报告Azure Kubernetes 服务 (AKS)群集的符合性状态。 有关详细信息,请参阅 https://aka.ms/akspolicydoc。 | DeployIfNotExists、Disabled | 4.2.0 |
| 在 Azure Kubernetes 群集上部署映像清理器。 有关详细信息,请访问 https://aka.ms/aks/image-cleaner | DeployIfNotExists、Disabled | 1.2.0 | |
| 计划内维护,以计划和控制Azure Kubernetes 服务 (AKS)群集的升级 | 通过使用计划内维护,可以计划每周维护时段来执行更新并最大限度地减少工作负载影响。 安排后,升级将仅在所选时段内进行。 了解详细信息:https://aka.ms/aks/planned-maintenance | DeployIfNotExists、AuditIfNotExists、Disabled | 1.1.0 |
| Azure Kubernetes 服务 群集上的Disable 命令调用 | 禁用命令调用可以通过拒绝对群集的 invoke-command 访问来增强安全性 | DeployIfNotExists、Disabled | 1.2.0 |
| 确保群集容器已配置就绪情况或运行情况探测 | 此策略强制所有 Pod 配置就绪情况和/或运行情况探测。 探测类型可以是 tcpSocket、httpGet 和 exec 的任何一种。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关使用此策略的说明,请访问 https://aka.ms/kubepolicydoc。 | Audit、Deny、Disabled | 3.3.0 |
| Kubernetes 群集容器映像必须包含 preStop 挂钩 | 要求容器映像包含 preStop 挂钩,以在 Pod 关闭期间正常终止进程。 | Audit、Deny、Disabled | 1.1.1 |
| Kubernetes 群集容器映像不应包含最新的映像标记 | 要求容器映像不使用 Kubernetes 中的最新标记,这是一种最佳做法,通过使用明确和经过版本控制的容器映像确保可重现性,防止意外更新,并简化调试和回退。 | Audit、Deny、Disabled | 2.0.1 |
| Kubernetes 群集容器 CPU 和内存资源限制不得超过指定的限制 | 强制实施容器 CPU 和内存资源限制,以防止 Kubernetes 群集中发生资源耗尽攻击。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 9.3.0 |
| 必须定义 Kubernetes 群集容器 CPU 和内存资源请求 | 强制实施容器 CPU 和内存资源请求,以确保计划的节点具有所需的资源。 | Audit、Deny、Disabled | 1.0.0-preview |
| Kubernetes 群集容器不应共享主机命名空间 | 阻止 Pod 容器共享 Kubernetes 群集中的主机进程 ID 命名空间、主机 IPC 命名空间和主机网络命名空间。 此建议符合主机命名空间的 Kubernetes Pod 安全标准,是 CIS 5.2.1、5.2.2 和 5.2.3 的一部分,旨在提高 Kubernetes 环境的安全性。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | Audit、Deny、Disabled | 6.0.0 |
| Kubernetes 群集容器不应使用禁止的 sysctl 接口 | 容器不应使用 Kubernetes 群集中禁止的 sysctl 接口。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 7.2.0 |
| Kubernetes 群集容器应仅在存在映像拉取机密时拉取映像 | 限制容器的映像拉取以强制 ImagePullSecrets 存在,从而确保对 Kubernetes 群集中的映像进行安全的授权访问 | Audit、Deny、Disabled | 1.3.1 |
| Kubernetes 群集容器只应使用允许的 AppArmor 配置文件 | 容器只应使用 Kubernetes 群集中允许的 AppArmor 配置文件。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 6.2.1 |
| Kubernetes 群集容器只应使用允许的功能 | 限制功能以减小 Kubernetes 群集中容器的受攻击面。 此建议是旨在提高 Kubernetes 环境安全性的 CIS 5.2.8 和 CIS 5.2.9 的一部分。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 6.2.0 |
| Kubernetes 群集容器应只使用允许的映像 | 使用受信任注册表中的映像,以降低 Kubernetes 群集暴露于未知漏洞、安全问题和恶意映像的风险。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 9.3.0 |
| Kubernetes 群集容器只应使用允许的 ProcMountType | Pod 容器只能使用 Kubernetes 群集中允许的 ProcMountType。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 8.2.0 |
| Kubernetes 群集容器应仅使用允许的拉取策略 | 限制容器的拉取策略,以强制容器仅在部署上使用允许的映像 | Audit、Deny、Disabled | 3.2.0 |
| Kubernetes 群集容器只应使用允许的 seccomp 配置文件 | Pod 容器只能使用 Kubernetes 群集中允许的 seccomp 配置文件。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 7.2.0 |
| Kubernetes 群集容器应使用只读根文件系统运行 | 运行使用只读根文件系统的容器,以防止在运行时发生更改而导致恶意二进制文件添加到 Kubernetes 群集中的 PATH。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 6.3.0 |
| Kubernetes 群集 Pod FlexVolume 卷只应使用允许的驱动程序 | Pod FlexVolume 卷只应使用 Kubernetes 群集中允许的驱动程序。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 5.2.0 |
| Kubernetes 群集 Pod hostPath 卷只应使用允许的主机路径 | 仅限将 Pod HostPath 卷装载到 Kubernetes 群集中允许的主机路径。 此策略通常用于 Kubernetes 服务(AKS),并Azure Arc已启用 Kubernetes。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 6.3.0 |
| Kubernetes 群集 Pod 和容器应遵循 SELinux 安全标准 | 此策略强制实施适用于 SELinux 选项的 Kubernetes Pod 安全标准。 在 PSS 模式下,“user”和“role”字段必须为空,“type”字段必须是允许的值之一。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | Audit、Deny、Disabled | 8.0.0 |
| Kubernetes 群集 Pod 和容器只应使用批准的用户 ID 和组 ID 运行 | 控制 Pod 和容器可以使用哪些用户、主要组、补充组和文件系统组 ID 在 Kubernetes 群集中运行。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 6.2.0 |
| Kubernetes 群集 Pod 只应使用允许的卷类型 | Pod 只能使用 Kubernetes 群集中允许的卷类型。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 5.2.0 |
| Kubernetes 群集 Pod 应仅使用批准的主机网络和端口列表 | 限制 Pod 对主机网络和 Kubernetes 群集中允许的主机端口的访问。 此建议是 CIS 5.2.4 的一部分,旨在提高 Kubernetes 环境的安全性,并与 HostPorts 的 Pod 安全标准(PSS)保持一致。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | Audit、Deny、Disabled | 7.0.0 |
| Kubernetes 群集 Pod 应使用指定的标签 | 使用指定的标签来标识 Kubernetes 群集中的 Pod。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 7.2.0 |
| Kubernetes 群集服务应只侦听允许的端口 | 将服务限制为只侦听允许的端口,以确保对 Kubernetes 群集进行的访问安全。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 8.2.0 |
| Kubernetes 群集服务只应使用允许的外部 IP | 使用允许的外部 IP 避免 Kubernetes 群集中的潜在攻击 (CVE-2020-8554)。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 5.2.0 |
| Kubernetes 群集服务应使用唯一选择器 | 确保命名空间中的服务具有唯一的选择器。 唯一的服务选择器可确保命名空间中的每个服务都根据特定条件唯一标识。 此策略通过 Gatekeeper 将服务资源同步到 OPA。 在应用之前,请验证不会超过 Gatekeeper Pod 的内存容量。 参数适用于特定命名空间,但它会跨所有命名空间同步该类型的所有资源。 对于 Kubernetes 服务 (AKS),此策略目前处于预览状态。 | Audit、Deny、Disabled | 1.2.2 |
| Kubernetes 群集不应允许特权容器 | 不允许在 Kubernetes 群集中创建特权容器。 此建议是旨在提高 Kubernetes 环境安全性的 CIS 5.2.1 的一部分。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 9.2.0 |
| Kubernetes 群集不应使用裸 Pod | 阻止使用裸 Pod。 如果节点发生故障,将不会重新计划裸 Pod。 Pod 应由 Deployment、Replicset、Daemonset 或 Jobs 进行管理 | Audit、Deny、Disabled | 2.3.1 |
| Kubernetes 群集Windows容器不应过度提交 cpu 和内存 | Windows容器资源请求应小于或等于资源限制或未指定,以避免过度使用。 如果Windows内存预配过度,它将处理磁盘中的页面(这可能会降低性能),而不是终止内存不足的容器 | Audit、Deny、Disabled | 2.2.0 |
| Kubernetes 群集Windows容器不应作为 ContainerAdministrator 运行 | 防止使用 ContainerAdministrator 作为用户来执行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 | Audit、Deny、Disabled | 9.0.0 |
| Kubernetes 群集应禁用自动装载 API 凭据 | 禁用自动装载 API 凭据,以防止可能泄露的 Pod 资源对 Kubernetes 群集运行 API 命令。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 4.2.0 |
| Kubernetes 群集应确保仅在需要时使用 cluster-admin 角色 | “cluster-admin”角色提供了对环境的广泛权力,只应在需要的位置和时间使用。 | Audit、Disabled | 1.1.0 |
| Kubernetes 群集应尽量减少通配符在角色和群集角色中的使用 | 使用通配符“*”可能存在安全风险,因为它授予特定角色可能不需要的广泛权限。 如果角色拥有太多权限,则可能会被攻击者或遭到入侵的用户滥用以获取对群集中资源的未经授权的访问。 | Audit、Disabled | 1.1.0 |
| Kubernetes 群集不得允许容器特权提升 | 不允许容器使用特权提升运行,从而进入 Kubernetes 群集的根。 此建议是旨在提高 Kubernetes 环境安全性的 CIS 5.2.5 的一部分。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | Audit、Deny、Disabled | 8.0.0 |
| Kubernetes 群集不应允许终结点编辑 ClusterRole/system:aggregate-to-edit 的权限 | 由于“CVE-2021-25740:终结点和 EndpointSlice 权限允许跨命名空间转发 https://github.com/kubernetes/kubernetes/issues/103675”问题,ClusterRole/system:aggregate-to-edit 不应允许终结点编辑权限。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | Audit、Disabled | 3.2.0 |
| Kubernetes 群集不应授予 CAP_SYS_ADMIN 安全功能 | 为了减小容器的受攻击面,请限制 CAP_SYS_ADMIN Linux 功能。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 5.1.0 |
| Kubernetes 群集不应使用特定的安全功能 | 阻止 Kubernetes 群集中特定的安全功能,以防止 Pod 资源上未授予的权限。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 5.2.0 |
| Kubernetes 群集不应使用默认命名空间 | 防止在 Kubernetes 群集中使用默认命名空间,以防止对 ConfigMap、Pod、Secret、Service 和 ServiceAccount 资源类型进行的未经授权的访问。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 4.2.0 |
| Kubernetes 群集应指定主机入口资源规则 | 确保指定主机入口资源规则,以防止意外地向未经授权的访问公开后端服务。 此策略评估 Kubernetes 入口资源,以确保每个规则都有指定的主机字段。 | Audit、Deny、Disabled | 1.1.0-preview |
| Kubernetes 群集应使用容器存储接口 (CSI) 驱动程序 StorageClass | 容器存储接口 (CSI) 是有关在 Kubernetes 上的容器化工作负载中公开任意块和文件存储系统的一套标准。 自 AKS 版本 1.21 起,应弃用树内预配器 StorageClass。 若要了解详细信息,请访问以下链接:https://aka.ms/aks-csi-driver | Audit、Deny、Disabled | 2.3.0 |
| Kubernetes 群集应使用内部负载均衡器 | 使用内部负载均衡可以做到只有 Kubernetes 群集所在的同一虚拟网络中运行的应用程序能够访问 Kubernetes 服务。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 8.2.0 |
| Kubernetes 资源应具有所需的注释 | 确保对给定的 Kubernetes 资源类型附加所需的注释,以改进 Kubernetes 资源的资源管理。 此策略适用于 Kubernetes 服务(AKS),并为已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请参阅 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 |
| 必须设置反相关性规则或拓扑分布约束 | 此策略可确保将 Pod 调度到群集内的不同节点上。 通过强制实施反关联规则或 Pod 拓扑分布约束,即使其中一个节点不可用,可用性也会得到维护。 Pod 将继续在其他节点上运行,从而提高复原能力。 | Audit、Deny、Disabled | 1.2.2 |
| 将 K8s 容器更改为删除所有功能 | 变种 securityContext.capabilities.drop 以添加“ALL”。 这会删除 k8s linux 容器的所有功能 | 突变,已禁用 | 1.2.1 |
| 将 K8s Init 容器更改为删除所有功能 | 变种 securityContext.capabilities.drop 以添加“ALL”。 这会删除 k8s linux init 容器的所有功能 | 突变,已禁用 | 1.2.1 |
| 无特定于 AKS 的标签 | 阻止客户应用特定于 AKS 的标签。 AKS 使用带有 kubernetes.azure.com 前缀的标签来表示 AKS 拥有的组件。 客户不应使用这些标签。 |
Audit、Deny、Disabled | 1.2.1 |
| 应用突变时打印消息 | 查找应用的突变注释,如果注释存在则打印消息。 | Audit、Disabled | 1.2.1 |
| 保留的系统池污点 | 将 CriticalAddonsOnly 排斥限制为仅系统池。 AKS 使用 CriticalAddonsOnly 污点使客户 Pod 远离系统池。 它可确保 AKS 组件和客户 Pod 之间的明确分离,并防止客户 pod 在不容忍 CriticalAddonsOnly 污点的情况下被驱逐。 | Audit、Deny、Disabled | 1.2.1 |
| 应启用Azure Kubernetes 服务中的资源日志 | Azure Kubernetes 服务的资源日志有助于在调查安全事件时重新创建活动线索。 启用日志可确保它们在需要时存在 | AuditIfNotExists、Disabled | 1.0.0 |
| 将 CriticalAddonsOnly 污点限制为仅系统池。 | 为避免从用户池中逐出用户应用,并保持用户与系统池之间的关注点分离,“CriticalAddonsOnly”排斥不应应用于用户池。 | 突变,已禁用 | 1.3.1 |
| 应在 Kubernetes 服务上使用 Role-Based 访问控制 (RBAC | 若要对用户可以执行的操作进行精细筛选,请使用 Role-Based 访问控制 (RBAC) 来管理 Kubernetes 服务群集中的权限并配置相关的授权策略。 | Audit、Disabled | 1.1.0 |
| 将容器中的 Pod 规范中的 automountServiceAccountToken 设置为 false。 | 将 automountServiceAccountToken 设置为 false 可避免默认自动装载服务帐户令牌,从而提高安全性 | 突变,已禁用 | 1.2.1 |
| 将 Kubernetes 群集容器 CPU 限制设置为默认值(如果不存在)。 | 设置容器 CPU 限制以防止 Kubernetes 群集中的资源耗尽攻击。 | 突变,已禁用 | 1.3.1 |
| 将 Kubernetes 群集容器内存限制设置为默认值(如果不存在)。 | 设置容器内存限制以防止 Kubernetes 群集中的资源耗尽攻击。 | 突变,已禁用 | 1.3.1 |
| 将 PodDisruptionBudget 资源的 maxUnavailable Pod 设置为 1 | 将最大不可用 Pod 值设置为 1 可确保应用程序或服务在中断期间可用 | 突变,已禁用 | 1.3.1 |
| 如果未设置,请将 init 容器中 Pod 规范中的 readOnlyRootFileSystem 设置为 true。 | 将 readOnlyRootFileSystem 设置为 true 可以防止容器写入根文件系统,从而提高安全性。 这仅适用于 Linux 容器。 | 突变,已禁用 | 1.3.1 |
| 如果未设置,请将 Pod 规范中的 readOnlyRootFileSystem 设置为 true。 | 将 readOnlyRootFileSystem 设置为 true 可防止容器写入根文件系统,从而提高安全性 | 突变,已禁用 | 1.3.1 |
| 应对Azure Kubernetes 服务群集中的代理节点池的磁盘和缓存进行加密 | 为了增强数据安全性,Azure Kubernetes 服务节点 VM 的虚拟机(VM)主机上存储的数据应静态加密。 这是许多法规和行业合规性标准中的常见要求。 | Audit、Deny、Disabled | 1.0.1 |
后续步骤
- 请参阅 Azure Policy GitHub 存储库上的内置。
- 查看 Azure Policy 定义结构。
- 查看了解策略效果。