<div dir="ltr"><div>Hi Sergio,</div><div><br></div><div>I see where you are going with the tempfs. However, remember that when you are using a service tenant, your cloud customers won't be able to snapshot and download the volume. As a result, this attack vector is covered.</div><div><br></div><div>With a shadow tenant or service tenant, your real risk is someone exploiting your DB, dropping on a shell and escalating their privileges so that they can read the file where the guest-agent RabbitMQ password is stored.</div><div><br></div><div>I had a discussion with Amrith at the summit and the conclusion was that hardening the DB and adding SELinux / AppArmor as a second line of defence is the best strategy right now.</div><div><br></div><div>@Amrith,</div><div><br></div><div>Please correct me if I'm wrong. As far as I remember Trove can be configured using a service tenant or a shadow tenant.</div><div><br></div><div>With a service tenant, all DB instances go to a single Trove owned tenant. Neutron "black magic"<span style="color:rgb(84,84,84)">™ is used to plumb the network interface of the DB instance back to the customer tenant on a given port. Security groups are used to ensure that the DB instances cannot talk to each other at all.</span></div><div><br></div><div>The outstanding tasks with the service tenant model are:</div><div>1. Ensure that the security groups are being configured correctly to prevent horizontal movement if a Trove instance is compromised.</div><div>2. Fix the way Trove does backups to object storage, because currently all backups would go to the same container and there is a risk someone might be able to restore a backup that is owned by another tenant.</div><div><span style="color:rgb(84,84,84)"><br></span></div><div><span style="color:rgb(84,84,84)">With a shadow tenant, a second tenant is created for every customer tenant using Trove. As with the service tenant, they cannot see or manipulate things in this tenant. The network is plumbed back to their primary (visible) tenant, so they can reach their DB. In this model, only DB instances owned by them are placed in this tenant. This probably provider better tenancy isolation, at the cost of the propagation of shadow tenants for every real tenant.</span></div><div><span style="color:rgb(84,84,84)"><br></span></div><div><font color="#545454">Have I missed anything?</font></div><div><font color="#545454"><br></font></div><div><font color="#545454">Cheers,</font></div><div><font color="#545454">Bruno</font></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 8, 2017 at 2:34 PM, Mark Kirkwood <span dir="ltr"><<a href="mailto:mark.kirkwood@catalyst.net.nz" target="_blank">mark.kirkwood@catalyst.net.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In fact you are not :-) . The relevant code for shadow tenant is in<br>
<br>
trove/common/single_tenant_rem<wbr>ote.py<br>
<br>
Hopefully confusion reduces,<br>
<br>
regards<span class="HOEnZb"><font color="#888888"><br>
<br>
Mark</font></span><span class="im HOEnZb"><br>
<br>
<br>
On 06/02/17 17:46, Mark Kirkwood wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ah, are you saying that "shadow tenant" is not possible in standard Openstack? (I did wonder if that was the case).<br>
<br>
<br>
</blockquote>
<br>
<br></span><div class="HOEnZb"><div class="h5">
______________________________<wbr>_________________<br>
Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k</a><br>
Post to     : <a href="mailto:openstack@lists.openstack.org" target="_blank">openstack@lists.openstack.org</a><br>
Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k</a><br>
</div></div></blockquote></div><br></div>