Azure Kubernetes 服务(AKS)将敏感数据(例如 Kubernetes 机密)存储在 etcd 中,这是 Kubernetes 使用的分布式密钥值存储。 为了增强安全性和符合性要求,AKS 支持使用与 Azure Key Vault 集成的 Kubernetes 密钥管理服务(KMS)提供程序对 Kubernetes 机密进行静态加密。
本文介绍可用于在 AKS 中保护 Kubernetes 机密的关键概念、加密模型和密钥管理选项。
了解静态数据加密
静态数据加密在磁盘上存储时会保护数据。 如果没有静态加密,获得基础存储访问权限的攻击者可能会读取 Kubernetes 机密等敏感数据。
AKS 为存储在 etcd 中的 Kubernetes 机密提供加密:
| 层 | Description |
|---|---|
| Azure 平台加密 | Azure 存储使用 256 位 AES 加密自动加密静态所有数据。 始终启用此加密,并且对用户是透明的。 |
| KMS 供应商加密 | 在将 Kubernetes 机密写入 etcd 之前,使用存储在 Azure Key Vault 中的密钥进行加密的可选层。 |
有关 Azure 静态加密功能的详细信息,请参阅 Azure 静态数据加密 和 Azure 加密模型。
用于数据加密的 KMS 提供程序
Kubernetes KMS 提供程序是一种机制,它允许使用外部密钥管理系统对 Kubernetes 机密进行静态加密。 AKS 与 Azure Key Vault 集成以提供此功能,可让你控制加密密钥,同时维护托管 Kubernetes 服务的安全优势。
KMS 加密的工作原理
为 AKS 群集启用 KMS 时:
- 机密创建:创建机密时,Kubernetes API 服务器会将机密数据发送到 KMS 提供程序插件。
- 加密:KMS 插件使用数据加密密钥(DEK)加密机密数据,该密钥本身使用存储在 Azure Key Vault 中的密钥加密密钥(KEK)进行加密。
- 存储:加密的机密存储在 etcd 中。
- 机密检索:读取机密时,KMS 插件使用 Azure Key Vault 中的 KEK 解密 DEK,然后使用 DEK 解密机密数据。
此信封加密方法提供安全性和性能优势。 DEK 在本地处理频繁的加密作,而 Azure Key Vault 中的 KEK 提供硬件支持的密钥管理系统的安全性。
密钥管理选项
AKS 为 KMS 加密提供了两个密钥管理选项:
平台管理的密钥(PMK)
使用平台管理的密钥,AKS 会自动为你管理加密密钥:
- AKS 创建和管理 Azure Key Vault 和加密密钥。
- 密钥轮换由平台自动处理。
- 无需其他配置或密钥保管库设置。
何时使用平台管理的密钥:
- 您希望最简单的设置,且配置要求最少。
- 没有特定法规要求您管理客户密钥。
- 您希望无需手动干预即可实现密钥的自动轮换。
客户管理的密钥 (CMK)
使用客户管理的密钥,可以完全控制加密密钥:
- 创建和管理自己的 Azure Key Vault 和加密密钥。
- 你可以控制密钥轮换计划和策略。
何时使用客户管理的密钥:
- 你具有要求客户管理的密钥的法规或合规性要求。
- 需要控制密钥生命周期,包括轮换计划和密钥版本。
- 您需要对所有关键操作进行审核日志。
Key Vault 网络访问选项
使用客户管理的密钥时,可以为 Azure Key Vault 配置网络访问:
| 网络访问 | Description | 用例 |
|---|---|---|
| 公共 | 可通过公共 Internet 访问 Key Vault 并进行身份验证。 | 开发环境,简化设置过程 |
| 专用 | Key Vault 已禁用公用网络访问。 AKS 通过 受信任的服务防火墙例外访问密钥保管库。 | 生产环境,增强安全性 |
比较加密密钥选项
| 功能 / 特点 | 平台托管的密钥 | 客户管理的密钥(公共) | 客户管理的密钥(专用) |
|---|---|---|---|
| 密钥所有权 | Microsoft管理 | 客户进行管理 | 客户进行管理 |
| 密钥轮换 | 自动 | 用户可配置 | 用户可配置 |
| 密钥保管库创建 | 自动 | 客户创建 | 客户创建 |
| 网络隔离 | N/A | 否 | 是的 |
要求
- 使用 平台管理的密钥或客户管理的密钥,且具有自动密钥轮换功能的新 KMS 加密功能 需要 Kubernetes 版本 1.33 或更高版本。
- 只有在使用托管标识作为群集标识的AKS群集上,才支持使用平台管理密钥或具备自动密钥轮换的客户管理密钥的新KMS加密体验。
局限性
- 无降级:启用新的 KMS 加密体验后,无法禁用该功能。
- 密钥删除:删除加密密钥或密钥保管库会使机密无法恢复。
- 专用终结点访问:尚不支持使用 专用链接/终结点 进行密钥保管库访问。 对于私钥保管库,请使用 受信任的服务防火墙例外。