Generación de informes de gestión de identidades y accesos de Oracle Cloud Infrastructure Audit

Introducción

Los dominios de identidad de Oracle Cloud Infrastructure (OCI) son el sucesor de Oracle Identity Cloud Service y llevan todas las capacidades de Oracle Identity Cloud Service a un servicio principal de Oracle Cloud Infrastructure. Oracle Identity Cloud Service era una oferta autónoma similar a la de SaaS y proporciona informes sobre la actividad del usuario y similares en el servicio.

A diferencia de Oracle Identity Cloud Service, los dominios de identidad de OCI existen en el contexto de OCI más amplio. Un principio de diseño de OCI consiste en utilizar capacidades de servicio comunes siempre que sea posible y, como resultado, algunos de los informes que se pusieron a disposición en Oracle Identity Cloud Service están en desuso, ya que los datos que utilizaron ahora están disponibles a través de la capacidad de servicio común proporcionada por OCI Audit.

En este tutorial se muestra cómo crear los informes en desuso a partir de los datos de OCI Audit y hacer que esos informes estén disponibles en OCI Dashboard.

Objetivos

Requisitos

Tarea 1: Exploración de los eventos de auditoría de OCI Identity and Access Management

Cada servicio OCI crea registros de auditoría en una acción de usuario o servicio, y OCI IAM no es una excepción, ya que crea registros de auditoría en el acceso de usuario, así como cualquier cambio o evento que se produzca en OCI IAM.

  1. Acceda al servicio Logging en las capacidades Observability & Management de la consola de OCI y, a continuación, seleccione la sección Search.

  2. Haga clic en Seleccionar logs para buscar para definir el contexto de la búsqueda de logs en el compartimento que contiene el dominio de identidad de OCI IAM para el que desea generar el informe.

    Adición del compartimento a la búsqueda de registro

    Después de seleccionar el compartimento correspondiente, es probable que vea varias entradas para la actividad de usuario o servicio, y las entradas específicas dependen de cómo se utilice su arrendamiento. También puede ver sus propios u otros eventos de inicio de sesión. Si no ve ninguna entrada, asegúrese de que tiene la región correcta seleccionada ampliando Más opciones de búsqueda o amplíe la ventana de tiempo modificando la configuración Filtrar por tiempo.

  3. Haga clic en Mostrar Modo Avanzado para activar la capacidad de introducir consultas de texto libre y, a continuación, agregue una de las siguientes al final de la consulta por defecto (después de 'ordenar por descripción de fecha y hora') para generar el mismo contenido que se incluyó en el informe de Oracle Identity Cloud Service.

    Informe Consulta
    Informe de inicio de sesión correcto | 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
    Informe de inicios de sesión fallidos | 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
    Informe de acceso a aplicaciones | 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
    Informe de log de auditoría | 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
    Informe de asignaciones de roles de aplicación | 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"

    Por ejemplo, para el informe Successful Logins, la consulta sería similar a la siguiente.

    Representación de la consulta de acceso a la aplicación en Búsqueda avanzada

  4. Haga clic en Buscar para utilizar la consulta actualizada. Si no devuelve ningún resultado, es posible que deba modificar el filtro de tiempo.

    Resultados de ejemplo de la consulta de acceso a la aplicación

  5. Cualquier resultado devuelto se puede exportar haciendo clic en Exportar datos de log (JSON) en la lista desplegable Acciones situada encima de los resultados.

    Exportación de Datos de Log desde la Búsqueda de Log

    Nota: Los informes de Oracle Identity Cloud Service soportan la descarga como un archivo CSV, mientras que esta exportación solo soporta la exportación JSON. Sin embargo, las sentencias select utilizadas en las consultas anteriores simplifican JSON a un único objeto con atributos, lo que debería permitir convertir entre la exportación JSON y CSV si es necesario.

Tarea 2: Crear una búsqueda guardada para su informe

Para evitar volver a introducir la consulta cada vez que desee acceder a estos informes, puede aprovechar la capacidad de búsqueda guardada de OCI Logging.

  1. Una vez validada la consulta, haga clic en Guardar búsqueda para permitir que la consulta se reutilice y embeba en el panel de control.

  2. Introduzca un nombre para la búsqueda, como 'Successful_Login_Report' o similar, así como una descripción y, a continuación, haga clic en Guardar.

  3. En la interfaz de búsquedas guardadas, puede volver a hacer clic en la búsqueda para obtener el último juego de datos.

Nota: No puede exportar directamente los resultados desde la interfaz de búsqueda guardada; en su lugar, debe usar Explorar con búsqueda de log en la lista desplegable Acciones y, a continuación, exportar los resultados desde la vista de búsqueda.

Tarea 3: Adición del informe a un panel de control de OCI

Además de acceder a los informes desde el servicio OCI Logging, también pueden estar disponibles a través de la capacidad del panel de control de OCI, para permitir que los eventos de OCI IAM se revisen de forma centralizada.

  1. Navegue a la página de llegada de la consola de OCI, haga clic en Oracle Cloud en el banner superior y, a continuación, cambie a la vista Panel de control.

  2. Cree un nuevo panel de control para los informes de OCI IAM haciendo clic en Nuevo panel de control.

  3. Seleccione Crear desde cero y agregue un nombre y una descripción adecuados.

    Creación de un panel de control para mostrar los informes de IAM.

  4. Cree un nuevo grupo de paneles de control o asigne este panel de control a un grupo existente, si corresponde.

  5. Haga clic en Agregar widget, seleccione Tabla de datos de registro y, a continuación, haga clic en Configurar en el nuevo widget.

  6. Proporcione un nombre adecuado y, a continuación, seleccione la búsqueda guardada. Agregue un período de tiempo predeterminado adecuado.

    Creación de un widget para el informe de acceso a aplicaciones.

  7. Modifique el diseño y agregue otras búsquedas guardadas según corresponda.

    Panel de control de ejemplo con varios informes de IAM

Automatización de la extracción de datos de informes

Los enfoques anteriores proporcionan la capacidad de realizar informes ad hoc sobre datos de IAM. Sin embargo, para las operaciones en curso, puede haber un requisito para automatizar la extracción de estos datos. Para ello, puede aprovechar la API de OCI, la CLI de OCI o uno de los SDK de OCI.

La API SearchLogs se puede llamar mediante una solicitud similar a la siguiente, ajustando el rango temporal y agregando la consulta desde la búsqueda de log inicial:

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
}

El comando equivalente de la CLI de OCI es el siguiente:

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

Nota: Escape de caracteres de comillas dobles (") en la consulta de búsqueda con barras invertidas (\). Es decir, as "Success/Failure" se convierte en as \"Success/Failure\".

Si prefiere que los eventos de auditoría se transfieran a un sistema alternativo, OCI Connector Hub u OCI Events se podrían utilizar para facilitar el reenvío de logs, como en Implantación de seguridad multinube mediante OCI Audit para capturar eventos de OCI Identity and Access Management que abarcan el reenvío de auditoría a Azure Sentinel.

Acuses de recibo

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.