将安全启动与 Azure 托管 Lustre 文件系统配合使用

本文介绍在 Azure 虚拟机(VM)上启用安全启动时 Azure 托管 Lustre 客户端软件的行为方式。 它还介绍了何时必须自定义安全启动统一可扩展固件接口(UEFI)密钥,以便 Azure 托管 Lustre 内核模块成功加载。

何时使用本文

如果您符合以下情况,请使用本文:

  • 计划在装载 Azure 托管 Lustre 文件系统的 Azure VM 上启用安全启动。
  • 使用 Trusted Launch 虚拟机 (VM) 或机密虚拟机 (Confidential VM),并想要确认 Azure 托管 Lustre 客户端的行为方式。

Azure 托管 Lustre 客户端签名的工作原理

Azure 托管 Lustre 客户端内核模块使用 Azure 服务 Linux Kmod PCA 证书进行签名。 在 VM 上启用安全启动时,UEFI 固件和作系统验证每个启动组件和内核模块是否已由受信任的证书签名,然后才能运行。

若要在启用了安全启动的 VM 上加载Azure Managed Lustre客户端,Azure服务 Linux Kmod PCA 证书必须存在于 VM 的受信任密钥数据库中。 证书可以来自 UEFI 固件,也可以来自配置安全启动 UEFI 密钥的自定义 VM 映像。

受信任的启动虚拟机

对于启用了 受信任启动 的 VM,Azure 服务 Linux Kmod PCA 证书已包含在 Azure 提供的 UEFI 固件中。

由于证书默认受信任:

  • 启用安全启动后,Azure 托管 Lustre 客户端内核模块可以加载。
  • 不需要任何额外的配置,才能在受信任的启动 VM 上使用 Azure 托管 Lustre 客户端。

此默认信任旨在在安装并使用已启用安全启动的 Azure 托管 Lustre 客户端软件时提供更流畅的体验。

有关受信任的启动 VM 的详细信息,请参阅 Azure 虚拟机的受信任启动

DKMS 编译的模块和安全启动

使用 DKMS 方法安装 Lustre 客户端时,安装过程会从 VM 上的源编译内核模块,而不是使用预生成和Microsoft签名的模块。 由于 DKMS 编译的模块未由 Azure Services Linux Kmod PCA 证书签名,因此在启用安全启动时不会加载它们,除非你采取额外的步骤。

如果使用启用了安全启动的 DKMS,有两个选项:

  • 禁用安全启动:最简单的方法。 如果安全策略允许它,请在安装 DKMS 包之前在 VM 上禁用安全启动。
  • 注册计算机所有者密钥(MOK):将 DKMS 配置为使用自生成的密钥对模块进行签名,并将其注册到 UEFI MOK 数据库中。 此方法维护安全启动,同时允许 DKMS 编译的模块加载。 有关 MOK 注册的说明,请参阅您的发行版的 DKMS 文档。

Note

如果您使用 预构建的 kmod 安装方法,则安全启动可在 Trusted Launch VM 上正常工作,而无需任何额外配置(如前所述)。 DKMS 安全启动限制仅适用于 DKMS 编译的模块。