翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
UEFI AL2023 でのセキュアブート
AL2023 は、リリース 2023.1 以降の UEFI Secure Boot をサポートしています。UEFI と UEFI Secure Boot の両方をサポートする Amazon EC2インスタンスで AL2023 を使用する必要があります。詳細については、「Amazon ユーザーガイド」の「インスタンスの起動」を参照してください。 EC2
AL2UEFI Secure Boot が有効になっている 023 インスタンスは、Linux カーネルおよび によって署名されたモジュールを含むカーネルレベルコードのみを受け入れるAmazonため、インスタンスが によって署名されたカーネルレベルコードのみを実行できるようにします AWS。
Amazon EC2インスタンスとUEFIセキュアブートの詳細については、Amazon ユーザーガイドのUEFI「セキュアブート」を参照してください。 EC2
前提条件
-
AL2023 リリース AMI 2023.1 以降の を使用している必要があります。
-
インスタンスタイプは UEFI Secure Boot をサポートしている必要があります。詳細については、「Amazon ユーザーガイド」の「インスタンスの起動」を参照してください。 EC2
AL2023 で UEFI Secure Boot を有効にする
Standard AL2023 には、ブートローダーとキーによって署名されたカーネルがAMIs組み込まれています。UEFI Secure Boot を有効にするには、既存のインスタンスを登録するかAMIs、スナップショットからイメージを登録して UEFI Secure Boot を事前に有効にして を作成します。UEFI Secure Boot は、標準 AL2023 ではデフォルトで有効になっていませんAMIs。
AL2023 のブートモードAMIsは に設定されます。uefi-preferred
これにより、インスタンスタイプが をサポートしている場合、これらの で起動されたインスタンスAMIsはUEFIファームウェアを使用しますUEFI。インスタンスタイプが をサポートしていない場合UEFI、インスタンスはレガシーBIOSファームウェアで起動されます。インスタンスがレガシーモードで起動するとBIOS、UEFISecure Boot は適用されません。
Amazon EC2インスタンスのAMIブートモードの詳細については、「Amazon ユーザーガイド」の「ブートモード」を参照してください。 EC2
既存のインスタンスの登録
既存のインスタンスを登録するには、特定のUEFIファームウェア変数に一連のキーを入力します。これにより、ファームウェアはブートローダーを検証し、ブートローダーは次回の起動時にカーネルを検証できます。
-
Amazon Linux には、登録プロセスを簡素化するツールが用意されています。以下のコマンドを実行して、必要なキーと証明書のセットをインスタンスにプロビジョニングします。
sudo amazon-linux-sb enroll
-
以下のコマンドを実行して、 インスタンスを再起動します。インスタンスを再起動すると、UEFISecure Boot が有効になります。
sudo reboot
注記
Amazon Linux AMIsは現在、Nitro Trusted Platform Module (Nitro ) をサポートしていませんTPM。UEFI セキュアブートに加えて NitroTPM が必要な場合は、次のセクションの情報を使用します。
スナップショットからイメージを登録する
Amazon を使用して Amazon EBSルートボリュームのスナップショットAMIから EC2 register-image
を登録する場合API、UEFI変数ストアの状態を含むバイナリ BLOB AMIを使用して をプロビジョニングできます。AL2023 を提供することでUefiData
、UEFISecure Boot を有効にし、前のセクションのステップに従う必要はありません。
バイナリ BLOB の作成と使用の詳細については、「Amazon EC2 ユーザーガイド」の「オプション B: 事前に入力された変数ストアを含むバイナリ BLOB を作成する」を参照してください。
AL2023 には、Amazon EC2インスタンスで直接使用できる構築済みのバイナリ BLOB が用意されています。バイナリ BLOB は実行中のインスタンスの /usr/share/amazon-linux-sb-keys/uefi.vars
にあります。この BLOB は、リリース 2AL2023.1 AMIs以降、023 にデフォルトでインストールされる amazon-linux-sb-keys
RPMパッケージによって提供されます。
注記
キーと失効の最新バージョンを使用していることを確認するには、 の作成に使用したのと同じ AL2023 リリースの BLOB を使用しますAMI。
イメージを登録するときは、 にRegisterImage
API設定された の BootMode
パラメータを使用することをお勧めしますuefi
。これにより、 TpmSupport
パラメータを に設定して NitroTPM を有効にできますv2.0
。また、 BootMode
を に設定するとuefi
、 UEFI をサポートしていないインスタンスタイプに切り替えるときに、Secure Boot が有効になり、誤って無効にできなくなりますUEFI。
Nitro の詳細についてはTPM、「Amazon ユーザーガイド」の「NitroTPM」を参照してください。 EC2
失効の更新
Amazon Linux は、更新されたキーで署名された新しいバージョンのブートローダー grub2
または Linux カーネルを配布する必要がある場合があります。その場合、以前のバージョンのブートローダーからの悪用可能なバグがUEFIセキュアブート検証プロセスをバイパスするのを防ぐために、古いキーを取り消す必要がある場合があります。
grub2
または パッケージのkernel
パッケージ更新では、実行中のインスタンスのUEFI変数ストアに失効のリストが常に自動的に更新されます。つまり、UEFISecure Boot を有効にすると、パッケージのセキュリティ更新プログラムをインストールした後、パッケージの古いバージョンを実行できなくなります。
AL2023 での UEFI Secure Boot の仕組み
他の Linux 配布とは異なり、Amazon Linux には第 1 ステージのブートローダーとして機能するシムと呼ばれる追加コンポーネントはありません。シムは通常、Microsoft のキーで署名されています。例えば、シム付きの Linux ディストリビューションでは、シムが grub2
ブートローダーをロードし、シム独自のコードを使用して Linux カーネルを検証します。さらに、シムは、UEFI変数ストアにあり、 mokutil
ツールで制御されているマシン所有者キー (MOK) データベースに独自のキーと失効のセットを保持します。
Amazon Linux にはシムはありません。AMI 所有者がUEFI変数を制御するため、この中間ステップは必要ではなく、起動時間と起動時間に悪影響を及ぼします。また、望ましくないバイナリが実行される可能性を減らすため、デフォルトではベンダーキーへの信頼を含めないようにしました。通常通り、必要に応じてバイナリを含めることができます。
Amazon Linux では、 はgrub2
ブートローダーUEFIを直接ロードして検証します。grub2
ブートローダーは、ロード後に Linux カーネルを検証UEFIするために を使用するように変更されました。したがって、Linux カーネルは、通常のUEFIdb
変数 (認証されたキーデータベース) に保存されているのと同じ証明書を使用して検証され、ブートローダーやその他のバイナリと同じdbx
変数 (失効データベース) UEFI に対してテストされます。db データベースと dbx データベースへのアクセスを制御する独自の PK キーと KEKキーを提供しているため、shim などの仲介なしで、必要に応じて署名付き更新と取り消しを配信できます。
UEFI Secure Boot の詳細については、「Amazon ユーザーガイド」のUEFI「Secure Boot の仕組み」を参照してください。 EC2
独自のキーを登録する
前のセクションで説明したように、Amazon Linux では Amazon でのUEFIセキュアブートshim
に は必要ありませんEC2。他の Linux ディストリビューションのドキュメントを読むときは、AL2023 にはない mokutil
を使用してマシン所有者キー (MOK) データベースを管理するためのドキュメントが見つかる場合があります。shim
および MOK環境は、Amazon が UEFI Secure Boot EC2を実装する方法に適用できないUEFIファームウェアへのキー登録のいくつかの制限を回避します。Amazon EC2には、UEFI変数ストア内のキーを簡単に直接操作するメカニズムがあります。
独自のキーを登録したい場合は、既存のインスタンス内の変数ストアを操作するか (「インスタンス内から変数ストアにキーを追加する」を参照してください)、事前入力されたバイナリ BLOB を構築できます (「事前入力された変数ストアを含むバイナリ BLOB の作成」を参照してください)。