你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Kubernetes 服务的 Azure Policy 内置定义
此页是 Azure Kubernetes 服务的 Azure Policy 内置策略定义的索引。 有关其他服务的其他 Azure Policy 内置定义,请参阅 Azure Policy 内置定义。
每个内置策略定义链接(指向 Azure 门户中的策略定义)的名称。 使用“版本”列中的链接查看 Azure Policy GitHub 存储库上的源。
计划
名称 | 说明 | 策略 | 版本 |
---|---|---|---|
[预览]:使用映像完整性确保仅部署受信任的映像 | 使用映像完整性来确保 AKS 群集仅部署受信任的映像,方法是在 AKS 群集上启用映像完整性和 Azure Policy 加载项。 映像完整性加载项和 Azure Policy 加载项都是使用映像完整性来验证映像是否在部署时签名的先决条件。 有关详细信息,请访问 https://aka.ms/aks/image-integrity。 | 3 | 1.1.0-preview |
[预览版]:部署安全措施应当有助于引导开发人员践行 AKS 建议的最佳做法 | Azure Kubernetes 服务 (AKS) 建议的 Kubernetes 最佳做法集合。 为了获得最佳体验,请使用部署安全措施分配此策略计划:https://aka.ms/aks/deployment-safeguards。 适用于 AKS 的 Azure Policy 加载项是将这些最佳做法应用于群集的先决条件。 有关启用 Azure Policy 加载项的说明,请转到 aka.ms/akspolicydoc | 20 | 1.9.0-preview |
基于 Linux 的工作负载的 Kubernetes 群集 Pod 安全基线标准 | 此计划包括 Kubernetes 群集 Pod 安全基线标准的策略。 此策略通常适用于 Kubernetes 服务 (AKS) 以及已启用 Azure Arc 的 Kubernetes 的预览版。 有关使用此策略的说明,请访问 https://aka.ms/kubepolicydoc。 | 5 | 1.4.0 |
基于 Linux 的工作负载的 Kubernetes 群集 Pod 安全限制标准 | 此计划包括 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 |
[预览]: 无法编辑单个节点 | 无法编辑单个节点。 用户不应编辑单个节点。 请编辑节点池。 修改单个节点可能会导致设置不一致、操作挑战和潜在的安全风险。 | Audit、Deny、Disabled | 1.3.0-preview |
[预览版]:在 Azure Kubernetes 服务上部署映像完整性 | 部署映像完整性和策略加载项 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 服务 (AKS),此策略目前处于预览状态。 | Audit、Deny、Disabled | 1.2.0-preview |
[预览版]:Kubernetes 群集应实现准确的 Pod 中断预算 | 防止出现故障的 Pod 中断预算,确保操作 Pod 的数量最少。 有关详细信息,请参阅官方 Kubernetes 文档。 此策略依赖于 Gatekeeper 数据复制并将其范围内的所有入口资源同步到 OPA 中。 应用此策略之前,请确保同步的入口资源不会过多占用你的内存容量。 尽管参数可评估特定的命名空间,但跨命名空间的所有此类资源都将同步。注意:对于 Kubernetes 服务 (AKS),此策略目前处于预览状态。 | Audit、Deny、Disabled | 1.3.0-preview |
[预览版]:Kubernetes 群集应限制创建给定资源类型 | 给定的 Kubernetes 资源类型不应部署在特定命名空间中。 | Audit、Deny、Disabled | 2.3.0-preview |
[预览]: 必须设置反相关性规则 | 此策略可确保将 Pod 调度到群集内的不同节点上。 通过强制实施反相关性规则,即使其中一个节点不可用,也可维持可用性。 Pod 将继续在其他节点上运行,从而提高复原能力。 | Audit、Deny、Disabled | 1.2.0-preview |
[预览]:将 K8s 容器变种为删除所有功能 | 变种 securityContext.capabilities.drop 以添加“ALL”。 这会删除 k8s linux 容器的所有功能 | 突变,已禁用 | 1.1.0-preview |
[预览]:将 K8s Init 容器变种为删除所有功能 | 变种 securityContext.capabilities.drop 以添加“ALL”。 这会删除 k8s linux init 容器的所有功能 | 突变,已禁用 | 1.1.0-preview |
[预览]: 无 AKS 特定标签 | 阻止客户应用特定于 AKS 的标签。 AKS 使用带有 kubernetes.azure.com 前缀的标签来表示 AKS 拥有的组件。 客户不应使用这些标签。 |
Audit、Deny、Disabled | 1.2.0-preview |
[预览]:通过将 runAsNotRoot 设置为 true 来防止容器以 root 身份运行。 | 将 runAsNotRoot 设置为 true 可防止容器以 root 身份运行,从而提高安全性。 | 突变,已禁用 | 1.0.0-preview |
[预览]:通过将 runAsNotRoot 设置为 true 来防止 init 容器以 root 身份运行。 | 将 runAsNotRoot 设置为 true 可防止容器以 root 身份运行,从而提高安全性。 | 突变,已禁用 | 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”排斥不应应用于用户池。 | 突变,已禁用 | 1.2.0-preview |
[预览]:将容器中的 Pod 规范中的 automountServiceAccountToken 设置为 false。 | 将 automountServiceAccountToken 设置为 false 可避免默认自动装载服务帐户令牌,从而提高安全性 | 突变,已禁用 | 1.1.0-preview |
[预览]:将 Kubernetes 群集容器 securityContext.runAsUser 字段设置为 1000(非根用户 ID) | 减少在存在安全漏洞时将特权提升为根用户所引入的攻击面。 | 突变,已禁用 | 1.0.0-preview |
[预览]:将 Kubernetes 群集容器 CPU 限制设置为默认值(如果不存在)。 | 设置容器 CPU 限制以防止 Kubernetes 群集中的资源耗尽攻击。 | 突变,已禁用 | 1.2.0-preview |
[预览]:将 Kubernetes 群集容器内存限制设置为默认值(如果不存在)。 | 设置容器内存限制以防止 Kubernetes 群集中的资源耗尽攻击。 | 突变,已禁用 | 1.2.0-preview |
[预览]:将 Kubernetes 群集容器的安全计算模式配置文件类型设置为 RuntimeDefault(如果不存在)。 | 为容器设置安全计算模式配置文件类型,以防止用户空间对内核进行未经授权的潜在有害系统调用。 | 突变,已禁用 | 1.1.0-preview |
[预览]:将 Kubernetes 群集 init 容器 securityContext.runAsUser 字段设置为 1000(非根用户 ID) | 减少在存在安全漏洞时将特权提升为根用户所引入的攻击面。 | 突变,已禁用 | 1.0.0-preview |
[预览]:将 Kubernetes 群集 init 容器的安全计算模式配置文件类型设置为 RuntimeDefault(如果不存在)。 | 为 init 容器设置安全计算模式配置文件类型,以防止用户空间中对内核进行未经授权的潜在有害系统调用。 | 突变,已禁用 | 1.1.0-preview |
[预览]:将 Kubernetes 群集 Pod securityContext.runAsUser 字段设置为 1000(非根用户 ID) | 减少在存在安全漏洞时将特权提升为根用户所引入的攻击面。 | 突变,已禁用 | 1.0.0-preview |
[预览]:将 podDisruptionBudget 资源的 maxUnavailable pod 设置为 1 | 将最大不可用 Pod 值设置为 1 可确保应用程序或服务在中断期间可用 | 突变,已禁用 | 1.2.0-preview |
[预览]:将 init 容器中 Pod 规范中的特权提升设置为 false。 | 将特权提升设置为 init 容器中的 false 可阻止容器允许特权提升(例如通过 set-user-ID 或 set-group-ID 文件模式),从而提高安全性。 | 突变,已禁用 | 1.1.0-preview |
[预览]:将 Pod 规范中的特权提升设置为 false。 | 将特权提升设置为 false 可阻止容器允许特权提升(例如通过 set-user-ID 或 set-group-ID 文件模式),从而提高安全性。 | 突变,已禁用 | 1.1.0-preview |
[预览]:如果未设置,请将 Init 容器中 Pod 规范中的 readOnlyRootFileSystem 设置为 true。 | 将 readOnlyRootFileSystem 设置为 true 可以防止容器写入根文件系统,从而提高安全性。 这仅适用于 Linux 容器。 | 突变,已禁用 | 1.2.0-preview |
[预览]:如果未设置,请将 Pod 规范中的 readOnlyRootFileSystem 设置为 true。 | 将 readOnlyRootFileSystem 设置为 true 可防止容器写入根文件系统,从而提高安全性 | 突变,已禁用 | 1.2.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.0.0 |
Azure Kubernetes 群集应使用 Azure CNI | Azure CNI 是一些 Azure Kubernetes 服务功能的先决条件,包括 Azure 网络策略、Windows 节点池和虚拟节点加载项。 了解详细信息:https://aka.ms/aks-azure-cni | Audit、Disabled | 1.0.1 |
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 for Containers 提供云原生 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 for Containers | 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 |
应在群集上安装并启用用于 Kubernetes 服务 (AKS) 的 Azure Policy 加载项 | 用于 Kubernetes 服务 (AKS) 的 Azure Policy 加载项扩展了 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 |
配置 Azure Kubernetes 服务群集以启用 Defender 配置文件 | Microsoft Defender for Containers 提供云原生 Kubernetes 安全功能,包括环境强化、工作负载保护和运行时保护。 在 Azure Kubernetes 服务群集上启用 SecurityProfile.Defender 时,会将代理部署到群集以收集安全事件数据。 详细了解 Microsoft Defender for Containers: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 中获取其工作负载和配置的事实来源。 此定义需要存储在 Key Vault 中的 Bucket 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 群集,确保群集从已定义的 Bucket 中获取其工作负载和配置的事实来源。 此定义需要存储在 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 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.0.1 |
部署 - 为 Azure Kubernetes 服务配置诊断设置,以便将资源日志流式传输到 Log Analytics 工作区 | 为 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.1.0 |
在 Azure Kubernetes 服务上部署映像清理器 | 在 Azure Kubernetes 群集上部署映像清理器。 有关详细信息,请访问 https://aka.ms/aks/image-cleaner | DeployIfNotExists、Disabled | 1.0.4 |
部署计划内维护,为 Azure Kubernetes 服务 (AKS) 群集安排和控制升级 | 通过使用计划内维护,可以计划每周维护时段来执行更新并最大限度地减少工作负载影响。 安排后,升级将仅在所选时段内进行。 了解详细信息:https://aka.ms/aks/planned-maintenance | DeployIfNotExists、AuditIfNotExists、Disabled | 1.1.0 |
在 Azure Kubernetes 服务群集上禁用命令调用 | 禁用命令调用可以通过拒绝对群集的 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 群集容器 CPU 和内存资源限制不得超过指定的限制 | 强制实施容器 CPU 和内存资源限制,以防止 Kubernetes 群集中发生资源耗尽攻击。 此策略通常适用于 Kubernetes 服务 (AKS) 以及已启用 Azure Arc 的 Kubernetes 的预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 9.3.0 |
Kubernetes 群集容器不得共享主机进程 ID 命名空间或主机 IPC 命名空间 | 阻止 Pod 容器在 Kubernetes 群集中共享主机进程 ID 命名空间和主机 IPC 命名空间。 此建议是旨在提高 Kubernetes 环境安全性的 CIS 5.2.2 和 CIS 5.2.3 的一部分。 此策略通常适用于 Kubernetes 服务 (AKS) 以及已启用 Azure Arc 的 Kubernetes 的预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 5.2.0 |
Kubernetes 群集容器不应使用禁止的 sysctl 接口 | 容器不应使用 Kubernetes 群集中禁止的 sysctl 接口。 此策略通常适用于 Kubernetes 服务 (AKS) 以及已启用 Azure Arc 的 Kubernetes 的预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 7.2.0 |
Kubernetes 群集容器只应使用允许的 AppArmor 配置文件 | 容器只应使用 Kubernetes 群集中允许的 AppArmor 配置文件。 此策略通常适用于 Kubernetes 服务 (AKS) 以及已启用 Azure Arc 的 Kubernetes 的预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 6.2.0 |
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.2.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 和容器只应使用允许的 SELinux 选项 | Pod 和容器只应使用 Kubernetes 群集中允许的 SELinux 选项。 此策略通常适用于 Kubernetes 服务 (AKS) 以及已启用 Azure Arc 的 Kubernetes 的预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 7.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 群集中对主机网络和允许的主机端口范围的访问。 此建议是旨在提高 Kubernetes 环境安全性的 CIS 5.2.4 的一部分。 此策略通常适用于 Kubernetes 服务 (AKS) 以及已启用 Azure Arc 的 Kubernetes 的预览版。 有关详细信息,请参阅 https://aka.ms/kubepolicydoc。 | audit、Audit、deny、Deny、disabled、Disabled | 6.2.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 群集不应允许特权容器 | 不允许在 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.0 |
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、Audit、deny、Deny、disabled、Disabled | 8.2.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、Audit、deny、Deny、disabled、Disabled | 7.2.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 群集应使用容器存储接口 (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 |
应启用 Azure Kubernetes 服务中的资源日志 | 在调查安全事件时,Azure Kubernetes 服务的资源日志可帮助重新创建活动线索。 启用日志可确保它们在需要时存在 | AuditIfNotExists、Disabled | 1.0.0 |
应在 Kubernetes 服务中使用基于角色的访问控制 (RBAC) | 若要对用户可以执行的操作提供粒度筛选,请使用基于角色的访问控制 (RBAC) 来管理 Kubernetes 服务群集中的权限并配置相关授权策略。 | Audit、Disabled | 1.0.4 |
应在主机处加密 Azure Kubernetes 服务群集中代理节点池的临时磁盘和缓存 | 为了增强数据安全性,应对存储在 Azure Kubernetes 服务节点 VM 的虚拟机 (VM) 主机上的数据进行静态加密。 这是许多法规和行业合规性标准中的常见要求。 | Audit、Deny、Disabled | 1.0.1 |
后续步骤
- 在 Azure Policy GitHub 存储库中查看这些内置项。
- 查看 Azure Policy 定义结构。
- 查看了解策略效果。