PCI DSS 4.0.1 的 AKS 管控群集的加密和密钥管理

本文介绍根据支付卡行业数据安全标准(PCI DSS 4.0.1)配置的 Azure Kubernetes 服务(AKS)群集的加密和密钥管理注意事项。

本文是一系列文章的其中一篇。 阅读 简介

此体系结构和实现侧重于基础结构,而不是工作负荷。 本文提供了一般注意事项和最佳做法,可帮助你做出设计决策。 请遵循官方 PCI-DSS 4.0.1 标准中的要求,并在适用的情况下使用本文作为其他信息。

重要

该指南和随附的实现基于中心辐射型网络拓扑的 AKS 基线体系结构为基础。 中心虚拟网络包含用于控制出口流量的防火墙、来自本地网络的网关流量,以及用于维护的第三个网络。 辐射虚拟网络包含 AKS 群集,该群集提供卡持有者环境(CDE),并托管 PCI DSS 工作负荷。

即将推出 GitHub 徽标 参考实现:适用于 PCI DSS 4.0.1 的受管制工作负载参考实现的 Azure Kubernetes 服务(AKS)基线群集目前正在更新,即将推出。 此实现将演示一个受监管的基础结构,该基础结构演示了 CDE 中各种网络安全控制的使用。 这包括本机到 Azure 的网络控件,以及 Kubernetes 的本机控制。 它还将包括一个应用程序,用于演示环境与示例工作负荷之间的交互。 本文的重点在于基础结构。 该示例不会指示实际 PCI-DSS 4.0.1 工作负荷。

保护持卡人数据

注释

本文已针对 PCI DSS 4.0.1 进行了更新。 主要更改包括对自定义控制方法的支持、增强的多重身份验证(MFA)、更新的加密要求、扩展的监视和日志记录,以及专注于持续安全性和风险管理。 确保查看官方 PCI DSS 4.0.1 文档 ,了解完整详细信息和未来日期的要求。

要求 3:保护存储的持卡人数据(继续)

AKS 功能支持

AKS 提供了多项功能,可帮助你满足 PCI DSS 4.0.1 加密和密钥管理要求:

  • Azure Key Vault: 保护加密密钥、机密和证书的存储和管理。 与 AKS 集成,适用于工作负荷和群集级机密。
  • 托管标识: 允许 AKS 工作负载安全地访问 Key Vault,而无需在代码中存储凭据。
  • TLS 强制: AKS 支持对所有入口/出口流量强制实施 TLS 1.2+ 。
  • 与 HSM 集成: Azure Key Vault 可由硬件安全模块 (HSM) 提供支持,以便符合 FIPS 140-2 级别 3。
  • 自动密钥轮换: Azure Key Vault 支持自动密钥轮换和警报。

要求 3.5

记录和实施用于保护存储持卡人数据的密钥免受泄露和滥用的威胁的过程。

你的责任

Requirement 职责
要求 3.5.1 仅对服务提供商的其他要求:维护加密体系结构的记录说明,其中包括用于保护持卡人数据的所有算法、协议和密钥的详细信息。
要求 3.5.2 将对纯文本加密密钥的访问限制为所需的最少数量的保管人。
要求 3.5.3 存储用于加密/解密以下表单中的一个或多个形式的持卡人数据的机密和私钥。

要求 3.5.1

仅对服务提供商的其他要求:维护加密体系结构的记录说明,其中包括用于保护持卡人数据的所有算法、协议和密钥的详细信息。

你的责任

如果你是服务提供商,请维护加密体系结构的综合文档。 本文档应包括:

  • 用于持卡人数据保护的所有加密算法。
  • 为安全通信实现的协议。
  • 密钥管理过程和密钥生命周期管理。
  • 与 Azure Key Vault 和其他加密服务的集成点。
  • 符合当前的行业标准和 PCI DSS 要求。

使用 Azure Key Vault 集中管理密钥,并维护所有加密作的审核线索。 记录 AKS 工作负载与 Azure Key Vault 之间的集成,包括使用托管标识的身份验证方法。

要求 3.5.2

将对纯文本加密密钥的访问限制为所需的最少数量的保管人。

你的责任

实现加密密钥访问的最低特权原则:

  • 使用 Azure Key Vault 访问策略和 Azure RBAC 限制对加密密钥的访问。
  • 为 AKS 工作负载实现托管标识以访问 Key Vault 而不存储凭据。
  • 定期查看和审核对加密密钥的访问。
  • 为关键管理作实施适当的职责分离。
  • 使用 Azure Key Vault 的内置日志记录和监视功能跟踪密钥访问。

使用适当的访问策略配置 Azure Key Vault,这些策略仅限制对必要主体的访问。 使用 Azure RBAC 角色(如“Key Vault Crypto Officer”和“Key Vault Crypto User”)实现精细访问控制。

要求 3.5.3

存储用于加密/解密以下表单中的一个或多个形式的持卡人数据的机密和私钥。

你的责任

确保所有机密和私钥都使用批准的方法之一安全地存储:

  • 在加密设备(例如硬件安全模块(HSM)或 PCI 批准的交互点设备中:将 Azure Key Vault 高级层与 HSM 支持的密钥配合使用,以便符合 FIPS 140-2 级别 3。
  • 在安全加密令牌(如硬件令牌)中:实现基于硬件的密钥存储解决方案。
  • 通过密钥加密密钥进行加密:使用 Azure Key Vault 的信封加密功能。
  • 拆分知识和双重控制:实现敏感作的多人控制机制。

Azure Key Vault 通过 CSI 机密存储驱动程序与 AKS 集成,允许将密钥和机密直接检索到 Pod 文件系统或环境变量中。

要求 3.6

完全记录并实施用于加密持卡人数据的加密密钥的所有密钥管理过程和过程。

你的责任

Requirement 职责
要求 3.6.1 生成强加密密钥。
要求 3.6.2 安全加密密钥分发。
要求 3.6.3 保护加密密钥存储。
要求 3.6.4 已到达其加密结束的密钥的加密密钥更改。
要求 3.6.5 当密钥的完整性被削弱或密钥被怀疑遭到入侵时,已认为有必要停用或替换密钥。
要求 3.6.6 如果使用手动明文加密密钥管理作,则使用拆分知识和双重控制来管理这些作。
要求 3.6.7 防止未经授权的加密密钥替换。
要求 3.6.8 如果密钥已知或疑似遭到入侵,则替换加密密钥。

要求 3.6.1

生成强加密密钥。

你的责任

实施强大的关键生成做法:

  • 使用 Azure Key Vault 的加密安全随机数生成。
  • 遵循关键强度的行业标准(最低为 2048 位 RSA、256 位 AES)。
  • 为密钥生成实现适当的 entropy 源。
  • 使用 Azure Key Vault Premium 中的 HSM 支持的密钥增强安全性。
  • 记录密钥生成过程并确保它们满足 PCI DSS 要求。

将 Azure Key Vault 配置为使用适当的算法和密钥大小生成密钥。 使用 Azure Key Vault REST API 或 Azure CLI 创建具有特定参数的密钥。

要求 3.6.2

安全加密密钥分发。

你的责任

实现安全密钥分发机制:

  • 使用 Azure Key Vault 的安全密钥分发功能。
  • 为 AKS 工作负载实现托管标识,以安全地访问密钥。
  • 对所有密钥分发通信使用 TLS 1.2+ 。
  • 为密钥访问实现适当的身份验证和授权。
  • 监视和记录所有密钥分发活动。

在 AKS 中配置 CSI 机密存储驱动程序,以安全地将密钥从 Azure Key Vault 分发到工作负荷。 使用 Pod 标识或工作负荷标识通过 Key Vault 进行身份验证。

要求 3.6.3

保护加密密钥存储。

你的责任

确保加密密钥的安全存储:

  • 使用适当的访问控制将所有密钥存储在 Azure Key Vault 中。
  • 使用 HSM 支持的密钥增强安全性。
  • 为密钥实现适当的备份和恢复过程。
  • 使用 Azure Key Vault 的软删除和清除保护功能。
  • 定期查看和审核密钥存储配置。

使用适当的安全设置配置 Azure Key Vault,包括防火墙规则、专用终结点和访问策略。 为所有密钥存储作启用日志记录和监视。

要求 3.6.4

已到达其加密结束的密钥的加密密钥更改。

你的责任

实现密钥轮换过程:

  • 为不同类型的密钥定义适当的加密。
  • 使用 Azure Key Vault 的功能实现自动密钥轮换。
  • 记录密钥轮换过程和计划。
  • 定期测试密钥轮换过程。
  • 监视密钥过期并确保及时轮换。

使用 Azure Key Vault 的自动密钥轮换功能,并为密钥过期设置警报。 实现应用程序逻辑以无缝处理密钥轮换。

要求 3.6.5

当密钥的完整性被削弱或密钥被怀疑遭到入侵时,已认为有必要停用或替换密钥。

你的责任

实现关键泄露响应过程:

  • 定义密钥泄露检测和响应的过程。
  • 实现即时密钥替换功能。
  • 记录密钥泄露响应过程。
  • 定期测试密钥泄露响应过程。
  • 监视密钥泄露的迹象。

配置 Azure Key Vault 以支持快速更换密钥,并实施监视来检测潜在的密钥泄露。

要求 4:在通过开放、公用网络传输期间使用强加密保护持卡人数据

AKS 功能支持

AKS 提供了多种功能来帮助满足 PCI DSS 4.0.1 数据传输要求:

  • TLS 终止: AKS 入口控制器支持 TLS 1.2+ 终止。
  • 服务网格: 与 Istio 等服务网格解决方案集成,实现相互 TLS (mTLS)。
  • 网络策略: 用于安全内部通信的 Kubernetes 网络策略。
  • Azure Front Door: 与 Azure Front Door 集成,以提高安全性和性能。

你的责任

Requirement 职责
要求 4.1 确保在通过开放传输期间使用强加密保护持卡人数据的安全策略和作过程、公共网络记录、使用和已知所有受影响的各方。
要求 4.2 强加密和安全协议用于在通过开放的公共网络传输期间保护敏感持卡人数据。

要求 4.1

确保在通过开放传输期间使用强加密保护持卡人数据的安全策略和作过程、公共网络记录、使用和已知所有受影响的各方。

你的责任

记录并实施全面的数据传输加密策略:

  • 定义批准的加密标准和协议(TLS 1.2+)。
  • 证书管理和续订的文档过程。
  • 为 TLS 证书实现适当的密钥管理。
  • 培训工作人员进行安全传输过程。
  • 定期查看和更新加密策略。

使用 Azure Key Vault 管理 TLS 证书,并与 AKS 入口控制器集成,以便进行自动证书预配和续订。

要求 4.2

强加密和安全协议用于在通过开放的公共网络传输期间保护敏感持卡人数据。

你的责任

为传输中的数据实现强加密保护:

  • 对所有持卡人数据传输使用 TLS 1.2 或更高版本。
  • 实现正确的证书验证和主机名验证。
  • 配置安全密码套件并禁用弱协议。
  • 实现内部服务通信的相互 TLS (mTLS)。
  • 监视和记录所有安全传输活动。

配置 AKS 入口控制器以强制实施 TLS 1.2+ 并为内部 mTLS 通信实现服务网格解决方案。

后续步骤

实施全面的标识和访问控制控制,包括增强的 MFA 要求。

有关详细信息,请查看官方 PCI DSS 4.0.1 文档