使用 Azure 密钥保管库的最佳做法

Azure 密钥保管库会保护加密密钥和机密(例如证书、连接字符串和密码)。 本文有助于优化密钥保管库的使用。

使用单独的密钥保管库

我们的建议是在每个区域中,对每个环境(开发环境、预生产环境和生产环境)的每个应用程序使用一个保管库。 这有助于你避免跨应用程序、环境和区域共享机密,并在出现漏洞时降低威胁。

为何建议使用单独的密钥保管库

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

控制对保管库的访问权限

加密密钥和机密(例如证书、连接字符串和密码)是敏感的业务关键型信息。 你需要保护对密钥保管库的访问,方式是仅允许已经授权的应用程序和用户进行访问。 Azure 密钥保管库安全功能提供密钥保管库访问模型的概述。 它介绍了身份验证和授权。 还介绍了如何保护对密钥保管库的访问。

对保管库的访问权限进行控制的建议如下所示:

  • 使用数据平面的基于角色的访问控制 (RBAC) 权限模型,锁定对订阅、资源组和密钥保管库的访问。
    • 为需要永久访问密钥保管库的应用程序、服务和工作负载分配保管库范围的 RBAC 角色
    • 使用 Privileged Identity Management (PIM),为需要对密钥保管库进行特权访问的操作员、管理员和其他用户帐户分配符合条件的实时 RBAC 角色
      • 至少需要一个审批者
      • 实施多重身份验证
  • 使用专用链接防火墙和虚拟网络限制网络访问

重要

旧版访问策略权限模型存在已知的安全漏洞,并且缺少 Priviliged Identity Management 支持,不应用于关键数据和工作负载。

为保管库开启数据保护

启用清除保护以防止恶意或意外删除机密和密钥保管库,即使启用了软删除也应启用此功能。

有关详细信息,请参阅 Azure 密钥保管库软删除概述

启用日志

为保管库启用日志记录。 此外,设置警报

备份

清除保护可防止恶意和意外删除保管库对象,最长可达 90 天。 在无法选择清除保护的方案中,建议备份无法根据其他源(例如从保管库中生成的加密密钥)重新创建的保管库对象。

有关备份的详细信息,请参阅 Azure Key Vault 备份和还原

多租户解决方案和 Key Vault

多租户解决方案基于体系结构构建,其中组件可用于为多个客户或租户提供服务。 多租户解决方案通常用于支持软件即服务 (SaaS) 解决方案。 如果要构建包含 Key Vault 的多租户解决方案,请查看多租户和 Azure Key Vault

常见问题:

能否使用 Key Vault 基于角色的访问控制 (RBAC) 权限模型对象范围分配来为 Key Vault 中的应用程序团队提供隔离?

不是。 借助 RBAC 权限模型,可以将对密钥保管库中单个对象的访问权限分配给用户或应用程序,但仅限于读取。 网络访问控制、监视和对象管理等任何管理操作需要保管库级权限。 每个应用程序一个密钥保管库可为应用程序团队中的操作员提供安全隔离。

后续步骤

详细了解密钥管理最佳做法: