Générer des rapports de gestion des identités et des accès à partir du service de vérification pour Oracle Cloud Infrastructure

Présentation

Les domaines d'identité d'Oracle Cloud Infrastructure (OCI) sont le successeur d'Oracle Identity Cloud Service et intègrent toutes les capacité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 et fournit des rapports sur l'activité des utilisateurs et similaires dans le 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 les capacités de service communes lorsque cela est possible. Par conséquent, certains des rapports qui ont été mis à disposition dans Oracle Identity Cloud Service sont en cours d'abandon, car les données qu'ils ont utilisées sont maintenant disponibles au moyen de la capacité de service commune fournie par OCI Audit.

Ce tutoriel explique comment créer des rapports obsolètes à partir des données du service de vérification pour OCI et les rendre disponibles dans le tableau de bord OCI.

Objectifs

Conditions requises

Tâche 1 : Explorer les événements de vérification de la gestion des identités et des accès pour OCI

Chaque service OCI crée des enregistrements de vérification pour les actions de l'utilisateur ou du service, et l'OCI IAM ne fait pas exception, en créant des enregistrements de vérification pour l'accès de l'utilisateur, ainsi que pour toute modification ou tout événement survenant dans l'OCI IAM.

  1. Accédez au service Journalisation sous les fonctions Observabilité et gestion de la console OCI, puis sélectionnez la section Rechercher.

  2. Cliquez sur Sélectionner les journaux à rechercher pour régler le contexte de la recherche de journaux au compartiment contenant le domaine d'identité OCI IAM pour lequel vous souhaitez générer le rapport.

    Ajout du compartiment à la recherche de journalisation

    Après avoir sélectionné le compartiment approprié, vous verrez probablement plusieurs entrées pour l'activité d'utilisateur ou de 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, assurez-vous d'avoir sélectionné la région appropriée en développant Options de recherche supplémentaires, ou développez la fenêtre de temps en modifiant le paramètre Filtrer par heure.

  3. Cliquez sur Afficher le mode avancé pour activer la possibilité d'entrer des interrogations en texte libre, puis ajoutez l'un des éléments suivants à la fin de l'interrogation par défaut (après 'trier par date et heure desc') pour générer le même contenu qui a été inclus dans le rapport Oracle Identity Cloud Service.

    Rapport Interrogation
    Rapport sur les connexions réussies | where data.additionalDetails.eventId = 'sso.session.create.success' | select data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorName as Login, data.additionalDetails.eventId as Result, data.additionalDetails.ssoRp as Provider, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') as Date
    Rapport sur les échecs de connexion | where data.additionalDetails.eventId='sso.authentication.failure' | select data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorName as User, data.additionalDetails.eventId as Result, data.message as Comments, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') as Date
    Rapport sur l'accès à l'application | where data.additionalDetails.eventId = 'sso.session.create.success' or data.additionalDetails.eventId = 'sso.authentication.failure' or data.additionalDetails.eventId = 'sso.session.modify.success' | select data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorDisplayName as User, data.additionalDetails.actorName as Login, data.additionalDetails.eventId as "Success/Failure", data.additionalDetails.ssoRp as Application, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') as Date
    Rapport Journal de vérification | 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 sur les affectations de rôles d'application | where data.additionalDetails.eventId = 'admin.approle.add.member.success' or data.additionalDetails.eventId = 'admin.approle.remove.member.success' | select data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorDisplayName as Approver, data.additionalDetails.adminAppRoleAppName as "Application Name", data.additionalDetails.adminRefResourceName as Beneficiary, data.additionalDetails.adminRefResourceType as "User/Group", data.additionalDetails.adminResourceName as "Application Role Name", time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') as Date, data.additionalDetails.eventId as "Added/Removed"

    Par exemple, pour le rapport Successful Logins, l'interrogation ressemblerait à celle ci-dessous.

    Représentation de l'interrogation d'accès à l'application dans la recherche avancée

  4. Cliquez sur Rechercher pour utiliser l'interrogation mise à jour. S'il ne retourne aucun résultat, vous devrez peut-être modifier le filtre de temps.

    Exemples de résultats de l'interrogation d'accès à l'application

  5. Tous les résultats retournés peuvent être exportés en cliquant sur Exporter les données de journal (JSON) dans la liste déroulante Actions au-dessus des résultats.

    Exportation des données de journal à partir de la recherche de journaux

    Note : Les rapports Oracle Identity Cloud Service prennent en charge le téléchargement en tant que fichier CSV alors que cette exportation ne prend en charge que l'exportation JSON. Toutefois, les énoncés sélectionnés utilisés dans les interrogations ci-dessus nivellent JSON en un seul objet avec des attributs, ce qui devrait vous permettre de convertir entre l'exportation JSON et CSV si nécessaire.

Tâche 2 : Créer une recherche enregistrée pour votre rapport

Pour éviter d'entrer de nouveau l'interrogation chaque fois que vous souhaitez accéder à ces rapports, vous pouvez utiliser la fonction de recherche enregistrée du service de journalisation pour OCI.

  1. Une fois l'interrogation validée, cliquez sur Enregistrer la recherche pour permettre la réutilisation et l'intégration de l'interrogation dans le tableau de bord.

  2. Entrez un nom pour votre recherche, par exemple 'Successful_Login_Report' ou similaire, ainsi qu'une description, puis cliquez sur Enregistrer.

  3. À partir de l'interface Recherches enregistrées, vous pouvez cliquer de nouveau dans votre recherche pour obtenir le dernier jeu de données.

Note : Vous ne pouvez pas exporter directement les résultats à partir de l'interface de recherche enregistrée. Vous devez plutôt utiliser Explorer avec la recherche dans les journaux à partir de la liste déroulante Actions, puis exporter les résultats à partir de la vue de recherche.

Tâche 3 : Ajouter le rapport à un tableau de bord OCI

En plus d'accéder aux rapports à partir du service de journalisation OCI, ils peuvent également être disponibles au moyen de la fonction de tableau de bord d'OCI, pour permettre l'examen centralisé des événements OCI IAM.

  1. Naviguez jusqu'à la page de renvoi de la console OCI, cliquez sur Oracle Cloud dans la bannière supérieure, puis passez à la vue Tableau de bord.

  2. Créez un nouveau tableau de bord pour les rapports OCI IAM, en cliquant sur Nouveau tableau de bord.

  3. Sélectionnez Créer à partir de zéro et ajoutez un nom et une description appropriés.

    Création d'un tableau de bord pour afficher les rapports IAM.

  4. Créez un nouveau groupe de tableaux de bord ou affectez-le à un groupe existant, le cas échéant.

  5. Cliquez sur Ajouter un widget, sélectionnez Table de données de journalisation, puis cliquez sur Configurer dans le nouveau widget.

  6. Indiquez un nom approprié, puis sélectionnez votre recherche enregistrée. Ajoutez une période par défaut appropriée.

    Création d'un widget pour le rapport Accès à l'application.

  7. Modifiez la disposition et ajoutez d'autres recherches enregistrées, le cas échéant.

    Exemple de tableau de bord avec plusieurs rapports IAM

Automatisation de l'extraction des données du rapport

Les approches ci-dessus permettent d'effectuer des rapports ad hoc sur les données IAM. Cependant, 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'une des trousses SDK OCI.

L'API SearchLogs peut être appelée à l'aide d'une demande similaire à la suivante, en ajustant l'intervalle de temps et en ajoutant l'interrogation à partir de la recherche de journaux 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

Note : Échappez les guillemets doubles (") dans votre interrogation de recherche avec des barres obliques inverses (\). Par exemple, as "Success/Failure" devient as \"Success/Failure\".

Si vous préférez que les événements de vérification soient poussés vers un autre système, le centre de connecteurs pour OCI ou les événements pour OCI peuvent être utilisés pour faciliter le transfert de journaux, par exemple dans Mettre en oeuvre la sécurité multinuage à l'aide du service de vérification pour OCI pour saisir des événements du service de gestion des identités et des accès pour OCI couvrant le transfert du service de vérification vers Azure Sentinel.

Remerciements

Ressources d'apprentissage supplémentaires

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation sur le produit, visitez Oracle Help Center.