libvirtd: kvm: Permissões do usuário Centos 6

2

Eu preciso ter controle de acesso do usuário sobre como eles podem usar as máquinas virtuais e o que eles podem fazer via Virsh em um hipervisor baseado em KVM.

Até agora, o que eu aprendi com o link é que eu tenho que habilitar as permissões de soquete unix em /etc/libvirt/libvirtd.conf para o soquete unix e criar um novo grupo chamado libvirtd e adicionar usuários para isso. Então, tudo correu bem, no entanto, com esses usuários não consigo ver nenhuma máquina virtual quando faço

virsh list --all

A documentação em libvirt.ogr também menciona o uso do polkit e outras técnicas.

Se alguém puder me ajudar com qualquer exemplo de trabalho usando o método simples unix socket permission ou polikit ou sudoer ou qualquer outro método.

Eu gostaria de ter permissões de usuário de tal forma que um usuário do virsh possa executar apenas tarefas limitadas, como não posso fazer virsh start , mas não posso virsh destroy .

    
por chandank 15.03.2013 / 19:48

3 respostas

0

Respondendo a minha própria pergunta. A solução mais fácil e simples é sudoers. Nós podemos fazer muitas coisas com expressões regulares de sudoers. Eu simplesmente adicionei uma regra de sudoer.

Guarde todos os nomes de máquinas convidadas de tal forma que você possa especificá-los usando algum tipo de regex. No meu caso eu mantive todas as máquinas convidadas, aquelas que eu quero que sejam controladas por usuários não-root, começando com vmname -.

Abaixo da regra permitiria que usuários não-root iniciassem e consigam o console a vm e não permitirão que ele seja destruído.

Cmnd_Alias KVMCMD = /usr/bin/virsh list --all,/usr/bin/virsh start vmname*
Cmnd_Alias KVMBAD = virsh destroy vmname*

Espero que isso ajude alguém que esteja procurando uma solução semelhante.

    
por 17.03.2013 / 20:50
1

Eu tive sucesso com o uso do PolicyKit no CentOS 6.5 usando o wiki libvirt:

link

A etapa em falta para fazer com que funcione com virsh: é adicionar o seguinte ao seu .bash_profile:

if test -x 'which virsh'; then
  export LIBVIRT_DEFAULT_URI=qemu:///system
fi

(isto é deste post )

Essa configuração também permite um uso bastante uniforme do virt-manager em um computador remoto.

    
por 09.03.2014 / 21:54
0

Para o RBAC adequado, você precisará de uma plataforma de gerenciamento de VM mais sofisticada do que o libvirt, que está lá para controlar o ciclo de vida da VM e pouco mais. Dê uma olhada no oVirt.org para um bom exemplo

    
por 16.03.2013 / 13:28