将您的 Azure Key Vault 进行安全防护

Azure Key Vault 保护云中的加密密钥、证书(以及与证书关联的私钥)和机密(例如连接字符串和密码)。 存储敏感数据和业务关键型数据时,必须采取措施以最大限度提高保管库及其中存储的数据的安全性。

本文提供了有助于保护 Azure Key Vault 部署的安全建议。

特定于服务的安全性

Azure Key Vault 具有与保管库体系结构相关的独特安全注意事项,以及合理使用服务来存储加密资料。

Key Vault 体系结构

  • 分别为每个应用程序、区域和环境使用一个 Key Vault:为开发环境、预生产环境和生产环境创建单独的 Key Vault,以减少违规的影响。

    密钥保管库为存储的机密定义安全边界。 将机密分组到同一保管库会增加安全事件的冲击半径,因为攻击可能能够跨关注点访问机密。 若要缓解跨关注点访问机密这一情况,请考虑特定应用程序应有权访问哪些机密,然后根据此描述分离密钥保管库。 将密钥保管库按应用程序分离是最常见的界限。 但是,对于大型应用程序(例如,每组相关服务),安全边界可能更为精细。

  • 在多租户解决方案中为每个租户使用一个 Key Vault:对于多租户 SaaS 解决方案,请为每个租户使用单独的 Key Vault 来维护数据隔离。 有关更多详细信息,请参阅多租户和 Azure Key Vault

Key Vault 中的对象存储

  • 不要将 Key Vault 用作数据存储来存储客户配置或服务配置:服务应使用 Azure 存储和静态加密Azure 配置管理器。 在此类场景中,存储性能更高。

  • 不要将(客户或服务拥有的)证书存储为机密:服务拥有的证书应存储为 Key Vault 证书,并配置为自动轮换。 有关详细信息,请参阅 Azure 密钥保管库:证书

    • 客户内容(不包括机密和证书)不应存储在 Key Vault 中:Key Vault 不是数据存储,也不像数据存储那样构建为可扩展。 请改用适当的数据存储,例如 Cosmos DBAzure 存储。 客户可以选择 BYOK(创建自己的密钥)进行静态加密。 此密钥可以存储在 Azure Key Vault 中,以加密 Azure 存储中的数据。

网络安全

减少网络暴露对于保护 Azure Key Vault 免受未经授权的访问至关重要。 根据组织的要求和用例配置网络限制。

这些网络安全功能从限制最多的功能到限制最少的功能依次列出。 选择最适合组织用例的配置。

  • 禁用公用网络访问并仅使用专用终结点:部署 Azure 专用链接以建立从虚拟网络到 Azure Key Vault 的专用接入点,并防止对公共 Internet 公开。 有关实施步骤,请参阅将 Key Vault 与 Azure 专用链接集成

  • 启用 Key Vault 防火墙:限制对公共静态 IP 地址或虚拟网络的访问。 有关完整的详细信息,请参阅 Key Vault 网络安全:防火墙设置

    • 某些客户方案要求受信任的 Azure 服务绕过防火墙,在这种情况下,可能需要将保管库配置为允许受信任的 Azure 服务。
  • 使用网络安全外围:为部署在组织的虚拟网络外围和/或公共静态 IP 地址外部的 PaaS 资源(例如 Azure Key Vault、Azure 存储和 SQL 数据库)定义逻辑网络隔离边界。 有关完整详细信息,请参阅 网络安全:网络安全防护范围

    • “publicNetworkAccess”:“SecuredByPerimeter”改写了“允许受信任的 Azure 服务绕过防火墙的选项”,这意味着某些需要信任的方案将不起作用。

TLS 和 HTTPS

Azure Key Vault 支持 TLS 1.2 和 1.3 协议版本,以确保客户端和服务之间的安全通信。

  • 强制实施 TLS 版本控制:Key Vault 前端(数据平面)是来自不同客户的密钥保管库可以共享同一公共 IP 地址的多租户服务器。 为了实现隔离,每个 HTTP 请求都经过身份验证并独立授权。 HTTPS 协议允许客户端参与 TLS 协商,客户端可以强制实施 TLS 版本,以确保整个连接使用相应的保护级别。 有关用于监视客户端使用的 TLS 版本的示例 Kusto 查询,请参阅 Key Vault 日志记录

标识和访问管理

  • 启用托管标识:对所有与 Azure Key Vault 的应用和服务连接使用 Azure 托管标识来消除硬编码凭据。 托管标识有助于保护身份验证,同时不再需要显式凭据。 有关身份验证方法和方案,请参阅 Azure Key Vault 身份验证

  • 使用基于角色的访问控制:使用 Azure 基于角色的访问控制 (RBAC) 来管理对 Azure Key Vault 的访问。 有关详细信息,请参阅用于 Key Vault 数据平面操作的 Azure RBAC

    重要

    RBAC 权限模型允许保管库级别的角色分配以实现持久访问,并为特权操作提供合格(JIT)分配。 对象范围分配仅支持读取操作;而管理操作(例如:网络访问控制、监视和对象管理)需要保管库级别的权限。 若要跨应用程序团队进行安全隔离,请为每个应用程序使用一个 Key Vault。

  • 分配实时(JIT)特权角色:使用 Azure Privileged Identity Management (PIM)为 Key Vault 的管理员和操作员分配符合条件的 JIT Azure RBAC 角色。 请参阅 Privileged Identity Management (PIM) 概述了解详细信息。

  • 启用 Microsoft Entra 条件访问策略:Key Vault 支持 Microsoft Entra 条件访问策略,根据用户位置或设备等条件应用访问控制。 有关详细信息,请参阅条件访问概述

  • 应用最小特权原则:限制具有管理角色的用户数,并确保仅向用户授予其角色所需的最低权限。 请参阅使用最小特权原则增强安全性

数据保护

保护 Azure Key Vault 中存储的数据需要启用软删除、清除保护并实现加密材料的自动轮换。

日志记录和威胁检测

全面的日志记录和监视功能可检测可疑活动和符合审核要求。

  • 启用审核日志:Key Vault 日志记录保存有关对保管库执行的操作的信息。 有关完整详细信息,请参阅 Key Vault 日志记录

  • 启用 Microsoft Defender for Key Vault:启用 Microsoft Defender for Key Vault 以监视可疑活动并发出警报。 有关详细信息,请参阅 Microsoft Defender for Key Vault 简介

  • 为安全事件启用日志警报:设置警报,以便在记录关键事件(如访问失败或机密删除)时发出通知。 请参阅 Azure Key Vault 的监视和警报

  • 监视和警报:将 Key Vault 与事件网格集成,以接收有关密钥、证书或机密更改的通知。 有关详细信息,请参阅通过 Azure 事件网格监视 Key Vault

备份和恢复

  • 为 Azure Key Vault 启用本机备份:配置并使用 Azure Key Vault 本机备份功能来备份机密、密钥和证书,从而确保可恢复性。 请参阅 Azure Key Vault 备份

  • 确保备份无法重新创建的机密:备份无法从其他源重新创建的 Key Vault 对象(例如加密密钥)。 请参阅 Azure Key Vault 备份

  • 测试备份和恢复过程:若要验证备份过程的有效性,请定期测试 Key Vault 机密、密钥和证书的恢复效果。 请参阅 Azure Key Vault 备份

后续步骤