Microsoft AZ-500: 密钥管理、加密技术和证书 — 学习指南
属于 Microsoft Azure Security Engineer Associate AZ-500 — 学习指南. 使用经过验证的答案练习: Microsoft 考试中心, 或参加限时模拟考试: ExamRoll.io.
概述
Azure 上的密钥管理以 Azure Key Vault 和 Azure Managed HSM 为中心。这些服务提供加密材料的安全存储、一致的 API 和可审计的操作,为静态加密、传输中加密和应用层加密奠定了基础。其运营目标是将密钥保管与应用程序运行时分离,通过限定范围的授权和网络来最小化爆炸半径(影响范围),并强制实施可恢复性和轮换以降低长期有效密钥的风险。
Azure Key Vault 和 Managed HSM 架构与授权
Azure Key Vault 架构
- 服务构成:多租户前端、用于数据平面的区域分区、每租户隔离以及由 Azure AD 支持的身份验证。密钥受软件保护(标准层)或 HSM 保护(高级层)。机密和证书始终受软件保护。
- 层级:标准层(软件密钥)用于通用目的和成本效益;高级层(HSM 支持的密钥)用于需要 FIPS 140-2 2/3 级等效保护或需要为密钥材料提供专用 HSM 边界的场景。当有法规要求或使用 “RSA-HSM” 或 “EC-HSM” 密钥时,请选择高级层。
- 软删除和清除保护:软删除始终开启,并具有可配置的保留期(7-90 天,通常为 90 天)。启用清除保护后,即使是高权限用户也无法在保留期结束前永久删除保管库或对象。操作理由:为任何支持客户管理的密钥 (CMK) 的保管库启用清除保护。若不启用,意外或恶意的清除操作可能导致依赖数据(例如,使用该密钥加密的存储或数据库)变得不可恢复。
- 恢复:可以列出和恢复已删除的保管库对象;支持保管库级别的恢复。备份会生成加密的 Blob,可以将其还原到同一 Azure 区域和云中的兼容保管库。理由:定期导出密钥备份并将其单独安全存放;测试还原以验证 RTO。
授权模型
- 权限模型:保管库访问策略(旧版)与 Azure RBAC(推荐)。
- 访问策略:按保管库定义;为密钥、机密和证书授予精细权限。最适用于需要为一小部分主体提供非常严格的、特定于对象类型的运行时权限的场景。
- Azure RBAC:将保管库的权限模型设置为“Azure 基于角色的访问控制”,以使用 RBAC 数据平面角色。优点:可在订阅/资源组/保管库级别设置范围;符合 PIM 条件的分配;集中式治理和审计。推荐用于新部署和管理操作。
- 内置保管库角色(示例):Key Vault 管理员(完全管理权限)、Key Vault 加密专员(管理密钥但不能管理访问策略)、Key Vault 机密专员、Key Vault 证书专员、Key Vault 读取者。操作指南:
- 在委派访问模型和网络 ACL 的配置时,使用 RBAC(例如,Key Vault 管理员)。
- 对于单个保管库中证书的插入/删除操作,使用访问策略或数据平面 RBAC 角色(如 Key Vault 证书专员)以实现最小权限。
- 范围设计:优先在保管库范围分配 RBAC,以避免权限过高。仅当多个保管库共享相同的操作团队时才使用资源组范围;避免为运行时访问进行订阅范围的分配。
Managed HSM
- 架构和安全域:Managed HSM 是为每个客户提供的单租户、经过 FIPS 140-2 3 级验证的 HSM 集群。安全域保护集群密钥材料的可移植性;跨集群的备份/还原需要达到安全域私钥的法定人数。理由:生成域密钥并将其托管给不同的保管人;测试还原到灾备 (DR) HSM。
- 角色模型:与 Azure RBAC 集成。角色包括 Managed HSM 管理员、加密专员、加密用户和读取者。职责分离:管理员管理集群;加密专员管理密钥;加密用户使用密钥进行操作。
- 高可用性:通过多个 HSM 分区和有 SLA 支持的服务实现区域冗余;在支持的区域中提供可用区冗余。对于跨区域的灾难恢复,依赖于备份 + 安全域。
- 使用场景:支付处理、代码签名、用于信封加密的密钥包装,以及需要 3 级 HSM 边界的受监管工作负载。
对象与生命周期:密钥、机密、证书和轮换
密钥、机密、证书
- 密钥:用于加密操作(签名、验证、包装/解包、加密/解密)。根据算法强度和性能要求选择密钥类型/大小(例如,为满足合规性选择 RSA 3072/4096,为追求性能选择 ECC P-256/P-384)。
- 机密:任意字节/字符串,如密码、连接字符串和 API 令牌。不用于加密操作。
- 证书:带有私钥的 X.509 证书。同时存储为证书对象和相应的机密(PFX/PEM)。可用于 TLS/MTLS 和代码签名的生命周期管理。
生命周期操作和轮换
- 版本控制:每次设置或导入都会生成一个不可变的版本。应用程序应根据变更管理的需求,引用带版本的机密以获得确定性行为,或引用无版本的 URI 以自动获取最新版本。
- 轮换策略:
- 密钥:对于支持无版本密钥 URI 的 Azure 服务(例如 Storage、SQL TDE、AKV 管理的机密),首选使用无版本密钥 URI。通过添加新版本来轮换;支持的服务会自动重新绑定。如果服务需要固定版本,则需自动化一个重新配置步骤。通过 AKV 轮换策略和警报来强制执行轮换。
- 机密:通过由 Event Grid 通知触发的 Azure Automation、Functions 或 Logic Apps 进行轮换,或使用提供商原生的轮换功能(例如,轮换 SAS 或数据库密码)。尽可能用托管标识替换静态机密,以避免长期存在的静态机密。
- 证书:定义带有“生命周期操作”的证书策略,以在到期前自动续订;使用集成的颁发者实现无接触式续订。
证书管理
- 导入/生成:导入现有的 PFX/PEM(带私钥),或生成一个 CSR 并让 Key Vault 使用已配置的 CA 完成颁发。
- 自动续订和颁发者:通过 Key Vault 配置 DigiCert、GlobalSign 或企业 Microsoft CA 等颁发者。启用自动续订,并设置通知和续订阈值。
- 应用程序集成:
- App Service 和 Functions:使用带有托管标识的 Key Vault 引用;平台会自动同步轮换后的机密。
- Application Gateway/WAF:从 Key Vault 引用证书机密 ID;网关会自动获取新版本。
- AKS:通过 Secrets Store CSI 驱动程序和 Azure Key Vault 提供程序挂载证书。
用于最低权限证书操作的 RBAC 分配示例:
az role assignment create \
--assignee <userObjectId> \
--role "Key Vault Certificates Officer" \
--scope $(az keyvault show -n kv-prod --query id -o tsv)
网络安全与服务集成
Key Vault 网络
- 防火墙规则:设置为“选定网络”以限制到已批准的源。原因:即使有有效令牌,也能阻止来自互联网的流量。
- 虚拟网络服务终结点:允许来自特定子网的流量,无需专用 IP。启用简单,减少暴露面。当您需要快速隔离且不需要更改 DNS 时使用。
- 专用终结点:在您的 VNet 中为保管库分配一个专用 IP,以实现真正的专用连接。阻止公共网络访问。原因:最强的数据泄露控制,高信任环境和出站互联网受限时必需。
- 受信任的服务:“允许受信任的 Microsoft 服务”让特定的 Azure 服务能够在网络限制下访问保管库。在轮换期间扫描存储加密密钥等场景中是必需的。应谨慎启用并记录依赖关系。
客户管理的密钥 (CMK) 和密钥 URI
- 支持的服务:Azure Storage、SQL Database (TDE)、Synapse、Databricks、AKS 静态机密加密、App Configuration、Event Hubs、Service Bus 以及通过 Disk Encryption Set 实现的 Managed Disks。
- 密钥 URI 策略:
- 无版本 URI:当服务支持在新密钥版本上自动重新绑定时首选;可实现无缝轮换,无需更新服务。
- 有版本 URI:某些服务需要;需将服务配置更新自动化,并与轮换事件绑定。
- 轮换模式:
- 交错轮换:创建新密钥版本;验证服务可以访问;监控错误;然后在安全期后选择性地禁用旧版本。
- 事件驱动:在 key-new-version 事件上使用 Event Grid 来触发验证或服务重新配置工作流。
信封加密集成
- Azure 服务在本地使用数据加密密钥 (DEK)(例如 AES-256),并使用 Key Vault/HSM 中的密钥加密密钥 (KEK) 来包装 DEK。在操作上,要确保 KEK 的可用性和网络访问,因为丢失或访问受阻可能导致服务操作停滞。
示例:使用 AKV 密钥包装 DEK
# base64-encode a 32-byte DEK; wrap using RSA-OAEP
az keyvault key wrap-key \
--vault-name kv-prod \
--name app-kek \
--algorithm RSA-OAEP \
--value $(openssl rand -base64 32)
密码学、静态数据加密选项与密钥卫生
核心密码学概念
- 对称加密:使用单个密钥进行加密/解密(例如,AES-GCM/CTR)。速度快,是批量数据的理想选择。
- 非对称加密:公钥/私钥对(RSA/ECC)用于密钥交换和签名。速度较慢,是建立信任和包装 DEK 的理想选择。
- 哈希:单向摘要(例如,SHA-256)。用于保证完整性,而非加密。
- 签名:私钥生成签名,公钥进行验证。提供不可否认性和完整性。
- 信封加密:将非对称 KEK 与对称 DEK 相结合,以提高性能并隔离密钥保管权。
Azure Disk Encryption 和存储加密
- 托管磁盘默认加密:使用平台管理的密钥(PMK)进行服务器端加密(SSE)。运维开销极小。
- 使用 Disk Encryption Set (DES) 的 CMK:为磁盘、快照和映像使用引用 Key Vault 或 Managed HSM 密钥的 DES。原因:集中化的密钥生命周期控制和撤销;满足客户控制的合规性要求。
- ADE (Azure Disk Encryption):在虚拟机内部使用 BitLocker (Windows) 或 dm-crypt (Linux)。当需要操作系统级别的加密态势、绑定到域的磁盘级密钥保护程序或满足现有合规性要求时使用。运维权衡:更高的复杂性、扩展管理以及对虚拟机配置的潜在影响。
- 双重加密:
- 磁盘:在基础架构层将 SSE 与 PMK 相结合,并通过 DES 使用 CMK,以实现两个独立的加密层。
- 存储帐户:为每个容器/工作负载使用具有独立 CMK 的加密范围;在可用时与基础架构加密相结合以实现双层加密。
- 加密范围 (Azure Storage):为每个容器或每个 Blob 定义具有不同 CMK 的范围,以隔离租户/工作负载风险,并实现有针对性的轮换而不会产生广泛影响。
密钥卫生与操作实践
- 托管标识:为 Azure 资源使用系统分配或用户分配的托管标识,以获取用于 Key Vault 和其他服务的令牌,从而消除嵌入式凭证。严格限定 RBAC 或访问策略的范围。
- 密钥扫描:启用 Microsoft Defender for DevOps、GitHub Advanced Security 密钥扫描和存储库保护。与拉取请求集成,以阻止已知的凭证模式。
- 管道和 IaC:在 Azure Pipelines 中使用 Key Vault 任务集成,并在 GitHub Actions 中使用基于 OIDC 的联合凭证,以避免持久化密钥。不要在日志中打印密钥;对输出进行掩码处理。立即轮换任何泄露的材料。
- 应用设计:在安全的情况下优先使用无版本引用;最小化缓存,并通过重新获取令牌和重新拉取密钥来处理 401/403 错误,以支持密钥轮换事件。
证书管理深度解析
- 策略驱动的颁发:在 Key Vault 证书策略中定义主题、SAN、密钥用法、EKU、密钥类型/大小以及密钥重用设置。原理说明:在整个环境中保持一致的 TLS 状态。
- 颁发者集成:在 Key Vault 中配置一个 CA 配置文件。对于私有 PKI,通过自定义颁发者与 Microsoft ADCS 集成,或使用 Azure Key Vault 的证书连接器 (Certificate Connector)。公共 CA 允许自动续订,而无需在 AKV 之外暴露私钥。
- 自动续订操作:使用生命周期操作(例如,在到期前 60 天续订;在 90 天时通知)。在运营上,使续订窗口与变更冻结期保持一致,并确保依赖的服务自动同步。
- 应用程序使用:作为机密 (PFX/PEM) 检索,或在平台服务中通过引用绑定。优先选择平台原生绑定(App Service、Application Gateway),以便在新版本上实现零停机切换。对于 Kubernetes,通过 CSI 挂载,以在轮换时触发滚动重启。
实际问题场景
Siemens AG 必须保护 Azure 中的物联网遥测数据,对静态数据强制执行严格的密钥保管,并在全球分布的设备群中自动轮换证书和机密。
- 建立保管库和 HSM 边界
- 为应用程序机密/证书创建区域性 Premium Key Vault,并为 KEK 操作创建一个 Managed HSM。
- 原理说明:Premium 保管库可在需要时启用 HSM 支持的密钥;Managed HSM 为包装操作提供 3 级保障和独立的密钥保管。
- 强制实施可恢复性和护栏策略
- 在所有保管库和 Managed HSM 上启用清除保护 (purge protection);将软删除保留期设置为 90 天。应用 Azure Policy 来审核/拒绝没有清除保护的保管库。
- 原理说明:防止因清除操作导致的灾难性数据丢失;策略确保不会发生配置漂移。
- 使用 RBAC 集中授权
- 将保管库设置为 Azure RBAC 权限模型。通过 PIM 将 Key Vault 管理员角色分配给一个小的平台团队;在保管库范围内将 Key Vault 机密官角色分配给应用团队;将 Managed HSM 加密官角色分配给安全工程师。
- 原理说明:RBAC + PIM 实现了最小权限、限时提升和一致的审计。职责分离可防止管理员使用密钥。
- 使用私有终结点锁定网络
- 在中心 VNet 中创建私有终结点;禁用公共网络访问。仅为使用 CMK 的 Storage 帐户启用“受信任的服务”。
- 原理说明:私有终结点消除了公共暴露并阻止了数据泄露路径,同时保留了必要的服务到保管库的流量。
- 实施 CMK 和加密策略
- 对于 Storage,在 Premium 保管库中为每个工作负载定义带有无版本 KEK URI 的加密范围;对于 Managed Disks,使用带有来自 HSM 的 CMK 的磁盘加密集。启用基础设施级别加密以实现双重加密。
- 原理说明:每个工作负载使用独立的密钥可减小爆炸半径;无版本 URI 可实现无缝轮换;双重加密满足严格的合规性要求。
- 自动化密钥和机密轮换
- 配置 AKV 密钥轮换策略(例如,年度到期,在 9 个月时轮换)和触发验证作业的 Event Grid 通知。在服务中使用托管标识;移除静态凭据。
- 原理说明:可预测的自动化轮换降低了长寿命密钥和机密带来的风险;托管标识取代了脆弱的共享机密。
- 证书的运营化
- 使用集成了 DigiCert 颁发者的 Key Vault 证书策略;设置在到期前 60 天自动续订。在 Application Gateway 和 App Service 中通过引用绑定证书。
- 原理说明:自动续订可防止服务中断并避免手动处理密钥;平台绑定无需重新部署即可获取新版本。
- 验证和监控
- 将 Key Vault 和 Managed HSM 诊断日志发送到 Log Analytics;对未经授权的尝试、防火墙拒绝和即将到期的事件发出警报。使用安全域仲裁对保管库和 HSM 备份进行季度性还原测试。
- 原理说明:持续监控可及时发现配置错误或攻击;还原测试确保在压力下的可恢复性。
← 数据、存储和数据库安全 · 所有领域 · 安全态势管理和治理 →
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →