The main reason we support multiple keyspaces is to allow separation
of different applications.  So within a keyspace, the app should
manage permissions, but at the keyspace level Cassandra should be in
charge.

On Wed, Nov 11, 2009 at 4:18 PM, Coe, Robin <robin....@bluecoat.com> wrote:
> Do you mean that users interacting with Cassandra through the CLI should be
> restricted based on a security service?  I agree.  However, I believe the
> more common case is to front the Cassandra service with an application
> layer, as you would expose a relational backend.  For that kind of service,
> the application should control the security.
>
>
>
> Basically, a user request to Cassandra is not stateful; any request should
> be able to perform a transaction against any node in the cluster, using an
> appropriate consistency model for the request.  Requiring something like
> real time token synchronization across all nodes in a cluster seems outside
> of Cassandra’s  eventual consistency model.
>
>
>
> Securing the data is intrinsically application-specific.  While I could see
> adding a plugin that makes the CLI access point secured, I would still want
> that to be made in a pluggable fashion, so it could be swapped out with a
> custom implementation.
>
>
>
> Of course, this is just my point of view, but I make it after having written
> several security layers on J2EE apps over the years and none of them have
> been the same.  Besides that, I want the data layer to be highly efficient
> and in my opinion, it isn’t the work of the data service to impose security.
>
>
>
> Robin.
>
>
>
> From: Brandon Williams [mailto:dri...@gmail.com]
> Sent: November 11, 2009 4:44 PM
> To: cassandra-user@incubator.apache.org
> Subject: Re: Re: bandwidth limiting Cassandra's replication and access
> control
>
>
>
> On Wed, Nov 11, 2009 at 9:40 AM, Coe, Robin <robin....@bluecoat.com> wrote:
>
> IMO, auth services should be left to the application layer that interfaces
> to Cassandra and not built into Cassandra.  In the tutorial snippet included
> below, the access being granted is at the codebase level, not the
> transaction level.  Since users of Cassandra will generally be fronted by a
> service layer, the java security manager isn’t going to suffice.  What this
> snippet could do, though, and may be the rationale for the request, is to
> ensure that unauthorized users cannot instantiate a new Cassandra server.
>  However, if a user has physical access to the machine on which Cassandra is
> installed, they could easily bypass that layer of security.
>
>
>
> What if Cassandra IS the application you're exposing?  Imagine a large
> company that creates one large internal Cassandra deployment, and has
> multiple departments it wants  to create separate keyspaces for.  You can do
> that now, but there's nothing except a gentlemen's agreement to prevent one
> department from trashing another department's keyspace, and accidents do
> happen. You can front the service with some kind of application layer, but
> then you have another API to maintain, and you'll lose some performance this
> way.
>
>
>
> -Brandon

Reply via email to