Implementing Security

Certify and Increase Opportunity.
Be
Govt. Certified Apache Cassandra Professional

Implementing Security

Using authentication and authorization requires configuration changes in cassandra.yaml and two additional files: one for assigning users and their permissions to keyspaces and column families, and the other for assigning passwords to those users. These files are named access.properties and passwd.properties, respectively, and are located in the conf directory.

To set up simple authentication and authorization

Edit cassandra.yaml, setting org.apache.cassandra.auth.SimpleAuthenticator as the authenticator value. The default value of AllowAllAuthenticator is equivalent to disabling authentication.
Edit access.properties, adding entries for users and their permissions to read and write to specified keyspaces and column families. See access.properties below for details on the correct format.
Make sure that users specified in access.properties have corresponding entries in passwd.properties. See passwd.properties below for details and examples.
After making the required configuration changes, you must specify the properties files when starting Cassandra with the flags -Dpasswd.properties and -Daccess.properties. For example:

cd $CASSANDRA_HOME
sh bin/cassandra -f -Dpasswd.properties=conf/passwd.properties -Daccess.properties=conf/access.properties

access.properties
This file contains entries in the format KEYSPACE[.COLUMNFAMILY].PERMISSION=USERS where

KEYSPACE is the keyspace name.
COLUMNFAMILY is the column family name.
PERMISSION is one of <ro> or <rw> for read-only or read-write respectively.
USERS is a comma delimited list of users from passwd.properties.

For example, to control access to Keyspace1 and give jsmith and Elvis read-only permissions while allowing dilbert full read-write access to add and remove column families, you would create the following entries:

Keyspace1.<ro>=jsmith,Elvis Presley
Keyspace1.<rw>=dilbert

To provide a finer level of access control to the Standard1 column family in Keyspace1, you would create the following entry to allow the specified users read-write access:

Keyspace1.Standard1.<rw>=jsmith,Elvis Presley,dilbert

The access.properties file also contains a simple list of users who have permissions to modify the list of keyspaces:

<modify-keyspaces>=jsmith

passwd.properties
This file contains name/value pairs in which the names match users defined in access.properties and the values are user passwords. Passwords are in clear text unless the passwd.mode=MD5 system property is provided.

jsmith=havebadpass
Elvis Presley=graceland4evar
dilbert=nomoovertime

Share this post
[social_warfare]
Creating a cluster and nodes
Connecting

Get industry recognized certification – Contact us

keyboard_arrow_up