Nota

Generare report di Identity and Access Management da Oracle Cloud Infrastructure Audit

Introduzione

I domini di Identity di Oracle Cloud Infrastructure (OCI) sono il successore di Oracle Identity Cloud Service e portano tutte le funzionalità di Oracle Identity Cloud Service in un servizio Oracle Cloud Infrastructure di base. Oracle Identity Cloud Service era un'offerta autonoma simile a SaaS e fornisce report sull'attività degli utenti e simili all'interno del servizio.

A differenza di Oracle Identity Cloud Service, OCI Identity Domains esiste all'interno del contesto OCI più ampio. Un principio di progettazione OCI prevede l'uso di funzionalità di servizio comuni, ove possibile e di conseguenza alcuni dei report resi disponibili in Oracle Identity Cloud Service non sono più validi, poiché i dati utilizzati sono ora disponibili tramite la funzionalità di servizio comune fornita da OCI Audit.

Questa esercitazione descrive come creare i report non più validi dai dati di OCI Audit e renderli disponibili all'interno di OCI Dashboard.

Obiettivi

Prerequisiti

Task 1: Esplora gli eventi di audit OCI Identity and Access Management

Ogni servizio OCI crea record di audit su un utente o un'azione del servizio e IAM OCI non fa eccezione, creando record di audit sull'accesso utente, nonché qualsiasi modifica o evento che si verifica all'interno di IAM OCI.

  1. Accedere al servizio Log sotto le funzionalità di osservabilità e gestione all'interno di OCI Console, quindi selezionare la sezione Cerca.

  2. Fare clic su Seleziona log da cercare per impostare il contesto per la ricerca di log nel compartimento contenente il dominio di Identity IAM OCI per il quale si desidera generare il report.

    Aggiunta del compartimento alla ricerca di log

    Dopo aver selezionato il compartimento pertinente, è probabile che vengano visualizzate diverse voci per l'attività dell'utente o del servizio, con le voci specifiche che dipendono dal modo in cui viene utilizzata la tenancy. È inoltre possibile visualizzare eventi di login personali o di altro tipo. Se non vengono visualizzate voci, assicurarsi di aver selezionato l'area corretta espandendo Altre opzioni di ricerca oppure espandere la finestra temporale modificando l'impostazione Filtra per ora.

  3. Fare clic su Mostra modalità avanzata per visualizzare la possibilità di immettere query in formato testo libero, quindi aggiungere una delle seguenti voci alla fine della query predefinita (dopo 'ordinamento in base a descrizione data e ora') per generare lo stesso contenuto incluso nel report di Oracle Identity Cloud Service.

    Report Query
    Report login riusciti | dove data.additionalDetails.eventId = 'sso.session.create.success' | selezionare data.additionalDetails.domainDisplayName come dominio, data.additionalDetails.actorName come login, data.additionalDetails.eventId come risultato, data.additionalDetails.ssoRp come provider, time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') come data
    Report login non riusciti | 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
    Report accessi applicazioni | 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
    Report log di 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
    Report assegnazioni ruoli applicazione | dove data.additionalDetails.eventId = 'admin.approle.add.member.success' o data.additionalDetails.eventId = 'admin.approle.remove.member.success' | selezionare data.additionalDetails.domainDisplayName come dominio, data.additionalDetails.actorDisplayName come approvatore, data.additionalDetails.adminAppRoleAppName come "Nome applicazione", data.additionalDetails.adminRefResourceName come beneficiario, data.additionalDetails.adminRefResourceType come "Utente/Gruppo", data.additionalDetails.adminResourceName come "Nome ruolo applicazione", time_format(datetime, 'yyyy-MM-dd hh:mm:ss z') come data, data.additionalDetails.eventId come "Aggiunto/rimosso"

    Ad esempio, per il report Successful Logins, l'aspetto della query è simile a quello riportato di seguito.

    Rappresentazione della query di accesso all'applicazione nella ricerca avanzata

  4. Fare clic su Cerca per utilizzare la query aggiornata. Se non restituisce alcun risultato, potrebbe essere necessario modificare il filtro dell'ora.

    Risultati di esempio della query di accesso all'applicazione

  5. È possibile esportare qualsiasi risultato restituito facendo clic su Esporta dati di log (JSON) nell'elenco a discesa Azioni sopra i risultati.

    Esportazione dei dati di log dalla ricerca log

    Nota: Oracle Identity Cloud Service supporta il download come file CSV mentre questa esportazione supporta solo l'esportazione JSON, tuttavia le istruzioni SELECT utilizzate nelle query precedenti appiattiscono JSON in un singolo oggetto con attributi, che dovrebbero consentire la conversione tra l'esportazione JSON e CSV, se necessario.

Task 2: Creare una ricerca salvata per il report

Per evitare di reinserire la query ogni volta che si desidera accedere a questi report, è possibile utilizzare la funzionalità Ricerca salvata di OCI Logging.

  1. Dopo aver convalidato la query, fare clic su Salva ricerca per consentire il riutilizzo e l'integrazione della query nel dashboard.

  2. Immettere un nome per la ricerca, ad esempio 'Successful_Login_Report' o simile, nonché una descrizione, quindi fare clic su Salva.

  3. Dall'interfaccia Ricerche salvate è possibile fare clic di nuovo nella ricerca per ottenere il set di dati più recente.

Nota: non è possibile esportare direttamente i risultati dall'interfaccia di ricerca salvata, ma è necessario utilizzare l'opzione Esplora con ricerca log nell'elenco a discesa Azioni, quindi esportare i risultati dalla vista Ricerca.

Task 3: aggiungere il report a un dashboard OCI

Oltre ad accedere ai report dall'interno del servizio OCI Logging, possono essere resi disponibili anche tramite la funzionalità dashboard di OCI, per consentire la revisione centralizzata degli eventi IAM OCI.

  1. Andare alla pagina di arrivo di OCI Console, fare clic su Oracle Cloud nel banner superiore, quindi passare alla vista Dashboard.

  2. Creare un nuovo dashboard per i report IAM OCI facendo clic su Nuovo dashboard.

  3. Selezionare Genera da zero e aggiungere un nome e una descrizione appropriati.

    Creazione di un dashboard per visualizzare i report IAM.

  4. Creare un nuovo gruppo di dashboard o assegnare questo dashboard a un gruppo esistente, se necessario.

  5. Fare clic su Aggiungi widget, quindi selezionare Tabella dati di log, quindi fare clic su Configura nel nuovo widget.

  6. Fornire un nome appropriato, quindi selezionare la ricerca salvata. Aggiungere un periodo di tempo predefinito appropriato.

    Creazione di un widget per il report Accesso applicazione.

  7. Modificare il layout e aggiungere altre ricerche salvate in base alle esigenze.

    Dashboard di esempio con più report IAM

Automazione dell'estrazione dei dati del report

Gli approcci di cui sopra offrono la possibilità di eseguire report ad hoc sui dati IAM. Tuttavia, per le operazioni in corso, potrebbe essere necessario automatizzare l'estrazione di questi dati. Per fare ciò, puoi sfruttare l'API OCI, l'interfaccia CLI OCI o uno degli SDK OCI.

L'interfaccia API SearchLogs può essere richiamata utilizzando una richiesta simile alla seguente, modificando l'intervallo di tempo e aggiungendo la query dalla ricerca log iniziale:

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
}

Il comando CLI OCI equivalente è il seguente:

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: i caratteri delle virgolette doppie (") nella query di ricerca vengono esclusi dalla barra rovesciata (\), ovvero as "Success/Failure" diventa as \"Success/Failure\".

Se si preferisce eseguire il push degli eventi di audit in un sistema alternativo, è possibile utilizzare OCI Connector Hub o OCI Events per facilitare l'inoltro dei log, ad esempio in Implementare la sicurezza multi-cloud utilizzando OCI Audit per acquisire gli eventi da OCI Identity and Access Management che include l'inoltro di audit a Azure Sentinel.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.