Microsoft Cloud for Sovereignty 中的密钥管理和证书管理

加密身份验证和加密是满足机密性、隐私和数据主权要求的有效策略。 但是,这些解决方案的有效性取决于基础加密技术和操作流程的安全性和复原能力。 本文介绍了在计划使用加密密钥和数字证书来保护要迁移到云的工作负荷时,您应该熟悉的概念。

密钥管理

加密材料在 Azure 中使用 Azure Key Vault 进行存储和管理,它在多租户和单租户部署模式下均可用。 Azure Key Vault (AKV) 在由 FIPS 140 验证的硬件安全模块支持的多租户服务中提供云原生密钥、机密和证书管理。 Azure Key Vault 托管 HSM 是一项单租户服务,为您提供对组织的安全域和相关加密密钥的完全管理控制。

有效密钥管理的建议

平台控制虽然势在必行,但并不是有效密钥管理的唯一一面。 Microsoft 还提出了一些进行有效密钥管理的最佳方法。

访问控制

如果您使用 Azure Key Vault 的标准或高级 SKU,我们建议为每个应用程序、环境和区域部署一个保管库,以强制执行最低权限。 如果您使用的是托管 HSM,部署较少数量的集中保管库来管理成本可能是首选。 不论您部署的是什么 SKU,都必须使用基于角色的访问控制 (RBAC) 严格管理保管库访问,并确保每个保管库中的访问策略遵循最低权限原则。 我们建议使用 Azure RBAC 预定义角色向特定范围(如订阅、资源组或特定密钥保管库)的用户、组和应用程序授予访问权限。 控制访问至关重要,建议在管理和数据层面实施访问控制。

备份和还原

您需要在 HSM 级别针对特定密钥进行定期备份。 我们建议您配置软删除和清除保护功能,以防止意外和恶意删除。 Azure Monitor 已与托管 HSM 完全集成,建议用来监视和记录对密钥保管库的访问。 有关详细信息,请参阅 Azure 托管 HSM 最佳做法

密钥轮换

确保定期轮换客户管理的密钥 (CMK),轮换频率由组织的策略确定。 如果具有密钥访问权限的管理员离开或更改角色,或者任何 CMK 遭到泄露,也应轮换密钥。 通过 Azure Key VaultAzure 托管 HSM 支持自动轮换。 如果可能,确保轮换过程自动执行,无需任何人为交互即可执行,并经过测试以确保有效性。 在密钥泄露等紧急情况下,您需要一个强大的系统来立即重新生成机密信息。 如果此过程的自动化不可行,我们建议设置警报来防止证书过期和中断。

备注

虽然支持为机密 VM 轮换 CMK,但还不支持自动化过程。 您可以在此处查看更多建议。

有些客户表示有兴趣通过将密钥存储在外部 HSM 中(在第三方云上或本地),将密钥与数据分离。 虽然此步骤似乎是从管理本地环境的自然过渡,但外部 HSM 可能会在身份、网络和软件层引入新的风险。 外部 HSM 还可能增加性能风险,并带来诸如延迟导致的网络问题、第三方 HSM 问题导致的 SLA 问题以及维护和培训成本等问题。 此外,第三方 HSM 可能不会提供软删除和清除保护等重要功能。

有关主权登陆区域 (SLZ) 中内置的强制实施适当密钥管理做法的技术控制的更多信息,请参阅策略组合

证书管理

数字安全证书被广泛用于保护云应用程序通信。 随着越来越多的工作负荷迁移到云中,与证书管理活动(包括发放、轮换和吊销证书)相关的开销可能会迅速增长。 计划将工作负荷迁移到 Microsoft Cloud for Sovereignty 的客户应了解其数字安全证书场景,以可以作为云迁移的一部分制定证书管理计划。

常见数字证书场景

本节介绍使用数字证书保护通信的常见云场景。

网站身份验证和加密

网站使用 TLS 证书验证访问者的身份和加密通信。 公共网站通常使用来自公共证书颁发机构 (CA) 的证书,但组织通常对未向公众公开的网站使用来自私人 CA 的证书。 在任何一种情况下,网站的证书都必须在过期或证书的完整性出现问题时续订。 对于具有大型网络的组织来说,管理这些证书可能需要大量的计划和努力。

服务身份验证

分散式应用程序和微服务通常使用无状态会话模型,这允许灵活处理应用程序请求,但同时可能需要额外的身份验证和加密来降低安全风险。 证书通常用于应用程序层和组件之间的相互身份验证。 通常,这些组件由分散的应用程序开发团队管理,这使得数字证书的管理难以在整个企业进行跟踪和监视。

基础结构身份验证

服务器和网络设备经常使用客户端证书在公司网络和维护活动中进行身份验证。 使用 Active Directory 或 Kerberos 等解决方案的组织通常必须为部署的基础结构管理客户端证书。

其他证书场景

终结点管理解决方案通常使用设备证书对 PC、笔记本电脑和移动设备等最终用户设备进行身份验证。 代码签名证书作为组织应用程序安全方法的一部分,在开发环境中用于验证软件的发布者。

云中的证书生命周期管理

平台托管证书与客户托管证书

为为传输中的数据提供加密的 Azure PaaS 服务通常使用平台管理的数字证书实现加密,该证书与创建资源时分配的默认主机名关联。 如果您要将自定义域名与部署到云的资源一起使用,您需要配置外部用户访问服务时可以使用的证书。 对于未配置为使用自定义域名的 Azure 服务之间的服务内通信,平台托管证书是加密传输中数据的默认方式。 如果您想要使用与自定义域名关联的证书,请参阅计划部署的 Azure 服务的文档,如以下示例。

使用 Azure Key Vault 创建证书

Azure Key Vault 为客户提供云原生证书管理功能,允许 Azure 平台使用客户创建或导入的证书。 您可以在 Key Vault 中创建自签名证书,向颁发者申请证书,或者从您自己的证书颁发机构导入证书。 Key Vault 还可以帮助您指定证书的策略,如使证书可导出还是不可导出。

在本地创建证书并在 Azure 中进行管理

如果您想要从本地证书颁发机构发放发证书,您可以将这些证书导入 Azure Key Vault ,供其他 Azure 服务使用。 将证书导出为 PEM 或 PFX 文件后,可以将其导入 Azure Key Vault。

使用第三方解决方案在本地创建和管理证书

已经具有企业级证书管理功能的组织可以考虑是否将本地解决方案与云中的工作负荷集成。 很多本地证书颁发机构和证书管理解决方案可以使用 REST API 和托管标识与 Key Vault 集成。

分散式证书管理

扩展组织证书管理功能的一种方法是将证书的颁发和管理分散到应用程序和基础结构团队。 Azure Key Vault 等解决方案允许组织对可接受的密钥管理技术和流程进行标准化,而无需将这些密钥管理流程的管理集到一个运营团队。 可以使用几种策略将关键管理责任委派给更接近的应用程序和基础结构团队。

托管证书

需要公共证书颁发机构证书的面向公众的网站可以利用 Azure PaaS 服务中的托管证书,如 Azure 应用服务或 Azure Front Door。 来自集成证书颁发机构的证书还可以在 Azure Key Vault 中创建、管理和轮换。 有关详细信息,请参阅以下资源:

在 CI/CD 管道中自动颁发证书

采用开发/运营流程的组织可以作为 CI/CD 管道的一部分将证书的颁发自动化。 此方法将一些证书管理责任委托给应用程序团队,并允许他们使用本机 Azure 服务(如 Azure DNS、Azure 应用服务和 Azure Key Vault)设置自己的证书。

管理终结点证书

终结点证书用于 IaaS 工作负荷,其中服务器和服务使用证书进行身份验证。 由于此场景与虚拟机相关联,因此组织可以使用用于管理虚拟机配置的相同配置管理工具或构建自动化工具来管理这些证书。

另请参见