JMX MBeanへのアクセスの制御

認証JMXユーザーのMBeanへのアクセス権を設定します。

多くの監視ツールと管理ツールでは、DataStax Enterprise(DSE)クラスターでのアクションの実行にマネージドBean(MBean)が使用されます。

JMX認証が有効になっている場合、スーパーユーザー以外のロールは、nodetoolおよび他のDataStax Enterprise(DSE)ユーティリティを使用するためにMBeanにアクセスする必要があります。また、JMXを使用してデータベースと対話するサードパーティの監視ツールまたはその他のカスタム管理ユーティリティがMBeanへのアクセスを必要とする場合もあります。

DSEユーティリティの多くは同じ、または類似のMBeanを使用するため、ユーザーが実行できるコマンドを制限するパーミッション・セットを作成するのは困難です。たとえば、nodetool statusnodetool decommissionnodetool removenodenodetool drainなどには、StorageService MBeanに対するEXECUTEパーミッションが必要です。
重要: すべてのnodetoolコマンドには、すべてのMBeanでDESCRIBEが必要です。

パーミッションが必要な場合のアクセス拒否エラー

ロールmartinがMBeanにアクセスせずにnodetool statusを実行しようとすると、
nodetool -u martin -pw password status
要求は拒否されます。
nodetool: Failed to connect to '127.0.0.1:7199' - SecurityException: 'Access Denied'.

手順

  • MBEAN管理者ロールを作成します。
    1. MBean管理者ロールを作成します。
      CREATE ROLE mbean_admin;
    2. このロールにすべてのMBeanへのアクセス権を付与します。
      GRANT ALL PERMISSIONS on ALL MBEANS to mbean_admin;
    3. このロールを1つのユーザー・ロールまたはグループ・ロールに割り当てます。
      GRANT mbean_admin TO mike;
      MBeanの完全なリストを取得するには、「nodetool sjkの使用」を参照してください。
  • nodetoolコマンドを実行するロールに必要な最低限のパーミッション:
    1. superuserアカウントまたはMBeansへのフル・アクセスを持つロールを使用してcqlshにログインします。
    2. スーパーユーザー以外のロールに、すべてのMBEANに対するDESCRIBEを付与します。
      GRANT DESCRIBE ON ALL MBEANS TO martin;
    3. そのロールに、ストレージ・サービスMBEANに対するSELECTEXECUTEの両方のパーミッションを付与します。
      GRANT SELECT, EXECUTE ON MBEAN 'org.apache.cassandra.db:type=StorageService' TO martin;
      
    4. そのロールに、エンドポイント・スニッチ情報MBeanに対するEXECUTEを付与します。
      GRANT EXECUTE ON MBEAN 'org.apache.cassandra.db:type=EndpointSnitchInfo' TO martin;
      ロールmartinはnodetoolコマンドを実行可能になります。
      nodetool -u martin -pw password status
      Datacenter: Cassandra
      =====================
      Status=Up/Down
      |/ State=Normal/Leaving/Joining/Moving
      --  Address         Load       Tokens       Owns    Host ID                               Rack
      UN  10.10.100.12  67.45 MiB  1            ?       8234303e-1f0b-4ced-844b-48e1ccbce3e2  rack1
      UN  10.10.100.30  776.03 KiB  1            ?       ff96a036-a4e3-4257-8787-a66010919c36  rack2