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.