6.4. 使用自定义 RHEL 镜像配置带有安全引导的 RHEL 实例
要确保 AWS 上的 RHEL 实例有安全引导序列,请使用安全引导。当注册自定义 RHEL Amazon 机器镜像(AMI)时,镜像由安全引导的预存储统一固件接口(UEFI)变量组成。这可让从 RHEL AMI 启动的所有实例都使用带有第一次引导时所需的变量的安全引导机制。
先决条件
- 您已创建了并上传 AWS AMI 镜像。详情请参阅 创建和上传 AWS AMI。
您已安装了以下软件包:
-
awscli2
-
python3
-
openssl
-
efivar
-
keyutils
-
python3-virt-firmware
-
流程
创建新的随机通用唯一标识符(UUID),并将其存储在系统生成的文本文件中:
uuidgen --random > GUID.txt
$ uuidgen --random > GUID.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为平台密钥数据库生成一个新的 RSA 私钥
PK.key
和自签名 X.509 证书PK.cer
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow openssl
工具通过将输出格式设置为可辨识的编码规则(DER)来为证书生成一个通用名称平台密钥。为密钥交换密钥数据库生成一个新的 RSA 私钥
KEK.key
和自签名 X.509 证书KEK.cer
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成自定义证书
custom_db.cer
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 64 位系统下载禁止签名(
dbx
)更新的 UEFI Revocation List 文件:wget https://uefi.org/sites/default/files/resources/x64_DBXUpdate.bin
$ wget https://uefi.org/sites/default/files/resources/x64_DBXUpdate.bin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
virt-fw-vars
工具从密钥、数据库证书和 UEFI 变量存储生成aws_blob.bin
二进制文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 自定义 blob 由以下几项组成:
-
PK.cer
带有自签名 X.509 证书 -
KEK.cer
和custom_db.cer
带有所有者组 GUID 和 Privacy Enhanced Mail (pem
)格式 -
从排除签名的数据库下载的
x64_DBXUpdate.bin
列表(dbx
)。 -
77fa9abd-0359-4d32-bd60-28f4e78f784b
UUID 适用于MicCorUEFCA2011_2011-06-27.crt
Microsoft Corporation UEFI 认证机构 2011。
-
使用
awscli2
工具使用所需的安全引导变量从磁盘快照中创建并注册 AMI:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 从 AWS 控制台重启实例。
验证
验证是否启用了安全引导:
mokutil --sb-state
$ mokutil --sb-state SecureBoot enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
keyctl
工具验证自定义证书的内核密钥环:sudo keyctl list %:.platform
$ sudo keyctl list %:.platform 4 keys in keyring: 907254483: ---lswrv 0 0 asymmetric: Signature Database key: f064979641c24e1b935e402bdbc3d5c4672a1acc ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow