Reconciling security and functional requirements in multi-tenant clouds