kolla-ansible/ansible/roles/nova-cell/templates
Mark Goddard d2d4b53d47 libvirt: support SASL authentication
In Kolla Ansible OpenStack deployments, by default, libvirt is
configured to allow read-write access via an unauthenticated,
unencrypted TCP connection, using the internal API network.  This is to
facilitate migration between hosts.

By default, Kolla Ansible does not use encryption for services on the
internal network (and did not support it until Ussuri). However, most
other services on the internal network are at least authenticated
(usually via passwords), ensuring that they cannot be used by anyone
with access to the network, unless they have credentials.

The main issue here is the lack of authentication. Any client with
access to the internal network is able to connect to the libvirt TCP
port and make arbitrary changes to the hypervisor. This could include
starting a VM, modifying an existing VM, etc. Given the flexibility of
the domain options, it could be seen as equivalent to having root access
to the hypervisor.

Kolla Ansible supports libvirt TLS [1] since the Train release, using
client and server certificates for mutual authentication and encryption.
However, this feature is not enabled by default, and requires
certificates to be generated for each compute host.

This change adds support for libvirt SASL authentication, and enables it
by default. This provides base level of security. Deployments requiring
further security should use libvirt TLS.

[1] https://docs.openstack.org/kolla-ansible/latest/reference/compute/libvirt-guide.html#libvirt-tls

Depends-On: https://review.opendev.org/c/openstack/kolla/+/833021
Closes-Bug: #1964013
Change-Id: Ia91ceeb609e4cdb144433122b443028c0278b71e
2022-03-10 16:57:16 +00:00
..
nova.conf.d Use iSCSI multipath for libvirt 2020-08-19 07:24:51 +00:00
99-kolla-kvm.rules.j2 Make /dev/kvm permissions handling more robust 2020-07-17 17:51:18 +00:00
auth.conf.j2 libvirt: support SASL authentication 2022-03-10 16:57:16 +00:00
id_rsa Copy Nova role as a basis for the Nova cell role 2019-10-01 14:48:19 +01:00
id_rsa.pub Copy Nova role as a basis for the Nova cell role 2019-10-01 14:48:19 +01:00
libvirtd.conf.j2 libvirt: support SASL authentication 2022-03-10 16:57:16 +00:00
nova-cell-bootstrap.json.j2 Make nova perms consistent between applications 2020-05-06 18:36:10 +00:00
nova-compute-ironic.json.j2 Copy Nova role as a basis for the Nova cell role 2019-10-01 14:48:19 +01:00
nova-compute.json.j2 libvirt: support SASL authentication 2022-03-10 16:57:16 +00:00
nova-conductor.json.j2 Remove policy file from nova-conductor config.json template 2020-07-03 12:52:57 +02:00
nova-libvirt.json.j2 libvirt: support SASL authentication 2022-03-10 16:57:16 +00:00
nova-novncproxy.json.j2 Support multiple nova cells 2019-10-16 17:42:36 +00:00
nova-serialproxy.json.j2 Copy Nova role as a basis for the Nova cell role 2019-10-01 14:48:19 +01:00
nova-spicehtml5proxy.json.j2 Support multiple nova cells 2019-10-16 17:42:36 +00:00
nova-ssh.json.j2 Copy Nova role as a basis for the Nova cell role 2019-10-01 14:48:19 +01:00
nova.conf.j2 Merge "Add support for VMware NSXP" 2022-02-18 12:04:41 +00:00
qemu.conf.j2 Copy Nova role as a basis for the Nova cell role 2019-10-01 14:48:19 +01:00
sasl.conf.j2 libvirt: support SASL authentication 2022-03-10 16:57:16 +00:00
secret.xml.j2 Copy Nova role as a basis for the Nova cell role 2019-10-01 14:48:19 +01:00
ssh_config.j2 Copy Nova role as a basis for the Nova cell role 2019-10-01 14:48:19 +01:00
sshd_config.j2 Make nova_ssh listen on api_interface as well 2022-01-10 17:10:46 +00:00