Raccogli i log di controllo di Oracle Cloud Infrastructure

Supportato in:

Questo documento spiega come importare i log di controllo di Oracle Cloud Infrastructure in Google Security Operations utilizzando Amazon S3.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps.
  • Account Oracle Cloud Infrastructure con autorizzazioni per creare e gestire:
    • Service Connector Hub
    • Oracle Functions
    • Vault e secret
    • Gruppi dinamici e criteri IAM
    • Logging
  • Account AWS con autorizzazioni per creare e gestire:
    • Bucket S3
    • Utenti e criteri IAM

Crea un bucket Amazon S3

  1. Accedi alla console di gestione AWS.
  2. Vai a S3 > Crea bucket.
  3. Fornisci i seguenti dettagli di configurazione:
    • Nome bucket: inserisci un nome univoco (ad esempio oci-audit-logs-bucket).
    • Regione AWS: seleziona una regione (ad esempio, us-east-1).
    • Mantieni le impostazioni predefinite per le altre opzioni.
  4. Fai clic su Crea bucket.
  5. Salva il nome e la regione del bucket per utilizzarli in un secondo momento.

Crea un utente IAM in AWS per OCI Functions

  1. Accedi alla console di gestione AWS.
  2. Vai a IAM > Utenti > Aggiungi utenti.
  3. Fornisci i seguenti dettagli di configurazione:
    • Nome utente: inserisci un nome utente (ad esempio, oci-functions-s3-user).
    • Tipo di accesso: seleziona Chiave di accesso - Accesso programmatico.
  4. Fai clic su Avanti: autorizzazioni.
  5. Fai clic su Collega direttamente le policy esistenti.
  6. Cerca e seleziona il criterio AmazonS3FullAccess.
  7. Fai clic su Avanti: tag.
  8. Fai clic su Successivo: esamina.
  9. Fai clic su Crea utente.
  10. Importante: nella pagina di conferma, copia e salva le seguenti credenziali:
    • ID chiave di accesso
    • Chiave di accesso segreta

Archivia le credenziali AWS in OCI Vault

Per archiviare in modo sicuro le credenziali AWS, devi utilizzare Oracle Cloud Infrastructure Vault anziché codificarle nel codice della funzione.

Crea un vault e una chiave di crittografia principale

  1. Accedi alla console Oracle Cloud.
  2. Vai a Identità e sicurezza > Vault.
  3. Se non hai un Vault, fai clic su Crea Vault.
  4. Fornisci i seguenti dettagli di configurazione:
    • Crea in Compartment: seleziona il tuo comparto.
    • Nome: inserisci un nome (ad esempio, oci-functions-vault).
  5. Fai clic su Crea Vault.
  6. Una volta creato il Vault, fai clic sul suo nome per aprirlo.
  7. In Chiavi di crittografia master, fai clic su Crea chiave.
  8. Fornisci i seguenti dettagli di configurazione:
    • Modalità di protezione: software
    • Nome: inserisci un nome (ad esempio, oci-functions-key).
    • Key Shape: Algorithm (Forma della chiave: algoritmo): AES
    • Forma della chiave: lunghezza: 256 bit
  9. Fai clic su Crea chiave.

Crea secret per le credenziali AWS

  1. In Vault, sotto Secret, fai clic su Crea secret.
  2. Fornisci i seguenti dettagli di configurazione per la chiave di accesso AWS:
    • Crea in Compartment: seleziona il tuo comparto.
    • Nome: aws-access-key
    • Descrizione: chiave di accesso AWS per S3
    • Chiave di crittografia: seleziona la chiave di crittografia principale che hai creato.
    • Contenuti del tipo di secret: testo normale
    • Contenuti del segreto: incolla l'ID chiave di accesso AWS.
  3. Fai clic su Crea secret.
  4. Copia e salva l'OCID di questo secret (ha l'aspetto di ocid1.vaultsecret.oc1...).
  5. Fai di nuovo clic su Crea secret per creare il secondo secret.
  6. Fornisci i seguenti dettagli di configurazione per la chiave segreta AWS:
    • Crea in Compartment: seleziona il tuo comparto.
    • Nome: aws-secret-key
    • Description: AWS secret key for S3
    • Chiave di crittografia: seleziona la stessa chiave di crittografia master.
    • Contenuti del tipo di secret: testo normale
    • Contenuti del segreto: incolla la tua chiave di accesso segreta AWS.
  7. Fai clic su Crea secret.
  8. Copia e salva l'OCID di questo secret.

Creare un gruppo dinamico per le funzioni OCI

  1. Accedi alla console Oracle Cloud.
  2. Vai a Identity & Security > Identity > Dynamic Groups.
  3. Fai clic su Crea gruppo dinamico.
  4. Fornisci i seguenti dettagli di configurazione:

    • Nome: oci-functions-dynamic-group
    • Descrizione: gruppo dinamico per consentire alle funzioni OCI di accedere ai secret di Vault
    • Regole di corrispondenza: inserisci la seguente regola (sostituisci <your_compartment_ocid> con l'OCID del tuo compartimento):

      ALL {resource.type = 'fnfunc', resource.compartment.id = '<your_compartment_ocid>'}
      
  5. Fai clic su Crea.

Crea un criterio IAM per l'accesso a Vault

  1. Accedi alla console Oracle Cloud.
  2. Vai a Identità e sicurezza > Identità > Norme.
  3. Seleziona il compartimento in cui vuoi creare il criterio.
  4. Fai clic su Crea criterio.
  5. Fornisci i seguenti dettagli di configurazione:

    • Nome: oci-functions-vault-access-policy
    • Descrizione: consente a OCI Functions di leggere i secret da Vault
    • Generatore di norme: attiva/disattiva Mostra editor manuale.
    • Policy statements (Istruzioni della policy): inserisci quanto segue (sostituisci <compartment_name> con il nome del tuo compartimento):

      allow dynamic-group oci-functions-dynamic-group to manage secret-family in compartment <compartment_name>
      
  6. Fai clic su Crea.

Crea un'applicazione di funzioni OCI

  1. Accedi alla console Oracle Cloud.
  2. Vai a Servizi per gli sviluppatori > Applicazioni (in Funzioni).
  3. Fai clic su Crea applicazione.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome (ad esempio, oci-logs-to-s3-app).
    • VCN: seleziona un VCN nel tuo compartimento.
    • Subnet: seleziona una o più subnet.
  5. Fai clic su Crea.

Crea ed esegui il deployment della funzione OCI

  1. Nella console Oracle Cloud, fai clic sull'icona Cloud Shell nell'angolo in alto a destra.
  2. Attendi l'inizializzazione di Cloud Shell.

Crea la funzione

  1. In Cloud Shell, crea una nuova directory per la funzione:

    mkdir pushlogs
    cd pushlogs
    
  2. Inizializza una nuova funzione Python:

    fn init --runtime python
    
  3. Vengono creati tre file: func.py, func.yaml e requirements.txt.

Aggiorna func.py

  • Sostituisci i contenuti di func.py con il seguente codice:

    import io
    import json
    import logging
    import boto3
    import oci
    import base64
    import os
    from fdk import response
    
    def handler(ctx, data: io.BytesIO = None):
        """
        OCI Function to push audit logs from OCI Logging to AWS S3
        """
        try:
            # Parse incoming log data from Service Connector
            funDataStr = data.read().decode('utf-8')
            funData = json.loads(funDataStr)
    
            logging.getLogger().info(f"Received {len(funData)} log entries")
    
            # Replace these with your actual OCI Vault secret OCIDs
            secret_key_id = "ocid1.vaultsecret.oc1..<your_secret_key_ocid>"
            access_key_id = "ocid1.vaultsecret.oc1..<your_access_key_ocid>"
    
            # Replace with your S3 bucket name
            s3_bucket_name = "oci-audit-logs-bucket"
    
            # Use Resource Principals for OCI authentication
            signer = oci.auth.signers.get_resource_principals_signer()
            secret_client = oci.secrets.SecretsClient({}, signer=signer)
    
            def read_secret_value(secret_client, secret_id):
                """Retrieve and decode secret value from OCI Vault"""
                response = secret_client.get_secret_bundle(secret_id)
                base64_secret_content = response.data.secret_bundle_content.content
                base64_secret_bytes = base64_secret_content.encode('ascii')
                base64_message_bytes = base64.b64decode(base64_secret_bytes)
                secret_content = base64_message_bytes.decode('ascii')
                return secret_content
    
            # Retrieve AWS credentials from OCI Vault
            awsaccesskey = read_secret_value(secret_client, access_key_id)
            awssecretkey = read_secret_value(secret_client, secret_key_id)
    
            # Initialize boto3 session with AWS credentials
            session = boto3.Session(
                aws_access_key_id=awsaccesskey,
                aws_secret_access_key=awssecretkey
            )
            s3 = session.resource('s3')
    
            # Process each log entry
            for i in range(0, len(funData)):
                # Use timestamp as filename
                filename = funData[i].get('time', f'log_{i}')
                # Remove special characters from filename
                filename = filename.replace(':', '-').replace('.', '-')
    
                logging.getLogger().info(f"Processing log entry: {filename}")
    
                # Write log entry to temporary file
                temp_file = f'/tmp/{filename}.json'
                with open(temp_file, 'w', encoding='utf-8') as f:
                    json.dump(funData[i], f, ensure_ascii=False, indent=4)
    
                # Upload to S3
                s3_key = f'{filename}.json'
                s3.meta.client.upload_file(
                    Filename=temp_file,
                    Bucket=s3_bucket_name,
                    Key=s3_key
                )
    
                logging.getLogger().info(f"Uploaded {s3_key} to S3 bucket {s3_bucket_name}")
    
                # Clean up temporary file
                os.remove(temp_file)
    
            return response.Response(
                ctx,
                response_data=json.dumps({
                    "status": "success",
                    "processed_logs": len(funData)
                }),
                headers={"Content-Type": "application/json"}
            )
    
        except Exception as e:
            logging.getLogger().error(f"Error processing logs: {str(e)}")
            return response.Response(
                ctx,
                response_data=json.dumps({
                    "status": "error",
                    "message": str(e)
                }),
                headers={"Content-Type": "application/json"},
                status_code=500
            )
    
    • Sostituisci secret_key_id con l'OCID del secret del vault effettivo per la chiave segreta AWS
    • Sostituisci access_key_id con l'OCID segreto del vault effettivo per la chiave di accesso AWS
    • Sostituisci s3_bucket_name con il nome effettivo del bucket S3

Aggiorna func.yaml

Sostituisci i contenuti di func.yaml con:

  schema_version: 20180708
  name: pushlogs
  version: 0.0.1
  runtime: python
  build_image: fnproject/python:3.9-dev
  run_image: fnproject/python:3.9
  entrypoint: /python/bin/fdk /function/func.py handler
  memory: 256

Aggiorna requirements.txt

  • Sostituisci i contenuti di requirements.txt con:

    fdk>=0.1.56
    boto3
    oci
    

esegui il deployment della funzione

  1. Imposta il contesto Fn per utilizzare l'applicazione:

    fn use context <region-context>
    fn update context oracle.compartment-id <compartment-ocid>
    
  2. Esegui il deployment della funzione:

    fn -v deploy --app oci-logs-to-s3-app
    
  3. Attendi il completamento del deployment. Dovresti visualizzare un output che indica che il deployment della funzione è stato eseguito correttamente.

  4. Verifica che la funzione sia stata creata:

    fn list functions oci-logs-to-s3-app
    

Crea un connettore di servizio per inviare i log di controllo OCI alla funzione

  1. Accedi alla console Oracle Cloud.
  2. Vai a Analytics e AI > Messaggistica > Service Connector Hub.
  3. Seleziona il compartimento in cui vuoi creare il connettore di servizio.
  4. Fai clic su Crea connettore di servizio.

Configura i dettagli del connettore di servizi

  1. Fornisci i seguenti dettagli di configurazione:

Informazioni sul connettore di servizio: * Nome connettore: inserisci un nome descrittivo (ad esempio, audit-logs-to-s3-connector). * Descrizione: descrizione facoltativa (ad esempio, "Inoltra i log di controllo OCI ad AWS S3"). * Compartimento risorse: seleziona il compartimento.

Configura origine

  1. In Configura origine:
    • Origine: seleziona Logging.
    • Compartimento: seleziona il compartimento contenente i log di controllo.
    • Gruppo di log: seleziona _Audit (questo è il gruppo di log predefinito per i log di controllo).
    • Log: fai clic su + Another Log (Un altro log).
    • Seleziona il log di controllo per il tuo compartimento (ad esempio, _Audit_Include_Subcompartment).

Configura target

  1. In Configura target:
    • Target: seleziona Funzioni.
    • Compartment: seleziona il compartimento contenente l'applicazione di funzione.
    • Applicazione di funzione: seleziona oci-logs-to-s3-app (l'applicazione che hai creato in precedenza).
    • Funzione: seleziona pushlogs (la funzione di cui hai eseguito il deployment).

Configura la policy

  1. In Configura criterio:

    • Esamina le istruzioni dei criteri IAM richieste visualizzate.
    • Fai clic su Crea per creare automaticamente i criteri richiesti.
  2. Fai clic su Crea per creare il connettore di servizio.

  3. Attendi che il connettore di servizio venga creato e attivato. Lo stato dovrebbe cambiare in Attivo.

Verifica che i log vengano inviati ad AWS S3

  1. Accedi alla console Oracle Cloud.
  2. Esegui alcune azioni che generano audit log (ad esempio, crea o modifica una risorsa).
  3. Attendi 2-5 minuti affinché i log vengano elaborati.
  4. Accedi alla console di gestione AWS.
  5. Vai a S3 > Buckets.
  6. Fai clic sul tuo bucket (ad esempio oci-audit-logs-bucket).
  7. Verifica che i file di log JSON vengano visualizzati nel bucket.

Configura il bucket AWS S3 e IAM per Google SecOps

Crea un utente IAM per Chronicle

  1. Accedi alla console di gestione AWS.
  2. Vai a IAM > Utenti > Aggiungi utenti.
  3. Fornisci i seguenti dettagli di configurazione:
    • Nome utente: inserisci chronicle-s3-reader.
    • Tipo di accesso: seleziona Chiave di accesso - Accesso programmatico.
  4. Fai clic su Avanti: autorizzazioni.
  5. Fai clic su Collega direttamente le policy esistenti.
  6. Cerca e seleziona il criterio AmazonS3ReadOnlyAccess.
  7. Fai clic su Avanti: tag.
  8. Fai clic su Successivo: esamina.
  9. Fai clic su Crea utente.
  10. Fai clic su Scarica file CSV per salvare l'ID chiave di accesso e la chiave di accesso segreta.
  11. Fai clic su Chiudi.

(Facoltativo) Crea un criterio IAM personalizzato per l'accesso con privilegi minimi

Se vuoi limitare l'accesso solo al bucket specifico:

  1. Vai a IAM > Policy > Crea policy.
  2. Fai clic sulla scheda JSON.
  3. Inserisci la seguente policy:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "s3:GetObject",
            "s3:ListBucket"
          ],
          "Resource": [
            "arn:aws:s3:::oci-audit-logs-bucket",
            "arn:aws:s3:::oci-audit-logs-bucket/*"
          ]
        }
      ]
    }
    
    • Sostituisci oci-audit-logs-bucket con il nome del tuo bucket.
  4. Fai clic su Avanti: tag.

  5. Fai clic su Successivo: esamina.

  6. Fornisci i seguenti dettagli di configurazione:

    • Nome: chronicle-s3-read-policy
    • Descrizione: accesso di sola lettura al bucket degli audit log OCI
  7. Fai clic su Crea policy.

  8. Torna a IAM > Utenti e seleziona l'utente chronicle-s3-reader.

  9. Fai clic su Aggiungi autorizzazioni > Allega direttamente le policy.

  10. Cerca e seleziona chronicle-s3-read-policy.

  11. Rimuovi la policy AmazonS3ReadOnlyAccess se l'hai aggiunta in precedenza.

  12. Fai clic su Aggiungi autorizzazioni.

Configura un feed in Google SecOps per importare i log di controllo di Oracle Cloud

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Oracle Cloud Audit Logs).
  5. Seleziona Amazon S3 V2 come Tipo di origine.
  6. Seleziona Oracle Cloud Infrastructure come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:
    • URI S3: inserisci l'URI del bucket S3 (ad esempio, s3://oci-audit-logs-bucket/).
    • Opzione di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze:
      • Mai: consigliato per i test e la configurazione iniziale.
      • Elimina file trasferiti: elimina i file dopo l'importazione riuscita (utilizza questa opzione per la produzione per gestire i costi di archiviazione).
    • Età massima del file: includi i file modificati nell'ultimo numero di giorni. Il valore predefinito è 180 giorni.
    • ID chiave di accesso: inserisci l'ID chiave di accesso dell'utente IAM di Chronicle che hai creato.
    • Chiave di accesso segreta: inserisci la chiave di accesso segreta dell'utente IAM di Chronicle che hai creato.
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
  9. Fai clic su Avanti.
  10. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
data.request.headers.authorization.0 event.idm.read_only_udm.additional.fields Valore estratto da data.request.headers.authorization.0 e aggiunto come coppia chiave-valore in cui la chiave è "Request Headers Authorization".
data.compartmentId event.idm.read_only_udm.additional.fields Valore estratto da data.compartmentId e aggiunto come coppia chiave-valore in cui la chiave è "compartmentId".
data.compartmentName event.idm.read_only_udm.additional.fields Valore estratto da data.compartmentName e aggiunto come coppia chiave-valore in cui la chiave è "compartmentName".
data.response.headers.Content-Length.0 event.idm.read_only_udm.additional.fields Valore estratto da data.response.headers.Content-Length.0 e aggiunto come coppia chiave-valore in cui la chiave è "Response Headers Content-Length".
data.response.headers.Content-Type.0 event.idm.read_only_udm.additional.fields Valore estratto da data.response.headers.Content-Type.0 e aggiunto come coppia chiave-valore in cui la chiave è "Content-Type delle intestazioni della risposta".
data.eventGroupingId event.idm.read_only_udm.additional.fields Valore estratto da data.eventGroupingId e aggiunto come coppia chiave-valore in cui la chiave è "eventGroupingId".
oracle.tenantid, data.identity.tenantId event.idm.read_only_udm.additional.fields Il valore viene preso da oracle.tenantid se presente, altrimenti da data.identity.tenantId. Viene aggiunto come coppia chiave-valore in cui la chiave è "tenantId".
data.message event.idm.read_only_udm.metadata.description Valore tratto da data.message.
time event.idm.read_only_udm.metadata.event_timestamp Valore estratto da time e analizzato come timestamp ISO8601.
event.idm.read_only_udm.metadata.event_type Impostato su GENERIC_EVENT per impostazione predefinita. Imposta su NETWORK_CONNECTION se sono presenti un principal (IP o nome host) e un IP di destinazione. Impostato su STATUS_UPDATE se è presente solo un'entità.
time event.idm.read_only_udm.metadata.ingested_timestamp Se oracle.ingestedtime non è vuoto, il valore viene estratto dal campo time e analizzato come timestamp ISO8601.
oracle.tenantid event.idm.read_only_udm.metadata.product_deployment_id Valore tratto da oracle.tenantid.
type event.idm.read_only_udm.metadata.product_event_type Valore tratto da type.
oracle.logid event.idm.read_only_udm.metadata.product_log_id Valore tratto da oracle.logid.
specversion event.idm.read_only_udm.metadata.product_version Valore tratto da specversion.
data.request.action event.idm.read_only_udm.network.http.method Valore tratto da data.request.action.
data.identity.userAgent event.idm.read_only_udm.network.http.parsed_user_agent Valore estratto da data.identity.userAgent e analizzato.
data.response.status event.idm.read_only_udm.network.http.response_code Valore estratto da data.response.status e convertito in un numero intero.
data.protocol event.idm.read_only_udm.network.ip_protocol Il valore numerico di data.protocol viene convertito nella relativa rappresentazione di stringa (ad es. 6 diventa "TCP", 17 diventa "UDP").
data.bytesOut event.idm.read_only_udm.network.sent_bytes Valore estratto da data.bytesOut e convertito in un numero intero senza segno.
data.packets event.idm.read_only_udm.network.sent_packets Valore estratto da data.packets e convertito in un numero intero.
data.identity.consoleSessionId event.idm.read_only_udm.network.session_id Valore tratto da data.identity.consoleSessionId.
id event.idm.read_only_udm.principal.asset.product_object_id Valore tratto da id.
source event.idm.read_only_udm.principal.hostname Valore tratto da source.
data.sourceAddress, data.identity.ipAddress event.idm.read_only_udm.principal.ip I valori di data.sourceAddress e data.identity.ipAddress vengono uniti in questo campo.
data.sourcePort event.idm.read_only_udm.principal.port Valore estratto da data.sourcePort e convertito in un numero intero.
data.request.headers.X-Forwarded-For.0 event.idm.read_only_udm.principal.resource.attribute.labels Valore estratto da data.request.headers.X-Forwarded-For.0 e aggiunto come coppia chiave-valore in cui la chiave è "x forward".
oracle.compartmentid event.idm.read_only_udm.principal.resource.attribute.labels Valore estratto da oracle.compartmentid e aggiunto come coppia chiave-valore in cui la chiave è "compartmentid".
oracle.loggroupid event.idm.read_only_udm.principal.resource.attribute.labels Valore estratto da oracle.loggroupid e aggiunto come coppia chiave-valore in cui la chiave è "loggroupid".
oracle.vniccompartmentocid event.idm.read_only_udm.principal.resource.attribute.labels Valore estratto da oracle.vniccompartmentocid e aggiunto come coppia chiave-valore in cui la chiave è "vniccompartmentocid".
oracle.vnicocid event.idm.read_only_udm.principal.resource.attribute.labels Valore estratto da oracle.vnicocid e aggiunto come coppia chiave-valore in cui la chiave è "vnicocid".
oracle.vnicsubnetocid event.idm.read_only_udm.principal.resource.attribute.labels Valore estratto da oracle.vnicsubnetocid e aggiunto come coppia chiave-valore in cui la chiave è "vnicsubnetocid".
data.flowid event.idm.read_only_udm.principal.resource.product_object_id Valore tratto da data.flowid.
data.identity.credentials event.idm.read_only_udm.principal.user.attribute.labels Valore estratto da data.identity.credentials e aggiunto come coppia chiave-valore in cui la chiave è "credentials".
data.identity.principalName event.idm.read_only_udm.principal.user.user_display_name Valore tratto da data.identity.principalName.
data.identity.principalId event.idm.read_only_udm.principal.user.userid Valore tratto da data.identity.principalId.
data.action event.idm.read_only_udm.security_result.action Impostato su UNKNOWN_ACTION per impostazione predefinita. Se data.action è "REJECT", questo valore è impostato su BLOCK. Se data.action è "ACCEPT", questo campo è impostato su ALLOW.
data.endTime event.idm.read_only_udm.security_result.detection_fields Valore estratto da data.endTime e aggiunto come coppia chiave-valore in cui la chiave è "endTime".
data.startTime event.idm.read_only_udm.security_result.detection_fields Valore estratto da data.startTime e aggiunto come coppia chiave-valore in cui la chiave è "startTime".
data.status event.idm.read_only_udm.security_result.detection_fields Valore estratto da data.status e aggiunto come coppia chiave-valore in cui la chiave è "status".
data.version event.idm.read_only_udm.security_result.detection_fields Valore estratto da data.version e aggiunto come coppia chiave-valore in cui la chiave è "version".
data.destinationAddress event.idm.read_only_udm.target.ip Valore tratto da data.destinationAddress.
data.destinationPort event.idm.read_only_udm.target.port Valore estratto da data.destinationPort e convertito in un numero intero.
data.request.path event.idm.read_only_udm.target.url Valore tratto da data.request.path.
event.idm.read_only_udm.metadata.product_name Imposta "ORACLE CLOUD AUDIT".
event.idm.read_only_udm.metadata.vendor_name Imposta su "ORACLE".

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.