Re: Proposal: Encrypted Namespaces

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020-08-06T18:55:29, Jan Fajerski <jfajerski@xxxxxxxx> wrote:

Hi all,

let me try to add a few comments on the use case.

> Just to expand on Joao's points a little. Afaiu the use case can be
> considered as a quick and safe data delete for tenants. Delete might be the
> wrong term here but "make data inaccessible" is a bit clunky. I think
> something regulatory plays a role here but essentially one requirement this
> can address is to quickly and reliably make a tenants data inaccessible (by
> deleting the encryption key).
> I think this probably shouldn't be labeled as encryption in the sense of
> keeping data confidential in the presence of adversarial agents, but rather
> encryption can be looked at as a means to an end...safely deleting data at a
> certain time.

So, yes. Dynamic multi-tenancy.

This includes the ability to provision but also deprovision differently
encrypted namespaces.

Doing this at the full pool (consisting of dedicated OSDs) level is too
coarse. It'd require significant overhead in terms of OSD
layout/deployment, CRUSH map editing etc.

Pools in general are a fairly clunky concept in Ceph. If all my tenants
have similar redundancy needs but aren't supposed to share the same
namespace and have different data amounts, I don't want a million pools.
Hence, namespaces as a more lightweight construct (even if there's parts
missing that make namespaces truly useful as "virtual pools", there's
hopefully more coming ;-).

There's a minor benefit for tenant isolation - if, by accident, data is
exposed, unless the client also supplied the right key as part of their
CephX auth, perhaps they can't access it. So even if they steal the OSD
key, maybe they've not stolen the tenant key. But that's somewhat of
a thinner security blanket rather than an actual bunker.

Though I'd like to submit for consideration that Amazon's S3 "SSE"
threat model is pretty much similar.

As for client side encryption: that is, indeed, an option. It's not
mutually exclusive. But from what I understand, not necessarily easier,
and requires modifying all clients and making sure they're compatible.

(For RBD, btw, this can be done via storage classes in k8s, which can be
independently encrypted. But this is exclusive access, not shared
data.)

For shared file (CephFS), which is our key focus here so far, client
side encryption would be hard - and file/directory names and attribute
values can easily be considered risky data. (None of the encrypted file
system layers supports a shared file system underneath.)

We could fairly easily stand up an MDS set that's pointed at
a (potentially encrypted) dedicated namespace though.

Also, if the performance needs otherwise require unencrypted data, this
allows for encrypting only a subset of data w/o full OSD encryption.

I understand and agree that it's not perfectly as awesome as full,
consistent client-side encryption for everything.

After long discussions, though, this is better than the current status,
and seemed less difficult than full client side encryption, while
ticking all the customer requirements and regulatory arguments.

If we can more easily add the client-side encryption to the RADOS client
protocol (so it works consistently with RBD, CephFS data and metadata
paths, RGW, etc), that'd be awesome. I think.


Regards,
    Lars

-- 
SUSE Software Solutions Germany GmbH, MD: Felix Imendörffer, HRB 36809 (AG Nürnberg)
"Architects should open possibilities and not determine everything." (Ueli Zbinden)
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx




[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux