AlwaysOn SQLでの認証の使用
AlwaysOn SQLは、DSE認証を使用するように構成できます。
AlwaysOn SQLは、DSE認証を使用するように構成できます。
DSE 認証を有効にする場合は、 hive-site.xml 構成ファイルを変更して、JDBC 認証を有効にします。DSEは、パスワード認証とKerberos認証の構成をサポートしています。hive-site.xmlファイルには、認証(デフォルト)、パスワード認証、またはKerberos認証を使用しない、事前に構成された設定が含まれたセクションがあります。優先認証メカニズムのコメントを解除し、AlwaysOn SQLを再起動します。
AlwaysOn SQL はDSEプロキシ認証をサポートしています。クエリーを実行するユーザーは、JDBCを使用して認証されたユーザーです。ユーザーAmyがAlwaysOn SQLセッションを開始し、BobがJDBCセッションを開始した場合、クエリーはBobに代わってAmyが実行します。Amyは、Bobに代わってこれらのクエリーを実行するためのパーミッションを持っている必要があります。
AlwaysOn SQLのalwayson_sql_optionsで認証を有効にするには、次の手順に従います。
hive-site.xml
Sparkを使用する場合のhive-site.xmlファイルのデフォルトの場所:| パッケージ・インストール | /etc/dse/spark/hive-site.xml | 
| tarボール・インストール | installation_location/resources/spark/conf/hive-site.xml | 
手順
- 
                AlwaysOn SQLオプションで指定されたauth_userロールを作成し、ロールに次のパーミッションを付与します。
                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; 詳細については、「DSE Sparkアプリケーションのパーミッションの設定」を参照してください。
- 
                ユーザー・ロールを作成します。
                内部認証の場合: CREATE ROLE 'user_name' WITH LOGIN = true; Kerberosを使用する場合は、各ユーザーの完全なKerberosプリンシパル名に一致するロールを設定します。 CREATE ROLE 'user_name/example.com@EXAMPLE.COM' WITH LOGIN = true; 
- 
                ユーザー・ロールにキースペースとテーブルにアクセスするためのパーミッションを付与します。
                内部ロールの場合: GRANT SELECT ON KEYSPACE keyspace_name TO 'user_name'; Kerberosロールの場合: GRANT SELECT ON KEYSPACE keyspace_name TO 'user_name/example.com@EXAMPLE.COM'; 
- 
                AlwaysOn SQLロール(auth_user)がユーザー・ ロールを使用してコマンドを実行できるようにします。内部ロールの場合: GRANT PROXY.EXECUTE ON ROLE 'user_name' TO alwayson_sql; Kerberosロールの場合: GRANT PROXY.EXECUTE ON ROLE 'user_name/example.com@EXAMPLE.COM' TO alwayson_sql; 
- エディターでhive-site.xml構成ファイルを開きます。
- 
                コメントを解除し、hive-site.xmlで使用されている認証メカニズムを変更します。
                - パスワード認証を使用する場合は、DSE でパスワード認証を有効にします。
- Kerberos認証を使用する場合は、 DSEでKerberosを有効にする必要はありません。AlwaysOn SQLには、独自のサービス・プリンシパルとキータブが必要です。
- JDBCからAlwaysOn SQLにログインするには、ユーザーがDSE でログイン・パーミッションを持っている必要があります。
 以下の例は、Kerberos認証を有効にする方法を示しています。Kerberosドメインとキータブ・ファイルへのパスを変更します。 <!-- Start of: configuration for authenticating JDBC users with Kerberos --> <property> <name>hive.server2.enable.doAs</name> <value>true</value> </property> <property> <name>hive.server2.authentication</name> <value>KERBEROS</value> </property> <property> <name>hive.server2.authentication.kerberos.principal</name> <value>hiveserver2/_HOST@KERBEROS DOMAIN</value> </property> <property> <name>hive.server2.authentication.kerberos.keytab</name> <value>path to hiveserver2.keytab</value> </property> <!-- End of: configuration for authenticating JDBC users with Kerberos -->
- 
                AlwaysOn SQLを再起動します。
                dse client-tool alwayson-sql restart 
