5.2. bootloader RHEL システムロールを使用したブートメニューのパスワード保護
bootloader RHEL システムロールを使用して、GRUB ブートメニューにパスワードを自動的に設定できます。この方法により、権限のないユーザーによるブートパラメーターの変更を効率的に防止し、システムのブートをより適切に制御できます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。
手順
機密性の高い変数を暗号化されたファイルに保存します。
vault を作成します。
ansible-vault create ~/vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
$ ansible-vault create ~/vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-vault createコマンドでエディターが開いたら、機密データを<key>: <value>形式で入力します。pwd: <password>
pwd: <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存して、エディターを閉じます。Ansible は vault 内のデータを暗号化します。
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。--- - name: Configuration and management of GRUB boot loader hosts: managed-node-01.example.com vars_files: - ~/vault.yml tasks: - name: Set the bootloader password ansible.builtin.include_role: name: redhat.rhel_system_roles.bootloader vars: bootloader_password: "{{ pwd }}" bootloader_reboot_ok: true--- - name: Configuration and management of GRUB boot loader hosts: managed-node-01.example.com vars_files: - ~/vault.yml tasks: - name: Set the bootloader password ansible.builtin.include_role: name: redhat.rhel_system_roles.bootloader vars: bootloader_password: "{{ pwd }}" bootloader_reboot_ok: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル Playbook で指定されている設定は次のとおりです。
bootloader_password: "{{ pwd }}"- この変数は、ブートパラメーターをパスワードで保護します。
bootloader_reboot_ok: true- 変更を有効にするために再起動が必要であることをロールが検出し、管理対象ノードの再起動を実行します。
重要ブートローダーのパスワードの変更は、冪等のトランザクションではありません。つまり、同じ Ansible Playbook を再度適用すると、結果が同じではなく、管理対象ノードの状態が変わります。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.bootloader/README.mdファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml
$ ansible-playbook --syntax-check --ask-vault-pass ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook --ask-vault-pass ~/playbook.yml
$ ansible-playbook --ask-vault-pass ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
管理対象ノードで、GRUB ブートメニュー画面中に、編集のために e キーを押します。
ユーザー名とパスワードの入力を求められます。
Enter username: root-
ブートローダーのユーザー名は常に
rootであり、Ansible Playbook で指定する必要はありません。 Enter password: <password>-
ブートローダーのパスワードは、
vault.ymlファイルで定義したpwd変数に対応します。
特定のブートローダーエントリーの設定を表示または編集できます。