セキュア ブートは、UEFI ファームウェア標準の一部です。セキュア ブートが使用中の場合、オペレーティング システムのブートローダーが暗号で署名されていない限り、マシンに UEFI ドライバまたはアプリケーションはロードされません。vSphere 6.5 以降、ESXi は、ハードウェアでセキュア ブートが有効な場合にこれをサポートします。

ESXi での UEFI セキュア ブートの使用方法

ESXi バージョン 6.5 以降では、ブート スタックの各レベルで UEFI セキュア ブートをサポートしています。

注: アップグレードされたホストで UEFI セキュア ブートを使用する前に、 アップグレード後の ESXi ホストでのセキュア ブート検証スクリプトの実行 の手順に従って互換性を確認してください。
図 1. UEFI セキュア ブート
UEFI セキュア ブート スタックには、本文で説明されているように複数の要素が含まれます。

セキュア ブートが使用中の場合、ブート シーケンスは次のようになります。

  1. vSphere 6.5 以降では、ESXi ブートローダーに VMware パブリック キーが含まれています。ブートローダーは、このキーを使用して、カーネルの署名と、セキュア ブート VIB 検証機能を含むシステムの小さなサブセットを検証します。
  2. VIB 検証機能は、システムにインストールされているすべての VIB パッケージを検証します。

この時点で、UEFI ファームウェアの一部である証明書の信頼のルートを使用して、システム全体が起動されます。

注: vSphere 7.0 Update 2 以降をインストールまたはアップグレードするときに、 ESXi ホストに TPM がある場合、TPM は UEFI セキュア ブートの PCR 値に基づいて TPM ポリシーを使用して機密情報をシーリングします。この値は、ポリシーが true として満たされている場合、その後の再起動時にロードされます。vSphere 7.0 Update 2 以降で UEFI セキュア ブートを無効または有効にするには、 セキュアな ESXi 構成のセキュア ブートの適用の有効化または無効化 を参照してください。

UEFI セキュア ブートのトラブルシューティング

セキュア ブートがブート シーケンスのいずれかのレベルで成功しない場合、エラーとなります。

エラー メッセージは、ハードウェア ベンダーによって、および検証が成功しなかったレベルによって異なります。
  • 署名のないブートローダーまたは改ざんされているブートローダーでブートすると、ブート シーケンスでエラーとなります。表示されるメッセージは、ハードウェア ベンダーによって異なります。次のようなエラーが表示される場合もあれば、別のエラーが表示される場合もあります。
    UEFI0073: Unable to boot PXE Device...because of the Secure Boot policy 
  • カーネルが改ざんされている場合、次のようなエラーが表示されます。
    Fatal error: 39 (Secure Boot Failed)
  • パッケージ(VIB またはドライバ)が改ざんされている場合、パープル スクリーンに次のメッセージが表示されます。
    UEFI Secure Boot failed:
    Failed to verify signatures of the following vibs (XX)

セキュア ブートの問題を解決するには、次の手順に従います。

  1. セキュア ブートを無効にしてホストを再起動します。
  2. セキュア ブート検証スクリプトを実行します(アップグレード後の ESXi ホストでのセキュア ブート検証スクリプトの実行を参照してください)。
  3. /var/log/esxupdate.log ファイル内の情報を確認します。

アップグレード後の ESXi ホストでのセキュア ブート検証スクリプトの実行

UEFI セキュア ブートをサポートしていない ESXi の以前のバージョンから ESXi ホストをアップグレードした後は、セキュア ブートを有効にできる場合があります。セキュア ブートを有効にできるかどうかは、アップグレードの実行方法と、アップグレードによってすべての既存の VIB が置換されたか、一部の VIB が変更されないまま残されたかによって異なります。アップグレード後に検証スクリプトを実行して、アップグレード後のインストールがセキュア ブートをサポートするかどうかを判断できます。

セキュア ブートを正常に行うためには、インストールされているすべての VIB の署名がシステムで使用できる必要があります。ESXi の以前のバージョンは、VIB のインストール時に署名を保存できません。
  • esxcli コマンドを使用してアップグレードすると、古いバージョンの ESXi は新しい VIB のインストールを実行するため、署名が保存されず、セキュア ブートは実行できません。
  • ISO を使用してアップグレードすると、新しい VIB は署名を保存できます。これは、ISO を使用した vSphere Lifecycle Manager のアップグレードにもあてはまります。
  • 以前の VIB がシステムに残っている場合、それらの VIB の署名は使用できず、セキュア ブートは実行できません。
    • システムがサードパーティ製ドライバを使用しており、VMware のアップグレードにドライバ VIB の新しいバージョンが含まれていない場合、アップグレード後に以前のバージョンの VIB がシステムに残ります。
    • まれに、VMware は特定の VIB の開発を継続せず、古い VIB を置き換える新しい VIB を提供しない場合があります。その際は、アップグレード後に古い VIB がシステムに残ることがあります。
注: UEFI セキュア ブートには、最新のブートローダーも必要です。このスクリプトは、最新のブートローダーをチェックしません。

前提条件

  • ハードウェアで UEFI セキュア ブートがサポートされることを確認します。
  • すべての VIB が、最低でも許容レベル PartnerSupported で署名されていることを確認します。CommunitySupported レベルの VIB を含めると、セキュア ブートを使用できません。

手順

  1. ESXi をアップグレードして、次のコマンドを実行します。
    /usr/lib/vmware/secureboot/bin/secureBoot.py -c
  2. 出力を確認します。
    Secure boot can be enabled または Secure boot CANNOT be enabled のいずれかが出力されます。