Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Génération de rapports Identity and Access Management à partir d'Oracle Cloud Infrastructure Audit
Introduction
Les domaines d'identité Oracle Cloud Infrastructure (OCI) sont le successeur d'Oracle Identity Cloud Service et intègrent toutes les fonctionnalités d'Oracle Identity Cloud Service dans un service Oracle Cloud Infrastructure de base. Oracle Identity Cloud Service était une offre autonome de type SaaS qui fournit des rapports sur l'activité des utilisateurs et similaires au sein du service.
Contrairement à Oracle Identity Cloud Service, les domaines d'identité OCI existent dans le contexte OCI plus large. Un principe de conception OCI consiste à utiliser des fonctionnalités de service communes lorsque cela est possible et, par conséquent, certains des rapports mis à disposition dans Oracle Identity Cloud Service sont en phase d'abandon, car les données qu'ils ont utilisées sont désormais disponibles via la fonctionnalité de service commun fournie par OCI Audit.
Ce tutoriel explique comment créer des rapports en phase d'abandon à partir des données OCI Audit et rendre ces rapports disponibles dans OCI Dashboard.
Objectifs
-
Créez des recherches enregistrées dans OCI Logging pour les rapports OCI IAM.
-
Exportez les rapports OCI IAM pour le traitement hors ligne.
-
Ajoutez ces recherches au tableau de bord OCI.
Prérequis
- Droits d'accès permettant de lire les données d'audit pour le compartiment contenant le domaine OCI IAM (qui sera la racine de location du domaine par défaut).
Tâche 1 : exploration des événements d'audit OCI Identity and Access Management
Chaque service OCI crée des enregistrements d'audit sur l'utilisateur ou l'action de service, et OCI IAM ne fait pas exception, créant des enregistrements d'audit sur l'accès utilisateur, ainsi que toute modification ou tout événement survenant dans OCI IAM.
-
Accédez au service Logging sous les fonctionnalités Observability & Management de la console OCI, puis sélectionnez la section Rechercher.
-
Cliquez sur Sélectionner les journaux à rechercher pour définir le contexte de la recherche de journal sur le compartiment contenant le domaine d'identité OCI IAM pour lequel générer le rapport.
Après avoir sélectionné le compartiment approprié, vous verrez probablement plusieurs entrées pour l'activité de l'utilisateur ou du service, les entrées spécifiques étant dépendantes de la façon dont votre location est utilisée. Vous pouvez également voir vos propres événements de connexion ou d'autres événements de connexion. Si vous ne voyez aucune entrée, vérifiez que la région correcte est sélectionnée en développant Plus d'options de recherche ou en développant la fenêtre de temps en modifiant le paramètre Filtrer par heure.
-
Cliquez sur Afficher le mode avancé pour afficher la possibilité de saisir des requêtes en texte libre, puis ajoutez l'un des éléments suivants à la fin de la requête par défaut (après 'tri par description date/heure') afin de générer le même contenu que celui inclus dans le rapport Oracle Identity Cloud Service.
Rapport Requête Rapport sur les connexions réussies | où data.additionalDetails.eventId = 'sso.session.create.success' | sélectionnez data.additionalDetails.domainDisplayName comme domaine, data.additionalDetails.actorName comme connexion, data.additionalDetails.eventId comme résultat, data.additionalDetails.ssoRp comme fournisseur, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') comme date Rapport sur les échecs de connexion | where data.additionalDetails.eventId='sso.authentication.failure' | sélectionnez data.additionalDetails.domainDisplayName en tant que domaine, data.additionalDetails.actorName en tant qu'utilisateur, data.additionalDetails.eventId en tant que résultat, data.message en tant que commentaires, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') en tant que date Rapport sur les accès à l'application | où data.additionalDetails.eventId = 'sso.session.create.success' ou data.additionalDetails.eventId = 'sso.authentication.failure' ou data.additionalDetails.eventId = 'sso.session.modify.success' | sélectionnez data.additionalDetails.domainDisplayName en tant que domaine, data.additionalDetails.actorDisplayName en tant qu'utilisateur, data.additionalDetails.actorName en tant que connexion, data.additionalDetails.eventId en tant que "succès/échec", data.additionalDetails.ssoRp en tant qu'application, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') en tant que date Rapport sur le journal d'audit | where data.additionalDetails.eventId = ‘sso.app.access.success’ or data.additionalDetails.eventId = ‘sso.app.access.failure’ or data.additionalDetails.eventId = ‘sso.session.create.success’ or data.additionalDetails.eventId = ‘sso.authentication.failure’ or data.additionalDetails.eventId = ‘sso.session.delete.success’ or data.additionalDetails.eventId = ‘admin.user.create.success’ or data.additionalDetails.eventId = ‘admin.user.activated.success’ or data.additionalDetails.eventId = ‘admin.user.deactivated.success’ or data.additionalDetails.eventId = ‘admin.user.update.success’ or data.additionalDetails.eventId = ‘admin.user.delete.success’ or data.additionalDetails.eventId = ‘admin.user.password.reset.success’ or data.additionalDetails.eventId = ‘admin.me.password.reset.success’ or data.additionalDetails.eventId = ‘admin.me.password.change.success’ or data.additionalDetails.eventId = ‘admin.policy.create.success’ or data.additionalDetails.eventId = ‘admin.rule.create.success’ or data.additionalDetails.eventId = ‘admin.policy.update.success’ or data.additionalDetails.eventId = ‘admin.rule.update.success’ or data.additionalDetails.eventId = ‘admin.passwordpolicy.create.success’ or data.additionalDetails.eventId = ‘admin.passwordpolicy.update.success’ or data.additionalDetails.eventId = ‘admin.grant.create.success’ or data.additionalDetails.eventId = ‘admin.grant.delete.success’ or data.additionalDetails.eventId = ‘admin.group.create.success’ or data.additionalDetails.eventId = ‘admin.group.add.member.success’ or data.additionalDetails.eventId = ‘admin.group.remove.member.success’ or data.additionalDetails.eventId = ‘admin.group.delete.success’ or data.additionalDetails.eventId = ‘admin.app.create.success’ or data.additionalDetails.eventId = ‘admin.app.update.success’ or data.additionalDetails.eventId = ‘admin.app.delete.success’ or data.additionalDetails.eventId = ‘admin.app.activated.success’ or data.additionalDetails.eventId = ‘admin.app.deactivated.success’ or data.additionalDetails.eventId = ‘notification.delivery.success’ or data.additionalDetails.eventId = ‘notification.delivery.failure’ or data.additionalDetails.eventId = ‘sso.auth.factor.initiated’ or data.additionalDetails.eventId = ‘sso.bypasscode.create.success’ | select time_format(datetime, ‘yyyy-MM-dd hh:mm:ss z’) as Date, data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorName as Actor, data.additionalDetails.eventId as “Event Id”, data.message as “Event Description”, data.additionalDetails.adminResourceName as Target Rapport des affectations de rôle d'application | où data.additionalDetails.eventId = 'admin.approle.add.member.success' ou data.additionalDetails.eventId = 'admin.approle.remove.member.success' | sélectionnez data.additionalDetails.domainDisplayName comme domaine, data.additionalDetails.actorDisplayName comme approbateur, data.additionalDetails.adminAppRoleAppName comme nom d'application, data.additionalDetails.adminRefResourceName comme bénéficiaire, data.additionalDetails.adminRefResourceType comme utilisateur/groupe, data.additionalDetails.adminResourceName comme nom de rôle d'application, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') comme date, data.additionalDetails.eventId comme "ajouté/supprimé" Par exemple, pour le rapport
Successful Logins
, la requête ressemblerait à la requête ci-dessous. -
Cliquez sur Rechercher pour utiliser la requête mise à jour. S'il ne renvoie aucun résultat, vous devrez peut-être modifier le filtre d'heure.
-
Vous pouvez exporter tous les résultats renvoyés en cliquant sur Exporter les données de journal (JSON) dans la liste déroulante Actions au-dessus des résultats.
Remarque : les rapports Oracle Identity Cloud Service prennent en charge le téléchargement en tant que fichier
CSV
alors que cet export prend uniquement en charge l'exportJSON
. Cependant, les instructions SELECT utilisées dans les requêtes ci-dessus mettent à platJSON
en un seul objet avec des attributs, ce qui doit vous permettre de convertir l'exportJSON
etCSV
si nécessaire.
Tâche 2 : créer une recherche enregistrée pour votre rapport
Pour éviter de saisir à nouveau la requête chaque fois que vous souhaitez accéder à ces rapports, vous pouvez tirer parti de la fonctionnalité de recherche enregistrée d'OCI Logging.
-
Une fois la requête validée, cliquez sur Enregistrer la recherche pour permettre sa réutilisation et son intégration dans le tableau de bord.
-
Entrez le nom de votre recherche, tel que 'Successful_Login_Report' ou similaire, ainsi que la description, puis cliquez sur Enregistrer.
-
A partir de l'interface Recherches enregistrées, vous pouvez revenir à votre recherche pour obtenir le dernier ensemble de données.
Remarque : vous ne pouvez pas exporter directement les résultats à partir de l'interface de recherche enregistrée, mais vous devez utiliser Explorer avec la recherche de journal dans la liste déroulante Actions, puis exporter les résultats à partir de la vue de recherche.
Tâche 3 : ajout du rapport à un tableau de bord OCI
En plus d'accéder aux rapports à partir du service OCI Logging, ils peuvent également être mis à disposition via la fonctionnalité de tableau de bord d'OCI, afin de permettre la révision centralisée des événements OCI IAM.
-
Accédez à la page de destination de la console OCI, cliquez sur Oracle Cloud dans la bannière supérieure, puis passez à la vue Tableau de bord.
-
Créez un tableau de bord pour les rapports OCI IAM en cliquant sur Nouveau tableau de bord.
-
Sélectionnez Créer à partir de zéro, puis ajoutez un nom et une description appropriés.
-
Créez un groupe de tableaux de bord ou affectez ce tableau de bord à un groupe existant, le cas échéant.
-
Cliquez sur Ajouter un widget, sélectionnez Table de données de journalisation, puis cliquez sur Configurer sur le nouveau widget.
-
Indiquez un nom approprié, puis sélectionnez votre recherche enregistrée. Ajoutez une période par défaut appropriée.
-
Modifiez la mise en page et ajoutez d'autres recherches enregistrées, le cas échéant.
Automatiser l'extraction des données de rapport
Les approches ci-dessus permettent d'effectuer des rapports ad hoc sur les données IAM. Toutefois, pour les opérations en cours, il peut être nécessaire d'automatiser l'extraction de ces données. Pour ce faire, vous pouvez utiliser l'API OCI, l'interface de ligne de commande OCI ou l'un des kits SDK OCI.
L'API SearchLogs peut être appelée à l'aide d'une demande semblable à la suivante, en ajustant la période et en ajoutant la requête à partir de la recherche de journal initiale :
POST https://logging.<region>.oci.oraclecloud.com/20190909/search?limit=1000
Body:
{
"timeStart": "2025-01-01T00:00:00.000Z",
"timeEnd": "2025-01-02T00:00:00.000Z",
"searchQuery": "<log search query from Task #1>",
"isReturnFieldInfo": false
}
La commande d'interface de ligne de commande OCI équivalente est la suivante :
oci logging-search search-logs --search-query "<log search query from Task #1>" --time-start "2025-01-01T00:00:00.000Z" --time-end "2025-01-02T00:00:00.000Z" --is-return-field-info false
Remarque : échappez aux guillemets doubles (
"
) dans votre requête de recherche avec des barres obliques inverses (\
). Par exemple,as "Success/Failure"
devientas \"Success/Failure\"
.
Si vous préférez que les événements d'audit soient propagés vers un autre système, vous pouvez utiliser OCI Connector Hub ou OCI Events pour faciliter le transfert de journal, par exemple dans Implémentation de la sécurité multicloud à l'aide d'OCI Audit afin de capturer des événements à partir d'OCI Identity and Access Management couvrant le transfert d'audit vers Azure Sentinel.
Liens connexes
Remerciements
- Auteurs - Manoj Gaddam (chef de produit principal - Identité OCI/IDCS), Callan Howell-Pavia (membre principal du personnel technique - Identité OCI/IDCS)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation produit, consultez le site Oracle Help Center.
Generate Identity and Access Management Reports from Oracle Cloud Infrastructure Audit
F89546-02
January 2025