用于Azure Kubernetes 服务的 Azure 安全基线(AKS)

此安全基线将 Microsoft 云安全基准版本 1.0 中的指南应用于Azure Kubernetes 服务(AKS)。 Microsoft Cloud 安全基准提供有关如何在 Azure 上保护云解决方案的建议。 内容按 Microsoft 云安全基准定义的安全控制以及适用于Azure Kubernetes 服务(AKS)的相关指南进行分组。

可以使用 Microsoft Defender for Cloud 监视此安全基线及其建议。 Azure Policy 定义将在 Microsoft Defender for Cloud 门户页的“监管合规”部分中列出。

当某个功能具有相关的 Azure Policy 定义时,它们会在此基线中列出,以帮助你衡量是否符合 Microsoft 云安全基准控制和建议。 某些建议可能需要使用付费 Microsoft Defender 计划来启用特定的安全方案。

注意

已排除不适用于Azure Kubernetes 服务(AKS)的功能。 若要查看 Azure Kubernetes 服务 (AKS) 如何完全映射到 Microsoft 云安全基准,请参阅完整的Azure Kubernetes 服务(AKS)安全基线映射文件

安全配置文件

安全配置文件汇总了Azure Kubernetes 服务(AKS)的高影响行为,这可能会导致安全注意事项增加。

服务行为属性
产品类别 容器
客户可以访问主机 / OS 无访问权限
可将服务部署到客户的虚拟网络中 True
静态存储客户内容 True

网络安全性

有关详细信息,请参阅 Microsoft 云安全基准:网络安全

NS-1:建立网络分段边界

功能

虚拟网络集成

说明:该服务支持部署到客户的专用虚拟网络 (VNet) 中。 了解详细信息

支持 默认启用 配置职责
True True Microsoft

配置指南:在默认部署上启用此配置时,不需要其他配置。

参考在 Azure Kubernetes 服务 中将 kubenet 网络与自己的 IP 地址范围配合使用(AKS)

网络安全组支持

说明:服务网络流量遵循其子网上的网络安全组规则分配。 了解详细信息

支持 默认启用 配置职责
True True Microsoft

配置指南:在默认部署上启用此配置时,不需要其他配置。

参考网络安全组

NS-2:通过网络控制保护云服务

功能

说明:用于筛选网络流量的服务原生 IP 筛选功能(不要与 NSG 或 Azure 防火墙混淆)。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:为支持专用链接功能的所有 Azure 资源部署专用终结点,为资源建立专用接入点。

参考创建专用Azure Kubernetes 服务群集

禁用公用网络访问

说明:该服务支持通过使用服务级别 IP ACL 筛选规则(而不是 NSG 或 Azure 防火墙)或使用“禁用公用网络访问”切换开关禁用公用网络访问。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:使用 Azure CLI 在专用Azure Kubernetes 服务群集上禁用公共 FQDN。

参考创建专用Azure Kubernetes 服务群集

Microsoft Defender for Cloud 监视

Azure Policy 内置定义 - Microsoft.ContainerService

名称
(Azure 门户)
说明 效果 版本
(GitHub)
应在 Kubernetes 服务上定义经授权的 IP 范围 通过仅向特定范围内的 IP 地址授予 API 访问权限,来限制对 Kubernetes 服务管理 API 的访问。 建议将访问权限限制给已获授权的 IP 范围,以确保只有受允许网络中的应用程序可以访问群集。 Audit、Disabled 2.0.1

身份管理

有关详细信息,请参阅 Microsoft 云安全基准:标识管理

IM-1:使用集中式标识和身份验证系统

功能

数据平面访问所需的 Azure AD 身份验证

说明:该服务支持将 Azure AD 身份验证用于数据平面访问。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:使用 Azure Active Directory(Azure AD)作为默认身份验证方法来控制数据平面访问。

参考AKS 托管的 Azure Active Directory 集成

数据平面访问的本地身份验证方法

说明:数据平面访问支持的本地身份验证方法,例如本地用户名和密码。 了解详细信息

支持 默认启用 配置职责
True False 客户

功能说明:请避免使用本地身份验证方法或帐户,应尽可能禁用这些方法。 请尽可能改用 Azure AD 进行身份验证。

配置指南:可以使用 Kubernetes 基于角色的访问控制(Kubernetes RBAC)或使用 Azure Active Directory 和 Azure RBAC 对 Kubernetes 群集进行身份验证、授权、保护和控制对 Kubernetes 群集的访问。

参考Azure Kubernetes 服务的访问和标识选项(AKS)

IM-3:安全且自动地管理应用程序标识

功能

托管标识

说明:数据平面操作支持使用托管标识进行身份验证。 了解详细信息

支持 默认启用 配置职责
True True Microsoft

功能说明:默认情况下,创建 AKS 群集时,系统分配的托管标识会自动创建。 如果不使用 Azure CLI 进行部署,但使用自己的 VNet、附加的 Azure 磁盘、静态 IP 地址、路由表或位于工作器节点资源组外部的用户分配的 kubelet 标识,建议使用用户分配的控制平面标识。

配置指南:在默认部署上启用此配置时,不需要其他配置。

参考在 Azure Kubernetes 服务 中使用托管标识

服务主体

说明:数据平面支持使用服务主体进行身份验证。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指导:Microsoft 目前未提供用于此功能配置的指导。 请检查并确定你的组织是否要配置此安全功能。

参考创建服务主体

IM-7:根据条件限制资源访问

功能

数据平面的条件访问

说明:可以使用 Azure AD 条件访问策略控制数据平面访问。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:定义工作负荷中 Azure Active Directory (Azure AD) 条件访问的适用条件和条件。 请考虑常见用例,例如阻止或授予来自特定位置的访问权限、阻止有风险的登录行为,或要求组织管理的设备用于特定应用程序。

参考

IM-8:限制凭据和机密的泄露

功能

服务凭据和机密支持 Azure 密钥保管库中的集成和存储

说明:数据平面本身支持使用 Azure 密钥保管库来存储凭据和机密。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:确保机密和凭据存储在安全位置(例如 Azure 密钥库),而不是将它们嵌入代码或配置文件中。

参考CSI 机密存储

特权访问

有关详细信息,请参阅 Microsoft 云安全基准:特权访问

PA-1:隔离和限制高特权/管理用户

功能

本地管理员帐户

说明:该服务具有本地管理员帐户的概念。 了解详细信息

支持 默认启用 配置职责
True False 客户

功能说明:请避免使用本地身份验证方法或帐户,应尽可能禁用这些方法。 请尽可能改用 Azure AD 进行身份验证。

配置指南:可以使用 Kubernetes 基于角色的访问控制(Kubernetes RBAC)或使用 Azure Active Directory 和 Azure RBAC 对 Kubernetes 群集进行身份验证、授权、保护和控制对 Kubernetes 群集的访问。

如果常规管理操作不需要,请禁用或限制任何本地管理员帐户,以便仅紧急使用。

参考Azure Kubernetes 服务的访问和标识选项(AKS)

PA-7:遵循 Just Enough Administration(最小特权)原则

功能

用于数据平面的 Azure RBAC

说明:可以使用 Azure 基于角色的访问控制 (Azure RBAC) 来管理对服务的数据平面操作的访问。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:使用 Azure 基于角色的访问控制(Azure RBAC)通过内置角色分配管理 Azure 资源访问。 可将 Azure RBAC 角色分配给用户、组、服务主体和托管标识。

参考将 Azure RBAC 用于 Kubernetes 授权

Microsoft Defender for Cloud 监视

Azure Policy 内置定义 - Microsoft.ContainerService

名称
(Azure 门户)
说明 效果 版本
(GitHub)
应在 Kubernetes 服务中使用 Azure 基于角色的访问控制 (RBAC) 若要针对用户可执行的操作提供精细筛选,请使用 Azure 基于角色的访问控制 (RBAC) 来管理 Kubernetes 服务群集中的权限并配置相关授权策略。 Audit、Disabled 1.0.3

PA-8:确定云提供商支持的访问流程

功能

客户密码箱

说明:客户密码箱可用于 Microsoft 支持访问。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:在 Microsoft 需要访问数据的支持方案中,使用客户密码箱查看,然后批准或拒绝每个 Microsoft 的数据访问请求。

参考适用于 Microsoft Azure 的客户密码箱

数据保护

有关详细信息,请参阅 Microsoft 云安全基准:数据保护

DP-1:发现、分类和标记敏感数据

功能

敏感数据发现和分类

说明:工具(如 Azure Purview 或 Azure 信息保护)可用于服务中的数据发现和分类。 了解详细信息

支持 默认启用 配置职责
False 不适用 不适用

配置指导:不支持使用此功能来保护此服务。

DP-2:监视针对敏感数据的异常情况和威胁

功能

数据丢失/丢失防护

说明:服务支持 DLP 解决方案来监视敏感数据移动(在客户的内容中)。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:如果需要符合数据丢失防护(DLP),可以使用基于主机的 DLP 解决方案从Azure 市场或 Microsoft 365 DLP 解决方案强制实施检测和/或预防控制,以防止数据外泄。

参考为容器启用 Microsoft Defender

DP-3:加密传输中的敏感数据

功能

传输中数据加密

说明:该服务支持数据平面的传输中数据加密。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:在内置传输加密功能的本机数据的服务中启用安全传输。 在任何 Web 应用程序和服务上强制实施 HTTPS,并确保使用 TLS v1.2 或更高版本。 应禁用旧版本,例如 SSL 3.0、TLS v1.0。 若要远程管理虚拟机,请使用 SSH(适用于 Linux)或 RDP/TLS(for Windows),而不是未加密的协议。

参考在 Azure Kubernetes 服务 上将 TLS 与入口控制器配合使用 (AKS)

Microsoft Defender for Cloud 监视

Azure Policy 内置定义 - Microsoft.ContainerService

名称
(Azure 门户)
说明 效果 版本
(GitHub)
Kubernetes 群集应只可通过 HTTPS 进行访问 使用 HTTPS 可确保执行身份验证,并保护传输中的数据不受网络层窃听攻击威胁。 此功能目前已面向 Kubernetes 服务 (AKS) 正式发布,并面向已启用 Azure Arc 的 Kubernetes 提供预览版。 有关详细信息,请访问 https://aka.ms/kubepolicydoc audit、Audit、deny、Deny、disabled、Disabled 8.1.0

DP-4:默认启用静态数据加密

功能

使用平台密钥进行静态数据加密

说明:支持使用平台密钥进行静态数据加密,任何客户静态内容都使用这些 Microsoft 托管密钥进行加密。 了解详细信息

支持 默认启用 配置职责
True False 客户

功能说明:基于主机的加密不同于服务器端加密(SSE),Azure 存储使用。 Azure 托管磁盘使用 Azure 存储在保存数据时自动加密数据。 基于主机的加密使用 VM 的主机在数据流经 Azure 存储之前处理加密。

配置指南:使用平台托管的(Microsoft 托管)密钥(未由服务自动配置)启用静态数据加密。

参考基于主机的加密Azure Kubernetes 服务(AKS)

DP-5:需要时在静态数据加密中使用客户管理的密钥选项

功能

使用 CMK 进行静态数据加密

说明:服务存储的客户内容支持使用客户管理的密钥进行静态数据加密。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:如果需要符合法规,请定义使用客户管理的密钥进行加密的用例和服务范围。 使用客户管理的密钥为这些服务启用和实施静态数据加密。

参考基于主机的加密Azure Kubernetes 服务(AKS)

DP-6:使用安全密钥管理流程

功能

Azure 密钥保管库中的密钥管理

说明:该服务支持任何客户密钥、机密或证书的 Azure 密钥库集成。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:使用 Azure 密钥库创建和控制加密密钥的生命周期,包括密钥生成、分发和存储。 根据定义的计划或在密钥停用或泄露时轮换和撤销 Azure 密钥库和服务中的密钥。 如果需要在工作负荷、服务或应用程序级别使用客户管理的密钥(CMK),请确保遵循密钥管理的最佳做法:使用密钥层次结构在密钥保管库中使用密钥加密密钥(KEK)生成单独的数据加密密钥(DEK)。 确保密钥注册到 Azure 密钥库,并通过服务或应用程序的密钥 ID 进行引用。 如果需要将自己的密钥(BYOK)引入服务(例如将受 HSM 保护的密钥从本地 HSM 导入 Azure 密钥库),请遵循建议的准则来执行初始密钥生成和密钥传输。

参考基于主机的加密Azure Kubernetes 服务(AKS)

DP-7:使用安全证书管理流程

功能

Azure 密钥保管库中的证书管理

说明:该服务支持任何客户证书的 Azure 密钥库集成。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:使用 Azure 密钥库创建和控制证书生命周期,包括创建、导入、轮换、吊销、存储和清除证书。 请确保证书生成遵循所定义的标准,不使用任何不安全的属性,例如:不足的密钥大小、过长的有效期、不安全的加密。 将 Azure 密钥保管库和 Azure 服务中的证书设置为根据所定义的计划或根据证书到期时间自动轮换(如果支持)。 如果应用程序不支持自动轮换,请确保它们在 Azure 密钥保管库和应用程序中仍使用手动方法进行轮换。

参考通过机密存储 CSI 驱动程序将 TLS 与自己的证书配合使用

资产管理

有关详细信息,请参阅 Microsoft 云安全基准:资产管理

AM-2:仅使用已获批准的服务

功能

Azure Policy 支持

说明:可以通过 Azure Policy 监视和强制实施服务配置。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:使用 Microsoft Defender for Cloud 配置 Azure Policy 来审核和强制实施 Azure 资源的配置。 使用 Azure Monitor 在资源上检测到配置偏差时创建警报。 使用 Azure Policy [拒绝] 和 [部署(如果不存在)]效果,以跨 Azure 资源强制实施安全配置。

参考AKS 内置 Azure Policy

日志记录和威胁检测

有关详细信息,请参阅 Microsoft 云安全基准:日志记录和威胁检测

LT-1:启用威胁检测功能

功能

适用于服务/产品的 Microsoft Defender

说明:服务具有特定于产品的 Microsoft Defender 解决方案,用于监视和警报安全问题。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:Microsoft Defender for Containers 是云原生解决方案,用于保护容器,以便改进、监视和维护群集、容器及其应用程序的安全性。

参考为容器启用 Microsoft Defender

Microsoft Defender for Cloud 监视

Azure Policy 内置定义 - Microsoft.ContainerService

名称
(Azure 门户)
说明 效果 版本
(GitHub)
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

LT-4:启用日志记录以进行安全调查

功能

Azure 资源日志

说明:服务生成可提供增强的服务特定指标和日志记录的资源日志。 客户可以配置这些资源日志并将其发送到其自己的数据接收器,例如,某个存储帐户或日志分析工作区。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:为服务启用资源日志。 例如,密钥库支持用于从密钥保管库获取机密的操作的其他资源日志,或者 Azure SQL 具有跟踪数据库请求的资源日志。 资源日志的内容因 Azure 服务和资源类型而异。

参考收集资源日志

态势和漏洞管理

有关详细信息,请参阅 Microsoft 云安全基准:状况和漏洞管理

PV-3:为计算资源建立安全配置

功能

自定义容器映像

Desription:服务支持使用用户提供的容器映像或来自市场的预生成映像,并预应用了某些基线配置。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:将 Azure 容器注册表 (ACR) 与 Azure Kubernetes 服务 (AKS)配合使用时,需要建立身份验证机制。 可以使用 Azure CLI、Azure PowerShell 和 Azure 门户在 ACR 和 AKS 之间配置所需的权限。 AKS 到 ACR 的集成将 AcrPull 角色分配给与 AKS 群集中的代理池关联的 Azure Active Directory (Azure AD) 托管标识。

参考将Azure 容器注册表与Azure Kubernetes 服务集成 - Azure Kubernetes 服务

PV-5:执行漏洞评估

功能

使用 Microsoft Defender 进行漏洞评估

Desription:可以使用 Microsoft Defender for Cloud 或其他 Microsoft Defender 服务嵌入式漏洞评估功能(包括 Microsoft Defender for server、容器注册表、App 服务、SQL 和 DNS)扫描服务来扫描漏洞扫描。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:默认情况下,通过Azure 门户启用计划时,Microsoft Defender for Containers 配置为自动安装所需的组件以提供计划提供的保护,包括分配默认工作区。

参考Azure Kubernetes 服务漏洞管理 - Azure Kubernetes 服务

备份和恢复

有关详细信息,请参阅 Microsoft 云安全基准:备份和恢复

BR-1:确保定期执行自动备份

功能

Azure 备份

说明:服务可由Azure 备份服务备份。 了解详细信息

支持 默认启用 配置职责
True False 客户

配置指南:以所需的频率和所需的保留期启用Azure 备份和配置备份源(例如 Azure 虚拟机、SQL Server、HANA 数据库或文件共享)。 对于 Azure 虚拟机,可以使用 Azure Policy 启用自动备份。

参考使用 Azure 备份 备份Azure Kubernetes 服务

服务本机备份功能

说明:该服务支持其自己的原生备份功能(如果未使用 Azure 备份)。 了解详细信息

支持 默认启用 配置职责
False 不适用 不适用

配置指导:不支持使用此功能来保护此服务。

后续步骤