Cassandra – Sécurisation de base du cluster


De base, Cassandra est configuré en laissant l’accès ouvert sans sécurité en tant que super-utilisateur cassandra.

Il est donc nécessaire de sécuriser le système une fois toute la configuration réalisée, que ce soit un Cassandra local ou un Cassandra cluster.

Pré-requis

Procéder à une sauvegarde complète des serveurs invoqués dans votre cluster Cassandra avant toute modification de la sécurité que vous pourriez ne pas maîtriser.

Il est crucial d’être capable de revenir avant la mise en place de la sécurité si jamais vous vous trouviez dans une configuration où vous n’arrivez plus à vous connecter

Modification du mode de connexion et d’authentification

Modifier le fichier cassandra.yaml de la façon suivante :

authenticator = PasswordAuthenticator
authorizer = CassandraAuthorizer

sur chacun des nœuds du cluster.

Redémarrer le cluster

Il est nécessaire de redémarrer tous les nœuds du cluster pour que la modification de configuration soit prise en compte.

Connexion avec le super-utilisateur cassandra

Se connecter avec le super-utilisateur cassandra dont le mot de passe par défaut à l’installation est cassandra.

Modification de la topologie réseau de Cassandra d’authentification système (uniquement cluster)

Passer l’instruction suivante :

ALTER KEYSPACE system_auth
 WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'dc1' : 6};

« dc1 » ici, est le nom du datacenter que vous avez configuré au préalable dans le fichier cassandra-rackdc.properties

Création d’un nouveau rôle super-utilisateur

Se connecter à Cassandra et passer l’instruction suivante :

create role admcass with password 'xxxxxx' and login = true
and superuser = true;

« admcass » est un exemple de nom. Tout l’intérêt de l’opération est justement d’avoir un nom de super-utilisateur non-connu de potentiels hackers, à l’inverse du super-utilisateur cassandra par défaut.

Désactivation du compte super-utilisateur cassandra

ATTENTION !!! A ce point, si vous avez fait une erreur de configuration plus haut, il ne vous sera plus possible de vous connecter à votre base de données (locale ou cluster) avec cet utilisateur. Le retour à la sauvegarde faite au tout début pourrait s’avérer dans ce nécessaire.

Se connecter avec le nouveau super-utilisateur (ce qui permet de s’assurer qu’il est bien configuré !) et modifier cassandra avec un mot de passe que vous oublierez de suite, le super-utilisateur cassandra n’ayant plus d’utilité, et lui enlever login et superuser :

alter role cassandra with password = 'jhfqzjdfdhjqsgeuygfiqu'
and login = false and superuser = false;

Supprimer tous les droits pour l’utilisateur cassandra est un principe de sécurité empêchant quiconque connaîtrait l’architecture Cassandra et sa (non-)sécurité de base de hacker le système.