Audit des utilisateurs dans VIYA 3.5
L'audit VIYA des utilisateurs est un élément important dans l'administration d'une plateforme VIYA. C'est également un sujet qui revient régulièrement avec son lot de questions. Cet article est donc un tour d'horizon de l'audit dans SAS Viya. Il n'est pas exhaustif mais permet de se familiariser avec l'outil et le processus d'audit.
Dans cet article, je commence par une présentation de l'audit et de son fonctionnement. Je présente ensuite comment accéder aux rapports depuis
SAS Environment Manager . Une vidéo permet également de vous présenter un aperçu de l'audit des utilisateurs. Je liste ensuite différentes commandes pour administrer et résoudre les problèmes d'audit. Enfin, pour approfondir le sujet passionnant de l'audit dans Viya, vous trouverez à la fin de cette article des liens vers d'autres ressources web sur le sujet.
Pour vous familiariser avec Viya, vous pouvez également consulter mes autres articles sur l'administration de VIYA ou vous abonnez à ma chaîne Youtube.
Présentation
Avant de détailler le fonctionnement de l'audit dans Viya, d'un point de vue technique, je vous propose une présentation rapide. La première question à se poser est : quand un enregistrement d'audit est généré ? Un enregistrement d'audit est généré chaque fois les types d'événements listés ci-dessous se produisent:
- Lorsqu' une action est effectuée sur une ressource. Les actions incluent l'accès au ressource et toutes les modifications apportées à la ressource (mise à jour, création ou suppression).
- Lorsqu'une action liée à la sécurité. Par exemple, la connexion à une application ou la modification d'un règle de sécurité ou d'autorisation.
Par défaut, ces actions génèrent des enregistrements d'audit:
- Lors d'un échec de lecture d'une ressource
- Lorsqu'une ressource est créée, mise à jour ou supprimée
- Lors d'une actions de sécurité (tentatives de connexion, tentatives de déconnexion, accès aux règles d'autorisation,
- règles d'autorisation)
Mais où sont stockées ses enregistrements ? Les enregistrements d'audit sont stockés dans SAS Infrastructure Data Server et sont conservés pour sept jours (valeur par défaut) . A noter que les enregistrements de plus de sept jours peuvent être archivés.
Fonctionnement de l'audit
Pour comprendre ce fonctionnement, le plus simple est que vous présente un schéma :
SAS Operations Infrastructure gère les activités de surveillance, d'exploitation et participe à la génération d'événements, ensuite capturés en tant qu'enregistrements d'audit dans SAS Infrastructure Data Server, puis dans une table CAS. Cette table CAS sert ensuite de source de données pour le rapport d'audit d'activité des utilisateurs.
La tâche genAudit fait partie d'un ensemble de tâches exécutées par
SAS Viya operations infrastructure agent(sas-ops-agent). Plus précisément, le rôle de serveur d'agent d'opérations (ops-agentsrv) est chargé d'exécuter genAudit et de maintenir son calendrier d'exécution.
Cette tâche s'exécute automatiquement toutes les deux heures et exécute les fonctions suivantes :
- Extraction des enregistrements d'audit pour les rapports, les data plans, la gestion et la gestion des accès CAS
- Ecriture des enregistrements d'audit dans un fichier CSV (audit.csv)
- Surpression des enregistrements d'audit dans le fichier CSV à partir du huitième jour de collecte
- Lecture du fichier CSV pour créer une table dans le caslib SystemData appelée AUDIT
Bien-sûr, vous pouvez utiliser les données de cette table AUDIT pour effectuer vos propres analyses ou créer vos propres rapports.
Pour résumer, genAudit s'exécute toutes les 2 heures, récupère les enregistrements d'audit dans PostgreSQL et les ajoute au fichier
csv , audit.csv ( /opt/sas/viya/config/var/cache/auditcli) . genAudit purge également les anciens enregistrements du fichier csv, puis charge les données csv dans la table AUDIT dans SystemData caslib pour une utilisation par le rapport d'audit d'activité utilisateur.
Si je résume maintenant avec un schéma cela donne ça :
Accéder aux rapports d'audit
On entre dans le cœur de ce qui vous interesse : Le rapport d'activité de l'utilisateur
Ce rapport est disponible à partir du tableau de bord SAS Environment Manager.
Plutôt qu'un long discours, je vous propose une vidéo. La vidéo ci-dessous présente comment accéder rapidement aux rapports de l'audit dans Viya 3.5 :
Vous l'avez compris (et je me répète), la tâche genAudit, qui s'exécute toutes les deux heures (ici aussi je me répète), collecte les informations ensuite utilisés pour créer le rapport d'activité des utilisateurs. A noter que la tâche s'exécute en utilisant le informations d'identification de l'utilisateur d'installation SAS. Ainsi, la tâche ne collecte que les enregistrements sur lesquels l'utilisateur d'installation SAS a accès.
Audit des utilisateurs
La vidéo ci-dessous est un aperçu du rapport d'audit des utilisateurs dans Viya 3.5 :
Maintenant que les présentations sont faites, nous pouvons administrer notre plateforme. Il est temps de vous présenter les possibilités qui vous sont offertes pour gérer l'audit de vos utilisateurs.
Commandes utiles et administration
Gros plan sur le fichier audit.csv
Vous êtes nombreux à vous demander à quoi ressemble le fichier audit.csv. Cette courte vidéo répond à cette question, vous montre comment accéder à ce fichier et comment afficher son contenu :
Listes les tâches ops-agentsrv
Pour la liste des tâches ops-agentsrv , vous pouvez exécuter la commande ci-dessous :
1 |
/opt/sas/viya/home/bin/sas-ops tasks --name "ops-agentsrv" |
Exporter la configuration des tâches
Pour exporter la configuration des tâches ops-agentsrv, executez la commande ci-dessous pour créer un fichier exportTask.json :
1 |
/opt/sas/viya/home/bin/sas-ops-agent export -name "ops-agentsrv" -tasks exportTask.json -spoolpath /opt/sas/viya/config/var/lib/evmsvrops/spoolsrv |
Ou encore :
1 |
/opt/sas/viya/home/bin/ops-config -base config/ops-agentsrv list | grep genAudit |
Vérifier l'exécution et le bon fonctionnement de la tâche genAudit
Si vous souhaitez vérifier l'exécution de la tâche genAudit, vous pouvez visionner le contenu de la log sas-ops-agentsrv_20YY-MM-DD-HH-MM-SS.log dans /var/log/sas/viya/ops-agentsrv/default
Dans le cas ou l'audit ne fonctionne pas, vous pourriez avoir, dans la log, le message ci-dessous :
[ops-agentsrv] - Taskxxxx-genAudit Command time out caused program /opt/sas/viya/home/bin/ev-genaudit process 45005 to be killed
Lancer manuellement genAudit
La vidéo ci-dessous présente comme lister, exporter et lancer la tâche genAudit manuellement :
Pour lancer manuellement la tâche genAudit, vous pouvez exécuter la commande ci-dessous.
1 |
/opt/sas/viya/home/bin/ev-genaudit -a reports,folders,dataPlans,casManagement,casAccessManagement,--user-id -l 1000 -d 7 -v |
Si vous n'avez pas regardez la vidéo (ce que je vous encourage à faire), l'option -v permet de passer le genAudit en mode verbose.
Extraire les données d'audit avec sas-admin
La commande sas-admin-list ci-dessous permet d'extraire les données d'audit de SAS Infrastructure Data Server et de créer un fichier csv (ici /tmp/audittest.csv) :
1 2 3 4 |
cd /opt/sas/viya/home/bin/ sas-admin profile set-endpoint http://$(hostname -f) sas-admin auth login -user adminsas -password motdepasse sas-admin audit list --limit 1000 --sort-by timeStamp --application reports --csv /tmp/audittest.csv --after 2020-11-25T16:33:52Z --before 2020-12-02T16:33:52Z --resolve-uri |
Afficher la configuration de la table CAS AUDIT
La commande ci-dessous permet de lister les table de la caslib SystemData pour vérifier que la table CAS AUDIT est bien présente :
1 |
sas-admin cas tables list --caslib SystemData --server cas-shared-default --sort-by state --limit 50 |
Modifier le nombre de jours à afficher dans le rapport d'audit
Par défaut, le rapport sur l’activité des utilisateurs affiche sept jours de données. Si vous souhaitez modifier cette valeur, vous devez modifier deux valeurs :
- L'argument -d de la tâche genAudit, qui spécifie le nombre de jours de données collectées à partir de la table d'audit, copiées dans le fichier audit.csv et mises à disposition dans CAS :
- La propriété localRetention, qui spécifie le nombre de jours pendant lesquels les enregistrements d'audit sont conservés dans la table d'audit avant leur archivage
Voici donc les étapes pour changer le nombre de jour à afficher dans votre rapport :
1 - Exécuter la commande ci-dessous en précisant le nombre de jours de données que genAudit extrait de SAS Infrastructure Data Server SAS Audit service.
1 |
/opt/sas/viya/home/bin/ops-config -base config/ops-agentsrv/sas.ops.task/genAudit load -values "commandArgs=-a reports,dataPlans,casManagement,casAccessManagement -l 1000 -d 10" |
Pour vérifier la prise en compte, exécuter la commande ci-dessous :
1 |
/opt/sas/viya/home/bin/ops-config -base config/ops-agentsrv list | grep genAudit/commandArgs |
2 - Dans SAS Environnement Manager, changer la valeur de localRetention :
3 - Redémarrer sas-ops-agentsrv
1 |
systemctl restart sas-viya-ops-agentsrv-default |
Visualiser les tables d'audit dans la base PostgreSQL
Pour vérifier l'insertion des données d'audit dans la base de données, vous pouvez exécuter les instructions ci-dessous.
1 - Connexion à PostgreSQL de SAS :
1 2 3 |
source /opt/sas/viya/config/consul.conf<br> export CONSUL_TOKEN=$(cat /opt/sas/viya/config/etc/SASSecurityCertificateFramework/tokens/consul/default/management.token) export PGPASSWORD=$(/opt/sas/viya/home/bin/sas-bootstrap-config kv read "config/application/postgres/password") psql -t -h localhost -p 5432 -U dbmsowner postgres |
2 - Connectez-vous à la base SharedServices :
1 |
\c SharedServices |
3 - Puis effectuez une requête sur la table resource_audit_entry_data pour de vérifier que vos données d'audit son bien présentes :
1 |
select * from audit.resource_audit_entry_data where entry_dttm > TO_DATE('20201201','YYYYMMDD'); |
4 - Pour vérifier la taille de vos tables, la requête à exécuter est la suivante :
1 2 3 |
SELECT * FROM pg_catalog.pg_tables WHERE schemaname = 'audit'; SELECT pg_size_pretty( pg_total_relation_size('audit.resource_audit_entry_data') ); SELECT pg_size_pretty( pg_total_relation_size('audit.security_audit_entry_data') ); |
Cette analyse et ces requêtes peuvent être faite depuis pgAdmin pour plus de facilité:
Pour aller plus loin
- SAS® Viya® 3.5 Administration: Auditing
- SAS® Viya® 3.5 Administration: Auditing (pdf)
- A look at genAudit and the data behind the User Activity report
- Youtube - VIYA 3.5 Audit - La playlist contenant l'ensemble des vidéos de cet article
- Youtube - SAS Demo | Auditing in SAS Viya - Présentation de l'audit dans Viya par Ajmal Farzam
- SAS® Viya® Monitoring Using Open-Source Tools
- Les articles sur l'audit dans VIYA sur mon blog