第5章 セキュアブートを使用した Azure での RHEL の設定


Secure Boot は、システムの起動時にプログラムの実行を制御する UEFI (Unified Extensible Firmware Interface)仕様のメカニズムです。セキュアブートは、ブート時にブートローダーとそのコンポーネントのデジタル署名を検証することで、信頼できる許可されたプログラムだけを実行するとともに、許可されていないプログラムのロードを防止します。

Azure プラットフォームで公開されている RHEL イメージでは、セキュアブートが有効になっています。デフォルトでは、Microsoft 証明書を持つ Allowed Signature データベース(db)があります。Microsoft Azure では、Azure Compute Gallery に新しいイメージバージョンが登録されるときに、UEFI セキュアブート変数にカスタム証明書を追加できます。

5.1. クラウド上の RHEL のセキュアブートについて

セキュアブートは、Unified Extensible Firmware Interface (UEFI) の機能であり、ブートローダーやカーネルなど、デジタル署名された信頼できるプログラムとコンポーネントだけがブート時に実行されるようにします。セキュアブートでは、ハードウェアに保存されている信頼できる鍵に照らしてデジタル署名を検証し、改ざんされたコンポーネントや信頼できないエンティティーによって署名されたコンポーネントが検出されると、ブートプロセスを中止します。これにより、悪意のあるソフトウェアがオペレーティングシステムを侵害するのを防ぎます。

セキュアブートは、信頼できるエンティティーだけがブートチェーン内に存在することを保証するため、Confidential Virtual Machine (CVM) を設定するのに不可欠なコンポーネントです。定められたインターフェイスを通じて特定のデバイスパスへの認証アクセスを提供します。これにより、最新の設定だけが確実に使用され、以前の設定が永続的に上書きされます。さらに、セキュアブートを有効にして Red Hat Enterprise Linux カーネルを起動すると、カーネルが lockdown モードに入ります。これにより、信頼できるベンダーによって署名されたカーネルモジュールだけが確実にロードされます。したがって、セキュアブートにより、オペレーティングシステムのブートシーケンスのセキュリティーが向上します。

5.1.1. セキュアブートのコンポーネント

セキュアブートメカニズムは、ファームウェア、署名データベース、暗号鍵、ブートローダー、ハードウェアモジュール、およびオペレーティングシステムで構成されます。以下は、UEFI の信頼済み変数の構成要素です。

  • Key Exchange Key データベース (KEK): RHEL オペレーティングシステムと仮想マシンファームウェア間の信頼を確立するための公開鍵の交換。これらの鍵を使用して、Allowed Signature データベース (db) と Forbidden Signature データベース (dbx) を更新することもできます。
  • Platform Key データベース (PK): 仮想マシンファームウェアとクラウドプラットフォーム間の信頼を確立するための自己署名のシングルキーデータベース。また、PK は KEK データベースを更新します。
  • Allowed Signature データベース (db): バイナリーファイルがシステム上で起動できるかどうかを確認するための証明書またはバイナリーハッシュのリストを保持するデータベース。さらに、db からのすべての証明書は、RHEL カーネルの .platform キーリングにインポートされます。この機能を使用すると、lockdown モードで署名されたサードパーティーのカーネルモジュールを追加およびロードすることができます。
  • Forbidden Signature データベース (dbx): システム上で起動することが禁止されている証明書またはバイナリーハッシュのリストを保持するデータベース。
注記

バイナリーファイルは、dbx データベースと Secure Boot Advanced Targeting (SBAT) メカニズムに照らしてチェックされます。SBAT を使用すると、バイナリーに署名した証明書を有効なままに保ちながら、特定のバイナリーの古いバージョンを無効にできます。

5.1.2. クラウド上の RHEL におけるセキュアブートの段階

RHEL インスタンスが Unified Kernel Image (UKI) モードで起動し、セキュアブートが有効な場合、RHEL インスタンスは次の順序でクラウドサービスインフラストラクチャーとやり取りします。

  1. 初期化: RHEL インスタンスが起動すると、クラウドでホストされているファームウェアが最初に起動し、セキュアブートメカニズムを実装します。
  2. 変数ストアの初期化: ファームウェアは、変数ストアから UEFI 変数を初期化します。このストアは、ブートプロセスと実行時の操作のためにファームウェアが管理する必要がある情報専用のストレージ領域です。RHEL インスタンスが初めて起動すると、ストアは仮想マシンイメージに関連付けられたデフォルト値によって初期化されます。
  3. ブートローダー: ブート時に、ファームウェアは第 1 段階のブートローダーをロードします。x86 UEFI 環境の RHEL インスタンスの場合、第 1 段階のブートローダーは shim です。shim ブートローダーは、ブートプロセスの次の段階を認証して読み込み、UEFI と GRUB 間の橋渡し役として機能します。

    1. RHEL の shim x86 バイナリーは、現在 Microsoft Corporation UEFI CA 2011 Microsoft 証明書によって署名されています。これは、Allowed Signature データベース (db) にデフォルトの Microsoft 証明書が含まれているさまざまなハードウェアおよび仮想化プラットフォーム上で、RHEL インスタンスをセキュアブート対応モードで起動できるようにするためです。
    2. shim バイナリーは、Red Hat Secure Boot CA と、必要に応じて Machine Owner Key (MOK) を使用して、信頼済み証明書のリストを拡張します。
  4. UKI: shim バイナリーは、RHEL UKI (kernel-uki-virt パッケージ) をロードします。UKI は、redhat-sb-certs パッケージにある対応する証明書 (x86_64 アーキテクチャーでは Red Hat Secure Boot Signing 504) によって署名されます。この証明書は Red Hat Secure Boot CA によって署名されているため、チェックに合格します。
  5. UKI アドオン: UKI の cmdline 拡張機能を使用するために、RHEL カーネルが、拡張機能の署名を dbMOK、および shim に同梱されている証明書と照らしてチェックして、その拡張機能がオペレーティングシステムのベンダーである RHEL またはユーザーによって署名されていることを確認します。

RHEL カーネルがセキュアブートモードで起動すると、カーネルは lockdown モードになります。lockdown に入ると、RHEL カーネルは db の鍵を .platform キーリングに追加し、MOK の鍵を .machine キーリングに追加します。カーネルのビルドプロセス中に、kernel-modules-corekernel-moduleskernel-modules-extra などの標準 RHEL カーネルモジュールが、秘密鍵と公開鍵で構成される一時的な鍵で署名されます。各カーネルビルドが完了すると、この秘密鍵はサードパーティーモジュールの署名には使用できなくなります。この署名のためには、db および MOK の証明書を使用できます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る