スーパーユーザー・アカウントの作成
ロール・ベースのアクセス制御を有効にしたら、独自のスーパーユーザー・アカウントを作成し、デフォルトのcassandra
アカウントを無効にするか削除します。
スーパーユーザー・オプションで作成されたロールには、データベースへのフル・アクセス権があります。このロールを持つユーザーは、すべてのデータベース・リソースで任意のCQLコマンドを実行できます。 DataStaxでは、スーパーユーザー・ステータスを付与するユーザー数を限定し、内部スキームでスーパーユーザー認証を管理することを推奨しています。LDAPグループ管理(role_management_options.mode: ldap)を使用する場合、意図しないロール割り当てを防止するために、authentication_options.scheme_permissions: trueを設定し、スーパーユーザー・ロールを内部スキームにバインドします(「認証スキームへのロールのバインド」を参照)。
DSEには、デフォルトのロールcassandra
が含まれています。パスワードはcassandra
です。cassandraロールはスーパーユーザー・ログイン・アカウントで、データベースへのフル・アクセス権があります。 ログインを含むcassandraアカウントからの要求では、QUORUMの整合性レベルを使用します。QUORUMは、複数のデータ・センター環境において重大なパフォーマンス低下を招く場合があります。 セキュリティとパフォーマンスのために、DataStaxは、RBACの初回設定時に一度だけcassandraロールを使用して自分のrootアカウントを確立してから、cassandraロールを無効にするか削除することを推奨しています。
始める前に
手順
-
Cassandraユーザーとして、CQLシェル(cqlsh)にログインします。
cqlsh -u cassandra -p cassandra
-
CQLデータベースに格納されているパスワードを使用して新しいスーパーユーザー・アカウントを作成します。
CREATE ROLE root_user_name with SUPERUSER = true AND LOGIN = true and PASSWORD = 'password';
-
cqlshを終了します。
EXIT;
-
cassandraロールを無効にするか削除するために、前の手順で作成した新しいロールでログインします。
cqlsh -u root_user
プロンプトに応じてパスワードを入力します。
-
LISTを使用して、ロールがスーパーユーザーとして作成されたことを確認します。
LIST ROLES;
role | super | login | options ---------------------+-------+-------+--------- root_user | True | True | {} cassandra | True | True | {} (2 rows)
-
cassandraアカウントを削除するか更新します。
- cassandraアカウントを削除します。
DROP ROLE cassandra;
- スーパーユーザーを無効にし、パスワードを変更してcassandraロールを更新します。
ALTER ROLE cassandra WITH SUPERUSER = false AND LOGIN = false AND password='new_secret_pw';
実稼働環境では、データベースのセキュリティを確保するために、このアカウントを削除することを推奨します。LDAPなどの外部認証方法を使用すると、昇格した権限で誤って割り当てられることがないようにできます。 - cassandraアカウントを削除します。
-
cassandraロールが削除されたことを確認します。
LIST ROLES;
これらの手順で作成されたロールのみが表示されます。role | super | login | options ---------------------+-------+-------+--------- root_user | True | True | {} (1 rows)
- ファイアウォールを再開して、実稼働CQLトラフィックをサポートします。