共用方式為

数据加密模型

若要了解Azure资源提供程序如何实现静态加密,需要了解不同的加密模型及其优点和缺点。 为了确保公共语言和分类,Azure资源提供程序共享这些定义。

默认情况下,Azure使用平台管理的密钥自动加密静态数据。 可以选择根据安全性和符合性要求选择其他密钥管理方法。 服务器端加密存在三种方案:

  • 使用平台管理的密钥的服务器端加密(默认值)

    • Azure资源提供程序执行加密和解密操作。
    • Microsoft自动管理密钥。
    • 默认情况下启用,无需配置。
    • 完整的云功能。
  • 使用客户管理的密钥在 Azure Key Vault(可选)中进行服务器端加密

    • Azure资源提供程序执行加密和解密操作。
    • 可以通过Azure Key Vault控制密钥。
    • 需要客户配置和管理。
    • 完整的云功能。
  • 在客户控制的硬件上使用客户管理的密钥进行服务器端加密(高级选项)

    • Azure资源提供程序执行加密和解密操作。
    • 可在客户控制的硬件上控制密钥。
    • 复杂的配置和有限的Azure服务支持。
    • 完整的云功能。

服务器端加密模型是指Azure服务执行的加密。 在该模型中,资源提供程序执行加密和解密作。 例如,Azure Storage可能会在纯文本操作中接收数据,并在内部执行加密和解密。 资源提供程序可能会使用Microsoft或客户管理的加密密钥,具体取决于提供的配置。

服务器的屏幕截图。

每个服务器端静态加密模型都具有密钥管理的独特特征。 这些特征包括创建和存储加密密钥的位置和方式,以及访问模型和密钥轮换过程。

对于客户端加密,请注意以下事项:

  • Azure服务看不到解密的数据。
  • 客户在本地(或其他安全存储中)管理和存储密钥。 Azure服务无权访问密钥。
  • 减少云功能。

Azure支持的加密模型分为两个主要组:Client EncryptionServer-side Encryption。 无论使用的静态加密模型如何,Azure服务始终建议使用安全传输(如 TLS 或 HTTPS)。 因此,传输中的加密应由传输协议处理,不应是确定要使用的静态加密模式的主要因素。

客户端加密模型

客户端加密模型是指服务或调用应用程序在资源提供程序或Azure外部执行的加密。 Azure中的服务应用程序或客户数据中心中运行的应用程序可以执行加密。 在任一情况下,使用此加密模型时,Azure资源提供程序会收到加密的数据 blob,而无需以任何方式解密数据或访问加密密钥。 在此模型中,调用服务或应用程序处理密钥管理,使其对Azure服务保持不透明。

客户端的屏幕截图。

使用平台管理的密钥的服务器端加密(默认值)

对于大多数客户,基本要求是确保数据在静态时加密。 使用平台管理的密钥(以前称为服务托管密钥)的服务器端加密通过默认提供自动加密来满足此要求。 此方法使静态加密无需客户配置或管理任何加密密钥,将密钥颁发、轮换和备份等所有密钥管理方面留给Microsoft。

大多数Azure服务将此模型实现为默认行为,使用平台管理的密钥自动加密静态数据,而无需执行任何客户操作。 Azure资源提供程序创建密钥,将其置于安全存储中,并在需要时检索密钥。 该服务具有对密钥的完全访问权限,并保持对凭据生命周期管理的完全控制,从而为客户提供可靠的加密保护,为客户提供零管理开销。

托管系统的屏幕截图。

使用平台管理的密钥进行服务器端加密可以解决静态加密的需求,同时不会给客户造成零开销。 默认情况下,此加密在Azure服务中启用,提供自动数据保护,无需任何客户配置或管理。 客户在Azure服务中存储数据时立即受益于可靠的加密保护,无需额外的步骤、成本或持续管理。

使用平台管理的密钥进行服务器端加密意味着服务具有对存储和管理密钥的完全访问权限。 虽然某些客户可能希望管理密钥,因为他们觉得它们获得了更大的安全性,但评估此模型时,请考虑与自定义密钥存储解决方案关联的成本和风险。 在许多情况下,组织可能会确定本地解决方案的资源约束或风险大于云管理静态密钥的风险。 但是,此模型可能无法满足某些组织的需求,这些组织需要控制加密密钥的创建或管理其生命周期,或者需要由不同的人员来管理服务和服务的加密密钥(即,将密钥管理与服务的整体管理模型分开)。

密钥访问权限

将服务器端加密与平台管理的密钥一起使用时,该服务将管理密钥创建、存储和服务访问。 通常,基础Azure资源提供程序将数据加密密钥存储在靠近数据的存储中并快速访问,而密钥加密密钥存储在安全的内部存储中。

优点

  • 简单设置。
  • Microsoft管理密钥轮换、备份和冗余。
  • 不会产生与实施自定义密钥管理方案相关的成本或风险。

考虑

  • 客户无法控制加密密钥(密钥规范、生命周期、吊销等)。 此选项适用于大多数用例,但可能不符合专门的合规性要求。
  • 无法将密钥管理与服务的整体管理模型隔离开来。 需要职责分离的组织可能需要客户管理的密钥。

在Azure Key Vault和Azure托管 HSM 中使用客户管理的密钥进行服务器端加密(可选)

对于组织在默认平台管理的加密之外控制其加密密钥的特定要求,客户可以选择使用Key Vault或Azure托管 HSM 中的客户管理的密钥来选择服务器端加密。 此方法建立在默认静态加密的基础上,允许客户使用自己的密钥,同时Azure继续处理加密和解密操作。

某些服务可能仅将根密钥加密密钥存储在Azure Key Vault中,并将加密的数据加密密钥存储在离数据更近的内部位置。 在此方案中,客户可以自带密钥到密钥保管库(BYOK - 自带密钥)或者生成新密钥,并使用它们来加密所需的资源。 当资源提供程序执行加密和解密作时,它将客户配置的密钥加密密钥用作所有加密作的根密钥。

密钥加密密钥丢失意味着数据丢失。 因此,请勿删除密钥。 创建或轮换密钥时,请始终备份密钥。 轮换 KEK 时,服务使用新密钥版本重新包装数据加密密钥,基础数据不会重新加密。 旧密钥版本和新密钥版本必须保持启用状态,直至所有数据加密密钥被重新加密包装。 为了防止意外或恶意的密码擦除,必须在任何存储密钥加密密钥的保管库上启用软删除和清除保护。 不要删除密钥,而是在密钥加密密钥上将 enabled 属性设置为 false。 使用访问控制撤销对 Azure Key VaultManaged HSM 中的单个用户或服务的访问权限。

对于客户管理的密钥方案,建议将Azure Key Vault高级层(HSM 支持)作为强制要求受 HSM 保护的密钥的符合性要求的最低要求。 对于那些需要关键主权或专用 HSM 容量的工作负荷,建议使用 Azure 托管 HSM。

注意

有关支持 Azure Key Vault 和 Azure 托管 HSM 中客户管理的密钥的服务列表,请参阅 Azure Key Vault 和 Azure 托管 HSM 中支持 CMK 的服务

密钥访问权限

Azure Key Vault中具有客户管理的密钥的服务器端加密模型涉及服务访问密钥以根据需要加密和解密。 可以通过访问控制策略使服务可访问静态加密密钥。 此策略授予服务标识获取密钥所需的访问权限。 你可以配置一个 Azure 服务,使其能够在与某个订阅关联的标识下运行。 该服务可以执行 Microsoft Entra 的身份验证,并接收一个身份验证令牌,此令牌将该服务标识为代表订阅的实体。 然后,该服务将令牌提供给Key Vault,以获取已向其授予访问权限的密钥。

对于使用加密密钥的操作,可以授予服务身份对以下任何操作的访问权限:解密、加密、解包密钥、封装密钥、验证、签名、获取密钥、列出密钥、更新、创建、导入、删除、备份和还原。

若要获取用于加密或解密静态数据的密钥,Resource Manager服务实例运行的服务标识必须具有 UnwrapKey(若要获取用于解密的密钥)和 WrapKey(若要在创建新密钥时将密钥插入密钥保管库)。

注意

有关Key Vault授权的详细信息,请参阅 Azure Key Vault 文档中的key vault安全页面。

优点

  • 完全控制所使用的密钥 - 加密密钥在控制下的Key Vault进行管理。
  • 能够将多个服务加密到一个主服务器。
  • 可以将密钥管理与服务的整体管理模型隔离开来。
  • 可以跨区域定义服务和密钥位置。

缺点

  • 你完全负责密钥访问管理。
  • 你完全负责关键生命周期管理。
  • 额外的设置和配置负担。

在客户控制的硬件中使用客户管理的密钥进行服务器端加密(专用选项)

某些Azure服务为具有专用安全要求的组织启用“托管自己的密钥”(HYOK)密钥管理模型。 此管理模式适用于要求加密存储的数据并在完全不受Microsoft控制的专属存储库中管理密钥的高度监管情境,这超出了Azure Key Vault中默认的平台管理加密和可选的客户管理密钥的范围。

在此模型中,服务必须使用外部站点中的密钥来解密数据加密密钥 (DEK)。 性能和可用性保证受到影响,配置更为复杂。 此外,由于服务在加密和解密操作期间无权访问 DEK,因此此模型的整体安全保证类似于在Azure Key Vault中客户管理的密钥。 因此,此模型不适用于大多数组织,除非它们具有非常具体的法规或安全要求,这些要求无法在Azure Key Vault中使用平台管理的密钥或客户管理的密钥。 由于这些限制,大多数Azure服务不支持使用客户控制的硬件中的客户管理的密钥进行服务器端加密。 双密钥加密中的两个密钥之一遵循此模型。

密钥访问权限

在客户控制的硬件中使用由客户管理的密钥进行服务器端加密时,您可以在配置的系统上维护密钥加密密钥。 支持此模型的Azure服务提供了一种建立与客户提供的密钥存储的安全连接的方法。

优点

  • 你可以完全控制所使用的根密钥,因为加密密钥由客户提供的存储进行管理。
  • 能够将多个服务加密到一个主服务器。
  • 可以将密钥管理与服务的整体管理模型隔离开来。
  • 可以跨区域定义服务和密钥位置。

缺点

  • 你完全负责密钥存储、安全性、性能和可用性。
  • 你完全负责密钥访问管理。
  • 你完全负责关键生命周期管理。
  • 会产生大量设置、配置和持续维护费用。
  • 客户数据中心与 Azure 数据中心之间对网络可用性的依赖增加了。