Re: CDS blueprint: strong auth for cephfs

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

 



On Thu, Nov 14, 2013 at 4:55 PM, Gregory Farnum <greg@xxxxxxxxxxx> wrote:
> On Thu, Nov 14, 2013 at 2:00 AM, Dan van der Ster <dan@xxxxxxxxxxxxxx> wrote:
>> Hi Greg,
>>
>> On Wed, Nov 13, 2013 at 6:45 PM, Gregory Farnum <greg@xxxxxxxxxxx> wrote:
>>> On Wed, Nov 13, 2013 at 8:05 AM, Dan van der Ster <dan@xxxxxxxxxxxxxx> wrote:
>>>> Hi all,
>>>> This mail is just to let you know that we've prepared a draft
>>>> blueprint related to adding strong(er) authn/authz to cephfs:
>>>>
>>>> http://wiki.ceph.com/01Planning/02Blueprints/Firefly/Strong_AuthN_and_AuthZ_for_CephFS
>>>>
>>>> The main goal of the idea is that we'd like to be able to use CephFS
>>>> from untrusted clients:
>>>>   - the CephX key gives full rw access to pools (e.g. data/metadata)
>>>> via rados; we cannot distribute this key to untrusted hosts.
>>>>   - root on untrusted clients can forge their uid/gid and rm -rf /cephfs/*.
>>>>
>>>> In the doc we've proposed one way to add authn/authz to the ceph
>>>> server side, but perhaps there is a simpler (more feasible in the
>>>> short term) solution which would enable us to allow untrusted cephfs
>>>> clients.
>>>
>>> You want to check out:
>>> http://wiki.ceph.com/01Planning/Sideboard/Client_Security_for_CephFS,
>>> the previous edition of the client security blueprint
>>
>> AFAICT, this would allow single users to mount a subtree on CephFS and
>> prevent them from writing where they are not permitted. But our
>> use-case is different: we want to mount /cephfs/ from shared
>> workstations and batch nodes to store personal home directories,
>> shared group areas, and read-only software areas. Managing per-user
>> keyrings and per-user mountpoints would become quickly unmanageable.
>
> Ah, I hadn't gotten that from skimming the blueprint. So this isn't
> just about hooking into Kerberos when we do a mount, you want to
> dynamically retrieve different caps from the monitors as users log on,
> and have that single client choose between them based on who's making
> the request?

In our proposal the "additional capabilities" (which allow IOs with a
particular file/object) are encrypted and sent by the MDS to the
client who passes it on to the OSD for object IOs.

>
>>> the MDS tickets in a lot more detail than you have there, though — for
>>> instance, with your current description you'll need a shared secret
>>> between the OSD and MDS, and you'll need to expire the client extra
>>
>> Right, the shared secret is the kerberos service key in our model.
>
> So the whole Ceph cluster has one shared service key, and they use
> that for securing everything that anybody does? (Sorry, that's
> probably an elementary question, but I haven't looked at Kerberos
> since Yehuda implemented the initial CephX auth.)

We've used the shared service key in the past with other distributed
file systems. But perhaps the model can be changed to per-OSD/MDS
keys.

>
>>> keys, etc. You may want to consider skipping this in the first
>>> iteration and just implementing proper security on the MDS while
>>> relying on RADOS-level options to keep data secure (separate
>>> namespaces or pools for different users, and providing narrow caps to
>>> clients). That would also leave more time for some serious research
>>
>> It sounds like like you're referring to the Sideboard above, which
>> unless I'm wrong won't help for our (not uncommon?) use-case.
>
> Yeah. :/
>
> On Thu, Nov 14, 2013 at 5:13 AM, Arne Wiebalck <Arne.Wiebalck@xxxxxxx> wrote:
>> It looks to me like Maat is already pretty close to what the use of CephFS on untrusted
>> clients would require.
>>
>> Any idea why Maat does not use a kerberized Ceph service and the corresponding
>> shared session keys? I think that could avoid the generation and distribution of per
>> client keys and outsource the shared key negotation to a standardized mechanism
>> (and allow for integration with existing authN service infrastructures, of course).
>
> I do not. If I were placing bets, because it was a research project
> and they didn't have Kerberos set up already. ;) But they also discuss
> the security implications of using a single shared key, and discard it
> because they want the system to remain mostly secure if an attacker
> compromises a machine (and gets access to its keys).
>
>> Also, why was the Maat idea (which was apparently implemented, tested and
>> benchmarked) not integrated into mainline Ceph?
>
> By the time I arrived this was all history; you'll have to wait until
> Sage gets back for that one. I suspect he didn't like the performance
> enough and the trees had diverged non-trivially by the time Maat was
> in a useful state. But if you are brave, you can go back in time
> (couple years ago) and look for the "security" folder, which I think
> contained the Maat changes, and see what would be involved in
> extracting them. :)

Is it this one?
   https://github.com/ceph/ceph/tree/historic/aleung_mds_security/


Cheers, Dan


> -Greg
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [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