19.4. 仮想マシンユーザーが使用できるアクションの制限
場合によっては、RHEL 9 でホストされる仮想マシン (VM) のユーザーがデフォルトで実行できるアクションにより、セキュリティーリスクが発生する可能性があります。この場合は、ホストマシンで polkit
ポリシーツールキットを使用するように libvirt
デーモンを設定して、仮想マシンユーザーに利用可能なアクションを制限できます。
手順
オプション:
libvirt
に関連するシステムのpolkit
制御ポリシーが必要に応じて設定されていることを確認します。/usr/share/polkit-1/actions/
ディレクトリーおよび/usr/share/polkit-1/rules.d/
ディレクトリーにある libvirt 関連のファイルすべてを検索します。# ls /usr/share/polkit-1/actions | grep libvirt # ls /usr/share/polkit-1/rules.d | grep libvirt
ファイルを開き、ルール設定を確認します。
polkit
制御ポリシーの構文の読み取りに関する詳細は、man polkit
を使用します。libvirt
制御ポリシーを変更します。これを行うには、以下を行います。-
/etc/polkit-1/rules.d/
ディレクトリーに新しい.rules
ファイルを作成します。 このファイルにカスタムポリシーを追加して保存します。
libvirt
コントロールポリシーの詳細および例については、アップストリームのlibvirt
ドキュメント を参照してください。
-
polkit
で決定されるアクセスポリシーを使用するように仮想マシンを設定します。これを行うには、
/etc/libvirt/
ディレクトリーで仮想化ドライバーのすべての設定ファイルを見つけて、それらのaccess_drivers = [ "polkit" ]
行のコメントを外します。# find /etc/libvirt/ -name virt*d.conf -exec sed -i 's/#access_drivers = \[ "polkit" \]/access_drivers = \[ "polkit" \]/g' {} +
前の手順で変更した各ファイルで、対応するサービスを再起動します。
たとえば、
/etc/libvirt/virtqemud.conf
を変更した場合には、virtqemud
サービスを再起動します。# systemctl try-restart virtqemud
検証
VM アクションを制限する予定だったユーザーとして、制限されたアクションの 1 つを実行します。
たとえば、特権のないユーザーがシステムセッションで作成された VM の表示を制限されている場合は、以下を実行します。
$ virsh -c qemu:///system list --all Id Name State -------------------------------
お使いのシステムに 1 つ以上の仮想マシンが存在していても、このコマンドで仮想マシンがリスト表示されない場合は、
polkit
は特権のないユーザーのアクションを正常に制限します。
トラブルシューティング
現在、
polkit
を使用するようにlibvirt
を設定すると、libvirt-dbus
サービスとの互換性がないため、RHEL 9 Web コンソールを使用 する VM に接続できなくなります。Web コンソールで仮想マシンのきめ細かいアクセス制御が必要な場合は、カスタム D-Bus ポリシーを作成します。手順については、Red Hat ナレッジベースの How to configure fine-grained control of Virtual Machines in Cockpit を参照してください。
関連情報
-
man polkit
コマンド -
polkit アクセス制御ポリシー に関する
libvirt
アップストリーム情報