仮想マシンの使用方法と、KVMベースのハイパーバイザーでVirshを介して実行できること)をユーザーアクセス制御する必要があります。
これまでのところ、 http://wiki.libvirt.org から学んだことは、UNIXソケットの/etc/libvirt/libvirtd.conf
でUNIXソケットのアクセス許可を有効にし、libvirtdと呼ばれる新しいグループを作成する必要があるということです。その中にユーザーを追加します。これで問題はありませんでしたが、これらのユーザーの場合、仮想マシンを表示できません。
virsh list --all
Libvirt.ogrのドキュメントには、polkitやその他の手法の使用についても記載されています。
誰かが単純なunix socket permission
メソッドまたはpolikit
またはsudoer
メソッドまたは他のメソッドを使用する実用的な例を手伝ってくれるなら。
Virshのユーザーがvirsh start
を実行できない、virsh destroy
を実行できないなど、限られたタスクしか実行できないようなユーザー権限が必要です。
私自身の質問に答えます。最も簡単で単純な解決策はsudoersです。 sudoersの正規表現で多くのことができます。 sudoerルールを1つ追加しただけです。
ある種の正規表現を使用して指定できるように、すべてのゲストマシン名を保持します。私の場合、vmname-で始まる、root以外のユーザーがコントローラーにしたいすべてのゲストマシンを保持しました。
以下のルールは、root以外のユーザーがコンソールを起動して仮想マシンを取得することを許可し、それを破棄することを許可しません。
Cmnd_Alias KVMCMD = /usr/bin/virsh list --all,/usr/bin/virsh start vmname*
Cmnd_Alias KVMBAD = virsh destroy vmname*
これが同様の解決策を探している人に役立つことを願っています。
Libvirtwikiを使用してCentOS6.5でPolicyKitを使用することに成功しました。
http://wiki.libvirt.org/page/SSHPolicyKitSetup
virsh:
で機能させるために欠けているステップは、.bash_profileに以下を追加することです。
if test -x `which virsh`; then
export LIBVIRT_DEFAULT_URI=qemu:///system
fi
(これはこれからです 投稿 )
この設定により、リモートコンピューター上のvirt-managerからの非常にシームレスな使用も可能になります。
適切なRBACを実現するには、libvirtよりも高度なVM管理プラットフォームが必要です。libvirtはVMライフサイクルを制御するためのものであり、他にはほとんどありません。良い例としてoVirt.org