TMAegis
More rules for cassandra

TMA-CASSANDRA-3.1

Ensure the cassandra and superuser roles are separate

HighLevel 1Automatedcassandra

Description

The default installation of Cassandra includes a superuser role named cassandra. This necessitates the creation of a separate role to be the superuser role. Runs cqlsh against CQLSH_HOST/CQLSH_PORT (default 127.0.0.1:9042) with credentials from ~/.cassandra/cqlshrc ([authentication] username/password) of a superuser. Passes when the default cassandra role is not a superuser; also review the remaining superuser roles (3.8).

How it is checked

Audit method: SQL query

sql_query
out=$(cqlsh -e 'SELECT role FROM system_auth.roles WHERE is_superuser = True ALLOW FILTERING;' 2>/dev/null) || exit 1; printf '%s\n' "$out" | grep -cE '^[[:space:]]*cassandra[[:space:]]*$' || true
Expected output
0

How it is fixed

Fix method: Guidance or infrastructure patch

CREATE ROLE <admin> WITH PASSWORD = '<strong>' AND LOGIN = true AND SUPERUSER = true; GRANT ALL PERMISSIONS ON ALL KEYSPACES TO <admin>; log in as it and run ALTER ROLE cassandra WITH SUPERUSER = false AND LOGIN = false;

Properties

Operating systems
Any
Tags
cassandraauthenticationprivileges
Reference
CIS Apache Cassandra 5.0 Benchmark v1.1.0 - 3.1 Ensure the cassandra and superuser roles are separate

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target cassandra