5.2. セキュアブートを使用して AWS Marketplace で RHEL インスタンスを設定する
Amazon Web Services (AWS) 上の Red Hat Enterprise Linux (RHEL) インスタンスでセキュアな起動プロセスを確保するには、RHEL インスタンスでセキュアブートを設定します。このインスタンスは、AWS Marketplace から入手した事前設定済みの Amazon Machine Image (AMI) から起動されます。
前提条件
RHEL AMI のブート設定で
uefi-preferredオプションが有効になっている。$ aws ec2 describe-images --image-id ami-0a951f007be151ff9 --region us-east-2 | grep -E '"ImageId"|"Name"|"BootMode"'"Name": "RHEL-10.1.0_HVM-20260217-x86_64-0-Hourly2-GP3", "BootMode": "uefi-preferred", "ImageId": "ami-0a951f007be151ff9",RHEL インスタンスに次のパッケージがインストールされている。
-
awscli2 -
python3 -
openssl -
efivar -
keyutils -
edk2-ovmf python3-virt-firmware警告セキュリティー上の問題を回避するために、現在の RHEL インスタンスとは別に秘密鍵を生成して保管してください。セキュアブートのシークレットが、使用中のインスタンスと同じインスタンスに保存されている場合、侵入者がシークレットにアクセスして特権を昇格できます。AWS EC2 インスタンスの起動の詳細は、Get started with Amazon EC2 を参照してください。
-
手順
RHEL Marketplace AMI インスタンスのプラットフォームステータスを確認します。
$ sudo mokutil --sb-stateSecureBoot disabled Platform is in Setup Modesetupモードでは、インスタンス内のセキュアブート UEFI 変数を更新できます。カスタム証明書
custom_db.cerを生成します。$ openssl req -quiet \ -newkey rsa:3072 \ -nodes -keyout custom_db.key \ -new -x509 -sha256 \ -days 3650 \ -subj "/CN=Signature Database key/" \ --outform DER -out custom_db.cervirt-fw-varsユーティリティーを使用して UEFI 変数ファイルを生成します。$ virt-fw-vars --enroll-redhat \ --add-db-cert OvmfEnrollDefaultKeys custom_db.cer \ --set-dbx /usr/share/edk2/ovmf/DBX* \ --output-auth詳細は、システム上の
virt-fw-vars(1)man ページを参照してください。UEFI 変数を Extensible Firmware Interface (EFI) Signature List (ESL) 形式に変換します。
$ for f in PK KEK db dbx; do tail -c +41 $f.auth > $f.esl; done注記GUID はそれぞれ割り当てられた値であり、EFI パラメーターを表します。
-
8be4df61-93ca-11d2-aa0d-00e098032b8c:EFI_GLOBAL_VARIABLE_GUID -
d719b2cb-3d3a-4596-a3bc-dad00e67656f:EFI_IMAGE_SECURITY_DATABASE_GUID
EFI_GLOBAL_VARIABLE_GUIDパラメーターは、ブート可能なデバイスとブートマネージャーの設定を保持します。一方、EFI_IMAGE_SECURITY_DATABASE_GUIDパラメーターは、セキュアブート変数であるdb、dbx、および必要な鍵と証明書を保存するためのイメージセキュリティーデータベースを表します。-
データベース証明書をターゲットインスタンスに転送し、
efivarユーティリティーを使用して UEFI 環境変数を管理します。PK.eslを転送するには、次のように入力します。$ sudo efivar -w -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-PK -f PK.eslKEK.eslを転送するには、次のように入力します。$ sudo efivar -w -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-KEK -f KEK.esldb.eslを転送するには、次のように入力します。$ sudo efivar -w -n d719b2cb-3d3a-4596-a3bc-dad00e67656f-db -f db.eslx64 アーキテクチャー用の
dbx.eslUEFI 失効リストファイルを転送するには、次のように入力します。$ sudo efivar -w -n d719b2cb-3d3a-4596-a3bc-dad00e67656f-dbx -f dbx.esl
- AWS コンソールからインスタンスを再起動します。
検証
セキュアブートが有効になっているかどうかを確認します。
$ sudo mokutil --sb-stateSecureBoot enabledkeyctlユーティリティーを使用して、カスタム証明書のカーネルキーリングを確認します。$ sudo keyctl list %:.platform7 keys in keyring: 741159788: ---lswrv 0 0 asymmetric: Microsoft Windows Production PCA 2011: a92902398e16c49778cd90f99e4f9ae17c55af53 941772267: ---lswrv 0 0 asymmetric: Red Hat Secure Boot CA 8: e1c6c580aa1e21d585aad9bf20f3929e5ec1f08b 979739129: ---lswrv 0 0 asymmetric: Red Hat Secure Boot CA 5: cc6fa5e72868ba494e939bbd680b9144769a9f8f 303712700: ---lswrv 0 0 asymmetric: Signature Database key: 7dff9c7433d40daa6cb2cdbdb4c2b7c93f5252a4 747313470: ---lswrv 0 0 asymmetric: Microsoft UEFI CA 2023: 81aa6b3244c935bce0d6628af39827421e32497d 710788326: ---lswrv 0 0 asymmetric: Microsoft Corporation UEFI CA 2011: 13adbf4309bd82709c8cd54f316ed522988a1bd4 163192: ---lswrv 0 0 asymmetric: Microsoft Corporation: Windows UEFI CA 2023: aefc5fbbbe055d8f8daa585473499417ab5a5272 ...