A system comprising: a compute fabric comprising a first plurality of machines, each of the first plurality of machines running a first management enclave and a tenant enclave, wherein for each of the first plurality of machines the first management enclave is configured to provide one or more tenant keys into the tenant enclave; the tenant enclave corresponds to a protected area of an application address space for which access is prevented for any application code not resident in the tenant enclave; and the first management enclave corresponds to a protected area of an application address space for which access is prevented for any application code not resident in the first management enclave, except that the first management enclave is permitted to provide the one or more tenant keys to the tenant enclave; and a key fabric comprising a second plurality of machines, each of the second plurality of machines running a second management enclave, wherein for each of the second plurality of machines the second management enclave is configured to cause one or more encrypted tenant keys to be stored locally and exclusively on the second machine, and wherein each of the first and second management enclaves run mutually approvable and authenticatable management enclave application code by running one of identical application code and a different version of the same application code that can be verified as the different version of the same application code, thereby allowing tenant keys to be passed between management enclaves of different machines in a trusted fashion by the management enclaves approving and authenticating management enclave application code. a compute fabric comprising a first plurality of machines, each of the first plurality of machines running a first management enclave and a tenant enclave, wherein for each of the first plurality of machines the first management enclave is configured to provide one or more tenant keys into the tenant enclave; the tenant enclave corresponds to a protected area of an application address space for which access is prevented for any application code not resident in the tenant enclave; and the first management enclave corresponds to a protected area of an application address space for which access is prevented for any application code not resident in the first management enclave, except that the first management enclave is permitted to provide the one or more tenant keys to the tenant enclave; and a key fabric comprising a second plurality of machines, each of the second plurality of machines running a second management enclave, wherein for each of the second plurality of machines the second management enclave is configured to cause one or more encrypted tenant keys to be stored locally and exclusively on the second machine, and wherein each of the first and second management enclaves run mutually approvable and authenticatable management enclave application code by running one of identical application code and a different version of the same application code that can be verified as the different version of the same application code, thereby allowing tenant keys to be passed between management enclaves of different machines in a trusted fashion by the management enclaves approving and authenticating management enclave application code.