権限管理およびオブジェクト・パーミッションの構成

DSEオーソライザーを構成および使用して、認証スキームに対するオブジェクト・パーミッションを管理するためのステップ。

DSEオーソライザーは、認証スキームに対するパーミッションを管理することで、DataStax Enterpriseコンポーネントのカスタム権限管理を提供します。DSEオーソライザーによって、パーミッションはアプリケーション、クライアント・ツール、および権限管理スキームに拡張されます。権限管理は、DataStax Enterpriseクラスターの構成中の暫定モードをサポートします。
注: 認証は、権限管理およびオブジェクト・パーミッションとは無関係です。
dse.yamlファイルの場所は、インストールのタイプによって異なります。
Installer-Services /etc/dse/dse.yaml
パッケージ・インストール /etc/dse/dse.yaml
Installer-No Services install_location/resources/dse/conf/dse.yaml
tarボール・インストール install_location/resources/dse/conf/dse.yaml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra.yaml
tarボール・インストール install_location/resources/cassandra/conf/cassandra.yaml

Cassandraデータにアクセスするためのパーミッションを許可または取り消すには、リレーショナル・データベースの一般的なGRANT/REVOKEパラダイムを使用します。スーパーユーザーは初期のパーミッションを付与します。その後、ロールにはパーミッションを付与および取り消すためのパーミッションが付与される場合と、付与されない場合があります。

DSEオーソライザーでは、以下のCQL権限管理関連の文をサポートしています。

システム・リソースへのアクセス

これらのシステム・テーブルへの読み取りアクセスは、認証されているすべてのユーザーに暗黙的に付与されます。これらのテーブルは、以下のようなほとんどのCassandraツールによって使用されるためです。

  • system.schema_keyspace
  • system.schema_columns
  • system.schema_columnfamilies
  • system.local
  • system.peers

手順

各ノードで、次のようにします。

  1. cassandra.yamlファイルで、authorizercom.datastax.bdp.cassandra.auth.DseAuthorizerであることを確認します。デフォルトでは、オーソライザー・オプションはAllowAllAuthorizerに設定されています。
    authorizer: com.datastax.bdp.cassandra.auth.DseAuthorizer
  2. dse.yamlファイルで、権限管理オプションを以下のように設定します。
    authorization_options: 
    enabled:false
    transitional_mode:disabled
    1. 権限管理をオンにします。
      enabled:true
    2. DataStax Enterpriseクラスターの権限管理のセットアップ中、権限管理は暫定モードで動作します。暫定モードでのDSEオーソライザーの動作内容を指定します。
      transitional_modeの場合、以下の値のいずれかを選択します。
      • disabled - 移行モードは無効になります。
      • normal - パーミッションはリソースに渡されますが、実行されません。
      • strict - パーミッションはリソースに渡され、認証済みユーザーで実行されます。パーミッションは匿名ユーザーに対して実行されません。
  3. 認証スキームがDSE Unified Authenticatorによって構成されていることを確認します。特定のロールに対してのみ認証スキームを使用できるようにするには、以下のCQL構文を使用します。
    cqlsh> GRANT EXECUTE ON ALL AUTHENTICATION SCHEMES TO role;
    cqlsh> GRANT EXECUTE ON [INTERNAL|LDAP|KERBEROS] SCHEME TO role;
    パーミッションは、認証スキームがDseAuthenticatorで有効な場合にのみ付与されます。
    • すべての使用可能な認証スキームを使用できるようにロールに許可する場合:
      cqlsh> GRANT EXECUTE ON ALL AUTHENTICATION SCHEMES TO role;
    • LDAP認証スキームを使用できるようにロールに許可する場合:
      cqlsh> GRANT EXECUTE ON LDAP SCHEME TO role;
    • LDAP認証スキームを使用できるようにロールに許可する場合:
      cqlsh> GRANT EXECUTE ON LDAP SCHEME TO role;
    • INTERNAL認証スキームを使用できるようにロールに許可する場合:
      cqlsh> GRANT EXECUTE ON INTERNAL SCHEME TO role;
    • KERBEROS認証スキームを使用できるようにロールに許可する場合:
      cqlsh> GRANT EXECUTE ON KERBEROS SCHEME TO role;
    たとえば、allschemes_role@group1_authロールを作成し、パスワードとログイン= trueを与え、allschemes_role@splint_authに対するすべての認証スキームでの実行を付与するとします。
    cqlsh> create role 'allschemes_role@sgroup1_auth' with password = 'allschemes' and login = true;
    cqlsh> grant execute on all authentication schemes to 'allschemes_role@splint_auth';
    結果を確認します。
    cqlsh> list all of 'allschemes_role@group1_auth';
  4. 特定のロールから認証スキームを取り消すには、以下の構文を使用します。
    • ロールからすべての認証スキームの使用可能性を取り消す場合:
      cqlsh> REVOKE EXECUTE ON ALL AUTHENTICATION SCHEMES FROM role; 
    • ロールから特定の認証スキームの使用可能性を取り消す場合:
      cqlsh> GRANT REVOKE ON [INTERNAL|LDAP|KERBEROS] SCHEME FROM role;
      たとえば、LDAP認証スキームの使用をロールから取り消す場合は、次のようにします。
      cqlsh> GRANT REVOKE ON LDAP SCHEME FROM role;