你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将您的 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 密钥保管库:证书了解 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 网络安全:防火墙设置

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

    • "publicNetworkAccess": "SecuredByPerimeter" 会覆盖“允许受信任的 Microsoft 服务绕过防火墙”,这意味着某些需要该信任的场景将无法正常工作。

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 使用 Microsoft Entra ID 进行身份验证。 访问通过两个接口进行控制:控制平面(用于管理 Key Vault 本身)和数据平面(用于使用密钥、机密和证书)。 有关访问模型和终结点的详细信息,请参阅 用于 Key Vault 数据平面操作的 Azure RBAC

  • 启用托管标识:对所有与 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 日志记录保存有关对保管库执行的操作的信息。 有关完整详细信息,请参阅 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 备份

有关特定于密钥、机密和证书的安全最佳做法,请参阅:

后续步骤