Menu Close
Settings Close

Language and Page Formatting Options

18.4. 仮想マシンユーザーが使用できるアクションの制限

場合によっては、RHEL 9 でホストされる仮想マシン (VM) のユーザーがデフォルトで実行できるアクションにより、セキュリティーリスクが発生する可能性があります。この場合は、ホストマシンで polkit ポリシーツールキットを使用するように libvirt デーモンを設定して、仮想マシンユーザーに利用可能なアクションを制限できます。

手順

  1. オプション:お使いの設定に基づいて、libvirt に関連するシステムの polkit コントロールポリシーが設定されていることを確認してください。

    1. /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
    2. ファイルを開き、ルール設定を確認します。

      polkit 制御ポリシーの構文の読み取りに関する詳細は、man polkit を使用します。

    3. libvirt 制御ポリシーを変更します。これを行うには、以下を行います。

      1. /etc/polkit-1/rules.d/ ディレクトリーに新しい .conf ファイルを作成します。
      2. このファイルにカスタムポリシーを追加して保存します。

        libvirt コントロールポリシーの詳細および例については、アップストリームの libvirt ドキュメント を参照してください。

  2. polkit で決定されるアクセスポリシーを使用するように仮想マシンを設定します。

    1. /etc/libvirt/ ディレクトリーにある、仮想化ドライバーの設定ファイルをすべて検索します。

      # ls /etc/libvirt/ | grep virt*d.conf
    2. 見つかったすべてのファイルで access_drivers = [ "polkit" ] 行のコメントを解除して、ファイルを保存します。

      警告

      見つかった virt*d.conf ファイルの一部の行のコメントを解除しないと、特定の virsh コマンドが期待どおりに機能しない場合があります。

  3. 前の手順で変更した各ファイルで、対応するサービスを再起動します。

    たとえば、/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 コンソールで仮想マシンの詳細なアクセス制御が必要な場合、Red Hat では、カスタム D-Bus ポリシーを作成することを推奨します。手順については、Red Hat ナレッジベースの How to configure fine-grained control of Virtual Machines in Cockpit を参照してください。

関連情報