Red Hat Training

A Red Hat training course is available for RHEL 8

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

場合によっては、RHEL 8 でホストされる仮想マシン (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/ ディレクトリーに新しい .rules ファイルを作成します。
      2. このファイルにカスタムポリシーを追加して保存します。

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

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

    これを行うには、/etc/libvirt/libvirtd.conf ファイルの access_drivers = [ "polkit" ] 行のコメントを外します。

    # sed -i 's/#access_drivers = \[ "polkit" \]/access_drivers = \[ "polkit" \]/' /etc/libvirt/libvirtd.conf
  3. libvirtd サービスを再起動します。

    # systemctl restart libvirtd

検証

  • VM アクションを制限する予定だったユーザーとして、制限されたアクションの 1 つを実行します。

    たとえば、特権のないユーザーがシステムセッションで作成された VM の表示を制限されている場合は、以下を実行します。

    $ virsh -c qemu:///system list --all
    Id   Name           State
    -------------------------------

    お使いのシステムに 1 つ以上の仮想マシンが存在していても、このコマンドで仮想マシンが一覧表示されない場合は、polkit は特権のないユーザーのアクションを正常に制限します。

トラブルシューティング

  • 現在、polkit を使用するように libvirt を設定すると、libvirt-dbus サービスとの互換性がないため、RHEL 8 Web コンソールを使用 する VM に接続できなくなります。

    Web コンソールで仮想マシンのきめ細かいアクセス制御が必要な場合は、カスタム D-Bus ポリシーを作成します。手順については、Red Hat ナレッジベースの How to configure fine-grained control of Virtual Machines in Cockpit を参照してください。

関連情報