DSE Sparkアプリケーションのパーミッションの設定

Sparkアプリケーションの送信、管理、使用を許可します。

Sparkアプリケーションへのユーザーのアクセスを管理します。SparkアプリケーションのCQLリソースは、WORKPOOLおよびSUBMISSIONです。ワークプール・リソースに対する作成パーミッションは、SparkアプリケーションをDSEに送信するユーザーの権限を制御します。送信リソースに対する変更パーミッションは、アプリケーションを管理および削除するユーザーの権限を制御します。

手順

CQLシェル(cqlsh)を使用して、DSE Resource Manager(DSEリソース・マネージャー)およびSparkアプリケーションへのアクセス権限を管理します。すべてのコマンドは、クラスター内のDSE Analyticsノードで入力する必要があります。
  • AlwaysOn SQLロールに必要なアクセス:
    GRANT ALL PERMISSIONS ON REMOTE OBJECT AlwaysOnSqlRoutingRPC to role_name;  
    GRANT ALL PERMISSIONS ON REMOTE OBJECT DseResourceManager TO role_name;
    GRANT ALL PERMISSIONS ON REMOTE OBJECT DseClientTool TO role_name;
    GRANT SELECT, MODIFY ON dse_analytics.alwayson_sql_cache_table TO role_name;
    GRANT SELECT, MODIFY ON dse_analytics.alwayson_sql_info TO role_name;
  • DSE Resource Manager(DSEリソース・マネージャー)のみへのアクセス:
    GRANT EXECUTE ON REMOTE OBJECT DseResourceManager TO role_name;
  • アプリケーションの実行:
    GRANT EXECUTE ON REMOTE OBJECT DseClientTool TO role_name
    注: DSE Analyticsユーザーにはそれぞれ、DSEクライアント・ツールを使用してリモート・プロシージャ・コールを実行するためのパーミッションが付与されている必要があります。
  • スーパーユーザー以外のロールの場合、以下のテーブルへのアクセスが必要です。
    GRANT SELECT ON system.size_estimates TO role_name;
    GRANT SELECT, MODIFY ON "HiveMetaStore".sparkmetastore TO role_name;
    AlwaysOn SQLを実行する場合、追加のパーミッションが必要です。
    GRANT SELECT, MODIFY ON dse_analytics.alwayson_sql_cache_table TO role_name;
  • アプリケーションの送信:
    • すべてのデータ・センターへ:
      GRANT CREATE ON ANY WORKPOOL TO role_name;
      ヒント: revokeコマンドを使用してアクセスを削除します。
      REVOKE CREATE ON ANY WORKPOOL FROM role_name;
    • 特定のデータ・センターへ:
      GRANT CREATE ON WORKPOOL datacenter_name TO role_name;
      ヒント: revokeコマンドを使用してアクセスを削除します。
      REVOKE CREATE ON WORKPOOL datacenter_name FROM role_name;
    注: アプリケーションを送信するために使用されるロールは、アプリケーションを変更(MODIFY)するための自動的に付与されるパーミッションです。
  • アプリケーションを変更します。
    • すべてのアプリケーション:
      GRANT MODIFY ON ANY SUBMISSION TO role_name;
      ヒント: revokeコマンドを使用してアクセスを削除します。
      REVOKE MODIFY ON ANY SUBMISSION FROM role_name;
    • 特定のデータ・センター内のすべてのアプリケーション:
      GRANT MODIFY ON ANY SUBMISSION IN WORKPOOL datacenter_name TO role_name; 
      ヒント: revokeコマンドを使用してアクセスを削除します。
      REVOKE MODIFY ON ANY SUBMISSION IN WORKPOOL datacenter_name FROM role_name;
    • 特定のデータ・センター内の特定のアプリケーション:
      GRANT MODIFY ON SUBMISSION id IN WORKPOOL datacenter_name TO role_name; 
      ヒント: revokeコマンドを使用してアクセスを削除します。
      REVOKE MODIFY ON SUBMISSION id IN WORKPOOL datacenter_name FROM role_name;
  • DSE GraphFramesの使用:
    GRANT EXECUTE ON REMOTE OBJECT DseGraphRpc TO role_name;

AlwaysOn SQL(alwayson_sql)のロールの作成:
CREATE ROLE alwayson_sql WITH LOGIN=true; // role name matches auth_user 

// Required if scheme_permissions true
GRANT EXECUTE ON ALL AUTHENTICATION SCHEMES TO alwayson_sql; 

// Spark RPC settings
GRANT ALL PERMISSIONS ON REMOTE OBJECT DseResourceManager TO alwayson_sql;
GRANT ALL PERMISSIONS ON REMOTE OBJECT DseClientTool TO alwayson_sql;
GRANT ALL PERMISSIONS ON REMOTE OBJECT AlwaysOnSqlRoutingRPC to alwayson_sql;
  
// Spark and DSE required table access
GRANT SELECT ON system.size_estimates TO alwayson_sql;
GRANT SELECT, MODIFY ON "HiveMetaStore".sparkmetastore TO alwayson_sql;
GRANT SELECT, MODIFY ON dse_analytics.alwayson_sql_cache_table TO alwayson_sql; 
GRANT SELECT, MODIFY ON dse_analytics.alwayson_sql_info TO alwayson_sql;

// Permissions to create and change applications  
GRANT CREATE, DESCRIBE ON ANY WORKPOOL TO alwayson_sql;
GRANT MODIFY, DESCRIBE ON ANY SUBMISSION TO alwayson_sql;