Note :

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) succèdent à Oracle Identity Cloud Service et fournissent toutes les capacités d'Oracle Identity Cloud Service à 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 autres au sein du service.

Contrairement à Oracle Identity Cloud Service, les domaines d'identité OCI existent dans le contexte OCI supérieur. Un principe de conception d'OCI consiste à utiliser des capacités de service communes lorsque cela est possible et, par conséquent, certains des rapports qui ont été mis à disposition dans Oracle Identity Cloud Service sont en voie d'abandon, car les données qu'ils ont utilisées sont maintenant disponibles au moyen de la capacité de service commun fournie par le service de vérification d'OCI.

Ce tutoriel explique comment construire les 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

Préalables

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 l'utilisateur ou l'action de service, et le service IAM pour OCI ne fait pas exception, créant des enregistrements de vérification pour l'accès de l'utilisateur, ainsi que pour toute modification ou tout événement qui se produit dans le service IAM pour OCI.

  1. Accédez au service de journalisation sous les fonctions Observabilité et gestion dans 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é IAM OCI pour lequel vous voulez 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. Si vous ne voyez aucune entrée, assurez-vous que la région appropriée est sélectionnée en développant Autres options de recherche ou développez la fenêtre de temps en modifiant le paramètre Filtrer par heure.

  3. Cliquez sur Afficher le mode avancé pour afficher la possibilité d'entrer des interrogations en texte libre, puis ajoutez l'une des options suivantes à la fin de l'interrogation par défaut (après 'trier par description date-heure') 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 | 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 connexions en échec | où 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 l'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 comme domaine, data.additionalDetails.actorDisplayName comme utilisateur, data.additionalDetails.actorName comme connexion, data.additionalDetails.eventId comme "Réussite/Échec", data.additionalDetails.ssoRp comme application, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') comme 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 | où data.additionalDetails.eventId = 'admin.approle.add.member.success' ou data.additionalDetails.eventId = 'admin.approle.remove.member.success' | sélectionnez data.additionalDetails.domainDisplayName en tant que domaine, data.additionalDetails.actorDisplayName en tant qu'approbateur, data.additionalDetails.adminAppRoleAppName en tant que "Nom d'application", data.additionalDetails.adminRefResourceName en tant que bénéficiaire, data.additionalDetails.adminRefResourceType en tant qu'"utilisateur/groupe", data.additionalDetails.adminResourceName en tant que "Nom de rôle d'application", time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') en tant que date, data.additionalDetails.eventId en tant que "ajouté/supprimé"

    Par exemple, pour le rapport Successful Logins, l'interrogation ressemblerait à ce qui suit.

    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 d'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 de sélection utilisés dans les interrogations ci-dessus aplanissent JSON en un seul objet avec des attributs, ce qui devrait vous permettre de convertir les données 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 voulez accéder à ces rapports, vous pouvez tirer parti de la fonction de recherche enregistrée du service de journalisation pour OCI.

  1. Après avoir validé l'interrogation, 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, tel que '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 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 mis à disposition au moyen de la fonction de tableau de bord d'OCI, pour permettre la révision centralisée des événements IAM OCI.

  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 IAM OCI 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 sur 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 sur l'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. 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 tirer parti de l'API OCI, de l'interface de ligne de commande OCI ou de 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 : Échapper les caractères entre 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, vous pouvez utiliser le centre de connecteurs OCI ou les événements OCI pour faciliter le transfert des journaux, par exemple dans Mettre en oeuvre la sécurité multinuage à l'aide du service de vérification pour saisir des événements de la gestion des identités et des accès OCI couvrant le transfert de vérification vers Azure Sentinel.

Confirmation

Autres ressources d'apprentissage

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

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