[ 
https://issues.apache.org/jira/browse/CASSANDRA-21546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18101860#comment-18101860
 ] 

Stefan Miklosovic commented on CASSANDRA-21546:
-----------------------------------------------

_IRoleManager is an interface and one of the implementations is RoleManager. If 
any other implementation needs to perform some sort of role initialization, 
they can do it by using the configured instance of IDefaultRoleInitializer._

Well I would argue that if _any other implementation needs to perform some sort 
of role initialization_ then they implement it in that IRoleManager. I have a 
hard time to imagine (but maybe my knowledge about the usage is just limited 
here) that a specific implementation of IDefaultRoleManager would be reused 
across various implementations of RoleManager-s.

E.g. imagine that we are delegating whole role management to some web service. 
Then "create a default role" would probably call some e.g. REST endpoint (I am 
just completely figuring this out). The calling of that stuff is so specific it 
is not to be reused anywhere else but in that role manager. 

> Support pluggable default role initialization (avoid hardcoded superuser 
> password)
> ----------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-21546
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21546
>             Project: Apache Cassandra
>          Issue Type: Bug
>            Reporter: Aparna Naik
>            Assignee: Aparna Naik
>            Priority: Normal
>
> Cassandra's first-boot bootstrap hardcodes the creation of a cassandra 
> superuser role with a default password (cassandra). Every new cluster starts 
> with this guessable credential exposed until an operator manually rotates or 
> drops it, and deployments that already use mutual TLS have no way to 
> bootstrap a superuser identity without also creating this password-based one. 
> This ticket will make the default role bootstrap pluggable via a new 
> IDefaultRoleInitializer interface and default_role_initializer config option. 
> The existing password-based behavior will be the default implementation for 
> backward compatibility, and it will add a MutualTlsDefaultRoleInitializer 
> that instead maps a client certificate identity to the superuser role, so no 
> password credential needs to exist at all.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to