Come Audire Apache Hive
Introduzione
Apache Hive è ampiamente utilizzato da molte organizzazioni per processare e analizzare enormi quantità di dati strutturati memorizzati in Hadoop. Con l’aumentare del volume di dati sensibili elaborati tramite Hive, implementare meccanismi di audit efficaci diventa essenziale non solo per la sicurezza, ma anche per la conformità normativa.
Questa guida ti accompagnerà nel processo di configurazione e impostazione delle funzionalità di audit per Apache Hive, dai meccanismi di auditing nativi alle soluzioni potenziate con DataSunrise, garantendoti la visibilità necessaria per monitorare l’accesso ai dati, rilevare attività non autorizzate e mantenere la conformità.
Come Audire Apache Hive Utilizzando le Capacità Native
Apache Hive offre diversi meccanismi integrati per l’audit che è possibile configurare per tracciare le attività degli utenti e le operazioni eseguite sui dati. Esploriamo come impostare queste funzionalità di auditing native:
Passo 1: Abilitare l’Autorizzazione Basata sugli Standard SQL
L’Autorizzazione Basata sugli Standard SQL in Hive fornisce un modello di controllo degli accessi basato sui ruoli che include funzionalità di audit di base. Questo modello registra le operazioni e i cambiamenti dei privilegi eseguiti dagli utenti.
Per abilitare l’Autorizzazione Basata sugli Standard SQL, modifica il tuo file di configurazione hive-site.xml
:
<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.manager</name>
<value>org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory</value>
</property>
<property>
<name>hive.security.authenticator.manager</name>
<value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
Dopo aver apportato queste modifiche, riavvia i servizi Hive per applicare la configurazione.
Passo 2: Configurare il Framework di Logging
Apache Hive utilizza Log4j per la registrazione degli eventi, il quale può essere configurato per catturare le informazioni di audit. Per migliorare la registrazione dell’audit, modifica il file hive-log4j2.properties
:
# Hive Audit Logging
appender.AUDIT.type = RollingFile
appender.AUDIT.name = AUDIT
appender.AUDIT.fileName = ${sys:hive.log.dir}/${sys:hive.log.file}.audit
appender.AUDIT.filePattern = ${sys:hive.log.dir}/${sys:hive.log.file}.audit.%d{yyyy-MM-dd}
appender.AUDIT.layout.type = PatternLayout
appender.AUDIT.layout.pattern = %d{ISO8601} %p %c: %m%n
appender.AUDIT.policies.type = Policies
appender.AUDIT.policies.time.type = TimeBasedTriggeringPolicy
appender.AUDIT.policies.time.interval = 1
appender.AUDIT.policies.time.modulate = true
appender.AUDIT.strategy.type = DefaultRolloverStrategy
appender.AUDIT.strategy.max = 30
# Audit Logger
logger.audit.name = org.apache.hadoop.hive.ql.audit
logger.audit.level = INFO
logger.audit.additivity = false
logger.audit.appenderRef.audit.ref = AUDIT
Queste impostazioni creano un file di log dedicato all’audit che cattura tutti gli eventi di audit in un formato strutturato.
Passo 3: Abilitare i Log di Audit di HDFS
Poiché le operazioni di Hive implicano in ultima analisi operazioni su HDFS, abilitare i log di audit di HDFS fornisce un ulteriore livello di auditing. Modifica il file hdfs-site.xml
:
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.audit.log.async</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.audit.log.debug.cmdlist</name>
<value>open,create,delete,append,rename</value>
</property>
Riavvia i servizi HDFS per applicare queste modifiche.
Passo 4: Testare la Registrazione dell’Audit
Per verificare che l’audit funzioni correttamente, esegui varie operazioni Hive e controlla i log di audit:
-- Crea un database di test
CREATE DATABASE audit_test;
-- Crea una tabella
USE audit_test;
CREATE TABLE employee (
id INT,
name STRING,
salary FLOAT
);
-- Inserisci dati
INSERT INTO employee VALUES (1, 'John Doe', 75000.00);
INSERT INTO employee VALUES (2, 'Jane Smith', 85000.00);
-- Interroga i dati
SELECT * FROM employee WHERE salary > 80000;
-- Aggiorna i dati
UPDATE employee SET salary = 90000.00 WHERE id = 1;
-- Elimina la tabella
DROP TABLE employee;
Dopo aver eseguito queste operazioni, controlla i log di audit per assicurarti che stiano registrando tutte le attività:
cat ${HIVE_LOG_DIR}/hive.log.audit
Passo 5: Integrare con Apache Ranger (Opzionale)
Per funzionalità di audit più complete, integra Apache Hive con Apache Ranger. Ranger fornisce un’amministrazione centralizzata della sicurezza e log di audit dettagliati per i componenti di Hadoop.
Installa Apache Ranger utilizzando la guida ufficiale all’installazione.
Configura il plugin Ranger per Hive modificando
hive-site.xml
:
<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.manager</name>
<value>org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory</value>
</property>
- Configura le impostazioni di audit di Ranger in
ranger-hive-audit.xml
:
<property>
<name>xasecure.audit.is.enabled</name>
<value>true</value>
</property>
<property>
<name>xasecure.audit.destination.db</name>
<value>true</value>
</property>
<property>
<name>xasecure.audit.destination.db.jdbc.driver</name>
<value>org.postgresql.Driver</value>
</property>
<property>
<name>xasecure.audit.destination.db.jdbc.url</name>
<value>jdbc:postgresql://ranger-db:5432/ranger</value>
</property>
Limitazioni dell’Audit Nativo
Mentre questi meccanismi di audit nativi offrono funzionalità di base, presentano diverse limitazioni:
- Dati di Audit Frammentati: Le informazioni di audit sono distribuite tra più file di log e sistemi.
- Configurazione Complessa: Configurare un auditing completo richiede la configurazione di più componenti.
- Strumenti di Monitoraggio Limitati: I log di audit nativi mancano di interfacce user-friendly per l’analisi.
- Report di Conformità Manuali: Generare report di conformità richiede script personalizzati o estrazioni manuali.
- Uso Intensivo delle Risorse: Un auditing esteso può influenzare le prestazioni in ambienti ad alto volume.
Come Audire Apache Hive in Modo Efficiente con DataSunrise
Per le organizzazioni che richiedono soluzioni di audit più complete, DataSunrise offre funzionalità avanzate che affrontano le limitazioni dell’audit nativo di Hive. Esploriamo come impostare e configurare DataSunrise per l’audit di Apache Hive:
Passo 1: Distribuire DataSunrise
Inizia distribuendo DataSunrise nel tuo ambiente. DataSunrise offre opzioni di distribuzione flessibili che includono configurazioni on-premises, cloud e ibride.
Passo 2: Connettersi ad Apache Hive
Una volta distribuito DataSunrise, collegalo al tuo ambiente Apache Hive:
- Accedi alla console di gestione di DataSunrise.
- Vai su “Database” e seleziona “Aggiungi Database”.
- Seleziona “Apache Hive” come tipo di database.
- Inserisci i dettagli di connessione per la tua istanza Hive, inclusi host, porta e credenziali di autenticazione.
- Testa la connessione per assicurarti che sia configurata correttamente.
Passo 3: Configurare le Regole di Audit
Crea regole di audit per definire quali attività devono essere monitorate:
- Vai su “Regole” e seleziona “Aggiungi Regola”.
- Scegli “Audit” come tipo di regola.
- Configura i parametri della regola, compresi:
- Nome e descrizione della regola
- Oggetti target (database, tabelle, viste)
- Utenti e ruoli da monitorare
- Tipi di operazioni da auditare (SELECT, INSERT, UPDATE, DELETE, ecc.)
- Condizioni basate sul tempo (se necessario)
- Salva e attiva la regola.
Passo 4: Testare e Validare l’Audit
Esegui varie operazioni Hive per verificare che DataSunrise stia correttamente registrando le attività di audit:
- Esegui le stesse query di test usate in precedenza per convalidare l’audit nativo.
- Accedi alla sezione “Audit Log” in DataSunrise per visualizzare gli eventi di audit catturati.
- Verifica che tutte le operazioni siano registrate correttamente con informazioni dettagliate, tra cui:
- Identità dell’utente
- Timestamp
- Query SQL
- Tipo di operazione
- Oggetti interessati
- Indirizzo IP di origine
Conclusione
Un audit efficace di Apache Hive è essenziale per mantenere la sicurezza, garantire la conformità e ottenere visibilità sui modelli di accesso ai dati. Mentre le capacità di audit native di Hive offrono funzionalità di base, le organizzazioni con requisiti avanzati traggono beneficio da soluzioni complete come DataSunrise.
DataSunrise potenzia l’audit di Apache Hive con una gestione centralizzata, tracce di audit dettagliate, allarmi in tempo reale e report di conformità automatizzati. Implementando una soluzione di audit robusta, le organizzazioni possono proteggere i loro dati sensibili, mantenere la conformità normativa e rispondere rapidamente agli incidenti di sicurezza.
Pronto a potenziare le tue capacità di audit su Apache Hive? Prenota una demo per scoprire come DataSunrise può aiutarti a implementare un auditing completo per il tuo ambiente Hive.