認証情報、ロール、およびパーミッションのキャッシュ設定の管理

認証情報、ロール、およびパーミッションのキャッシュの時間と更新間隔を変更します。

デフォルトでは、DataStax Enterprise(DSE)はユーザーの認証情報、ロール、およびパーミッションをキャッシュします。キャッシュすることで、認証プロセス全体を繰り返すことなく指定された期間内に複数の接続要求が実行され、アクションごとにsystem_authテーブルにクエリーすることなく複数の要求を発行できます。

セキュリティ関連のキャッシュ設定

cassandra.yamlファイルの設定を調整します。

roles_validity_in_ms
デフォルト:2000。ロール・キャッシュの有効期間。無効にするには、0に設定します。ユーザーに割り当てられているロールのリストをキャッシュする時間を指定します。ユーザーは、直接割り当てられたり、継承(別のロールに付与されたロール)したりすることで、複数のロールを持つ場合があります。ロール階層の複雑さ、ロール変更に対する許容範囲、環境内のノード数、クラスターのアクティビティー・レベルなどに基づいて、この設定を調整します。
パーミッションのフェッチは高負荷操作になる場合があり、この設定を使うことで柔軟性が得られます。認証セッションで付与されたロールは、AuthenticatedUserにキャッシュされます。指定された時間を過ぎると、ロールの有効性が再度チェックされます。DseAuthenticatorの使用時に内部認証が有効でない場合、自動的に無効になります。
roles_update_interval_in_ms
デフォルト:2000。ロール・キャッシュの更新間隔を有効にします。デフォルトはroles_validity_in_msと同じ値になります。この間隔を過ぎると、キャッシュ・エントリーを更新できるようになります。次回アクセス時に、非同期の再読み込みがスケジュールされ、再読み込みが完了するまで古い値が返されます。roles_validity_in_msがゼロではない場合、こちらもゼロ以外の値でなければなりません。
credentials_validity_in_ms
デフォルト:2000。キャッシュ内の認証情報が有効と見なされる期間(ミリ秒)。このキャッシュは、提供されているIAuthenticatorのPasswordAuthenticator実装と厳密に対応しています。別のIAuthenticator実装が構成されている場合、このキャッシュは使用されず、これらの設定は影響しません。
0に設定すると、この設定は無効になります。
注: 認証情報は暗号化されてキャッシュされます。これによって生じるパフォーマンス・ペナルティーによって、キャッシングがもたらすレイテンシーの低減が相殺される場合があります。
credentials_update_interval_in_ms
デフォルト:credentials_validity_in_msと同じ値。この間隔を過ぎると、キャッシュ・エントリーを更新できるようになります。キャッシュへの次のアクセス時に、キャッシュの非同期再読み込みがスケジュールされます。このキャッシュの再読み込みが完了するまで、キャッシュは古い値を返します。

credentials_validity_in_msがゼロ以外の場合、このプロパティもゼロ以外でなければなりません。

permissions_validity_in_ms
デフォルト:2000。パーミッションのフェッチはリソースを多く消費する場合があります。パーミッシヨン・クエリーがパフォーマンスに及ぼす影響を管理するために、キャッシュ内のパーミッションが有効と見なされる期間(ミリ秒)を定義します。セキュリティの許容範囲に合わせてキャッシュの有効期間を設定します。このキャッシュは、標準認証と行レベル・アクセス制御(RLAC)キャッシュに使用されます。キャッシュが完全に有効なのは短い期間です。
0に設定すると、この設定は無効になります。
permissions_update_interval_in_ms
デフォルト:permissions_validity_in_msと同じ値。標準認証キャッシュと行レベル・アクセス制御(RLAC)キャッシュの更新間隔を設定します。この間隔を過ぎると、キャッシュ・エントリーを更新できるようになります。次回アクセス時に、非同期の再読み込みがスケジュールされ、再読み込みが完了するまで古い値が返されます。permissions_validity_in_ms がゼロ以外の場合、roles_update_interval_in_msもゼロ以外でなければなりません。
permissions_cache_max_entries
デフォルト:1000。標準認証キャッシュと行レベル・アクセス制御(RLAC)キャッシュで保持されるエントリーの最大数。デフォルト値1000の場合、RLACパーミッション・キャッシュは最大で1000のエントリーを保持でき、標準認証キャッシュも最大で1000のエントリーを保持できます。このオプションは両方のキャッシュに適用されます。行レベルのパーミッションの設定も行う場合にパーミッション・キャッシュのサイズを指定するには、以下の式を使用します。
numRlacUsers * numRlacTables + 100
このオプションがcassandra.yamlに含まれていない場合は手動で入力します。「DSE Unified Authentication(DSE統合認証)の有効化」を参照してください。

行レベルのパーミッション・キャッシュ

行レベルのパーミッションを使用する場合、RLACキャッシュを構成して、パーミッション・クエリーのパフォーマンスへの影響を制御します。RLACキャッシュを適切に構成した場合、マイナー・レイテンシー・ペナルティーでノードの通常のスループットが50%減少しますが、CPU使用率は20%増加します。

認証と権限管理のキャッシングの無効化

JMX経由で認証と権限管理のキャッシュ(認証情報、ロール、およびパーミッション)の構成を無効にするには、jvm.optionsファイルで以下の行をコメント解除します。

-Dcassandra.disable_auth_caches_remote_configuration=true

このオプションを設定すると、cassandra.yamlファイルでのみキャッシュ・オプションを設定できるようになります。新しい設定を有効にするには、Cassandraを再起動します。

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。

パッケージ・インストールInstaller-Servicesインストール

/etc/dse/cassandra/cassandra.yaml

tarボール・インストールInstaller-No Servicesインストール

installation_location/resources/cassandra/conf/cassandra.yaml