Comment Auditer Apache Hive
Introduction
Apache Hive est largement utilisé par de nombreuses organisations pour traiter et analyser de grandes quantités de données structurées stockées dans Hadoop. Avec l’augmentation du volume de données sensibles traitées via Hive, mettre en œuvre des mécanismes d’audit efficaces devient essentiel non seulement pour la sécurité mais aussi pour la conformité réglementaire.
Ce guide vous guidera à travers le processus de configuration et de mise en œuvre des capacités d’audit pour Apache Hive, des fonctionnalités natives d’audit aux solutions améliorées avec DataSunrise, garantissant que vous avez la visibilité nécessaire pour surveiller l’accès aux données, détecter les activités non autorisées, et maintenir la conformité.
Comment Auditer Apache Hive en Utilisant les Capacités Natives
Apache Hive offre plusieurs mécanismes intégrés pour l’audit que l’on peut configurer pour suivre les activités des utilisateurs et les opérations effectuées sur les données. Explorons comment configurer ces capacités natives d’audit :
Étape 1 : Activer l’Autorisation Basée sur les Normes SQL
L’autorisation basée sur les normes SQL dans Hive fournit un modèle de contrôle d’accès basé sur les rôles qui inclut des capacités d’audit de base. Ce modèle enregistre les opérations et les changements de privilèges effectués par les utilisateurs.
Pour activer l’autorisation basée sur les normes SQL, modifiez votre fichier de configuration 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>
Après avoir apporté ces modifications, redémarrez les services Hive pour appliquer la configuration.
Étape 2 : Configurer le Cadre de Journalisation
Apache Hive utilise Log4j pour la journalisation des événements, qu’on peut configurer pour capturer les informations d’audit. Pour améliorer la journalisation d’audit, modifiez le fichier hive-log4j2.properties
:
# Journalisation d'Audit Hive
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
# Logger d'Audit
logger.audit.name = org.apache.hadoop.hive.ql.audit
logger.audit.level = INFO
logger.audit.additivity = false
logger.audit.appenderRef.audit.ref = AUDIT
Ces paramètres créent un fichier de journal d’audit dédié qui capture tous les événements d’audit dans un format structuré.
Étape 3 : Activer les Journaux d’Audit HDFS
Étant donné que les opérations Hive impliquent finalement des opérations HDFS, activer les journaux d’audit HDFS fournit une couche supplémentaire d’audit. Modifiez le fichier 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>
Redémarrez les services HDFS pour appliquer ces modifications.
Étape 4 : Tester la Journalisation d’Audit
Pour vérifier que l’audit fonctionne correctement, effectuez diverses opérations Hive et vérifiez les journaux d’audit :
-- Créer une base de données de test
CREATE DATABASE audit_test;
-- Créer une table
USE audit_test;
CREATE TABLE employee (
id INT,
name STRING,
salary FLOAT
);
-- Insérer des données
INSERT INTO employee VALUES (1, 'John Doe', 75000.00);
INSERT INTO employee VALUES (2, 'Jane Smith', 85000.00);
-- Interroger des données
SELECT * FROM employee WHERE salary > 80000;
-- Mettre à jour des données
UPDATE employee SET salary = 90000.00 WHERE id = 1;
-- Supprimer la table
DROP TABLE employee;
Après avoir exécuté ces opérations, vérifiez les journaux d’audit pour vous assurer qu’ils enregistrent toutes les activités :
cat ${HIVE_LOG_DIR}/hive.log.audit
Étape 5 : Intégrer avec Apache Ranger (Optionnel)
Pour des capacités d’audit plus complètes, intégrez Apache Hive avec Apache Ranger. Ranger fournit une administration centralisée de la sécurité et des journaux d’audit détaillés pour les composants Hadoop.
Installez Apache Ranger en utilisant le guide d’installation officiel.
Configurez le plugin Ranger Hive en modifiant
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>
- Configurez les paramètres d’audit de Ranger dans
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>
Limitations de l’Audit Natif
Bien que ces mécanismes d’audit natifs fournissent une fonctionnalité de base, ils présentent plusieurs limitations :
- Données d’Audit Fragmentées : Les informations d’audit se dispersent dans plusieurs fichiers journaux et systèmes.
- Configuration Complexe : Mettre en place une audit complète nécessite de configurer plusieurs composants.
- Outils de Surveillance Limités : Les journaux d’audit natifs manquent d’interfaces conviviales pour l’analyse.
- Rapports de Conformité Manuels : Produire des rapports de conformité nécessite des scripts personnalisés ou une extraction manuelle.
- Consommatrice de Ressources : Un audit intensif peut impacter la performance dans des environnements à fort volume.
Comment Auditer Apache Hive Efficacement avec DataSunrise
Pour les organisations qui ont besoin de solutions d’audit plus complètes, DataSunrise fournit des capacités avancées qui répondent aux limitations de l’audit natif de Hive. Explorons comment configurer et mettre en œuvre DataSunrise pour auditer Apache Hive :
Étape 1 : Déployer DataSunrise
Commencez par déployer DataSunrise dans votre environnement. DataSunrise offre des options de déploiement flexibles incluant des configurations sur site, cloud, et hybrides.
Étape 2 : Connectez-vous à Apache Hive
Une fois DataSunrise déployé, connectez-le à votre environnement Apache Hive :
- Allez à la console de gestion DataSunrise.
- Allez dans “Bases de données” et sélectionnez “Ajouter une base de données”.
- Sélectionnez “Apache Hive” comme type de base de données.
- Saisissez les détails de connexion pour votre instance Hive, incluant l’hôte, le port, et les informations d’authentification.
- Testez la connexion pour s’assurer qu’elle est correctement configurée.
Étape 3 : Configurer les Règles d’Audit
Créez des règles d’audit pour définir quelles activités doivent être surveillées :
- Allez dans “Règles” et sélectionnez “Ajouter une Règle”.
- Choisissez “Audit” comme type de règle.
- Configurez les paramètres de la règle, incluant :
- Nom et description de la règle
- Objets cibles (bases de données, tables, vues)
- Utilisateurs et rôles à surveiller
- Types d’opérations à auditer (SELECT, INSERT, UPDATE, DELETE, etc.)
- Conditions basées sur le temps (si nécessaire)
- Enregistrez et activez la règle.
Étape 4 : Tester et Valider l’Audit
Effectuez diverses opérations Hive pour valider que DataSunrise audite correctement les activités :
- Exécutez les mêmes requêtes de test utilisées précédemment pour valider l’audit natif.
- Allez à la section “Journal d’Audit” dans DataSunrise pour voir les événements d’audit capturés.
- Vérifiez que toutes les opérations sont correctement enregistrées avec des informations détaillées incluant :
- Identité de l’utilisateur
- Horodatage
- Requête SQL
- Type d’opération
- Objets affectés
- Adresse IP source
Conclusion
Un audit efficace d’Apache Hive est essentiel pour maintenir la sécurité, assurer la conformité, et obtenir une visibilité sur les schémas d’accès aux données. Bien que les capacités natives d’audit de Hive fournissent une fonctionnalité de base, les organisations ayant des exigences avancées bénéficient de solutions complètes comme DataSunrise.
DataSunrise améliore l’audit d’Apache Hive avec une gestion centralisée, des pistes d’audit détaillées, des alertes en temps réel, et des rapports automatisés de conformité. En mettant en œuvre une solution d’audit robuste, les organisations peuvent protéger leurs données sensibles, maintenir la conformité réglementaire, et réagir rapidement aux incidents de sécurité.
Prêt à améliorer vos capacités d’audit Apache Hive ? Planifiez une démo pour voir comment DataSunrise peut vous aider à mettre en œuvre un audit complet pour votre environnement Hive.