Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.2. クライアントアクセス制御

libvirt のクライアントアクセス制御フレームワークにより、システム管理者は複数のクライアントユーザー、管理オブジェクト、および API 操作に対する細かい権限のルールを設定できます。これにより、クライアントの接続を最小限の特権セットに制限できます。
デフォルトの設定では、libvirtd デーモンには、アクセス制御のレベルが 3 つあります。
  1. すべての接続は認証されていない状態で開始します。ここで許可される唯一の API 操作は、認証を完了するために必要なものです。
  2. 認証が成功すると、接続は、クライアント接続の発信元ソケットに応じて、すべての libvirt API 呼び出しへの完全な無制限のアクセスを持つか、"読み取り専用" 操作のみに制限されます。
  3. アクセス制御フレームワークを使用すると、認証された接続に、管理者が定義するきめ細かいアクセス許可ルールを設定できます。
libvirt のすべての API 呼び出しには、使用されるオブジェクトに対して検証される一連のアクセス権があります。さらに、特定のフラグが API 呼び出しに設定されているかについてアクセス権のチェックが行われます。API 呼び出しに渡されるオブジェクトのチェックのほかにも、一部のメソッドは結果をフィルターリングします。

2.2.1. アクセス制御ドライバー

アクセス制御フレームワークは、今後追加される任意のアクセス制御技術との統合を可能にするためにプラグ可能なシステムとして設計されています。デフォルトでは、none ドライバーが使用されます。これは、アクセス制御チェックをまったく実行しません。現在、libvirt は polkit を実際のアクセス制御ドライバーとして使用するためのサポートを提供します。polkit アクセスドライバーの使用方法は、設定に関するドキュメント を参照してください。
アクセスドライバーは、access_drivers パラメーターを使用して /etc/libvirt/libvirtd.conf 設定ファイルで設定されます。このパラメーターは、さまざまなアクセス制御ドライバー名を受け入れます。複数のアクセスドライバーが要求される場合は、アクセスが付与されるためにすべてが正常に処理される必要があります。polkit をドライバーとして有効にするには、augtool コマンドを実行します。
# augtool -s set '/files/etc/libvirt/libvirtd.conf/access_drivers[1]' polkit
ドライバーをデフォルト (アクセス制御なし) に戻すには、以下のコマンドを入力します。
# augtool -s rm /files/etc/libvirt/libvirtd.conf/access_drivers
libvirtd.conf への変更を適用するには、libvirtd サービスを再起動します。
# systemctl restart libvirtd.service