Mengumpulkan log Audit Infrastruktur Oracle Cloud
Dokumen ini menjelaskan cara menyerap log Audit Oracle Cloud Infrastructure ke Google Security Operations menggunakan Amazon S3.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps.
- Akun Infrastruktur Oracle Cloud dengan izin untuk membuat dan mengelola:
- Hub Konektor Layanan
- Oracle Functions
- Vault dan Secret
- Grup Dinamis dan Kebijakan IAM
- Logging
- Akun AWS dengan izin untuk membuat dan mengelola:
- Bucket S3
- Pengguna dan kebijakan IAM
Buat bucket Amazon S3
- Login ke AWS Management Console.
- Buka S3 > Create bucket.
- Berikan detail konfigurasi berikut:
- Nama bucket: Masukkan nama unik (misalnya,
oci-audit-logs-bucket). - Region AWS: Pilih region (misalnya,
us-east-1). - Pertahankan setelan default untuk opsi lainnya.
- Nama bucket: Masukkan nama unik (misalnya,
- Klik Create bucket.
- Simpan Nama dan Region bucket untuk digunakan nanti.
Membuat pengguna IAM di AWS untuk OCI Functions
- Login ke AWS Management Console.
- Buka IAM > Users > Add users.
- Berikan detail konfigurasi berikut:
- Nama pengguna: Masukkan nama pengguna (misalnya,
oci-functions-s3-user). - Jenis akses: Pilih Kunci akses - Akses terprogram.
- Nama pengguna: Masukkan nama pengguna (misalnya,
- Klik Berikutnya: Izin.
- Klik Attach existing policies directly.
- Telusuri dan pilih kebijakan AmazonS3FullAccess.
- Klik Berikutnya: Tanda.
- Klik Berikutnya: Tinjau.
- Klik Buat pengguna.
- Penting: Di halaman keberhasilan, salin dan simpan kredensial berikut:
- ID kunci akses
- Kunci akses rahasia
Menyimpan kredensial AWS di OCI Vault
Untuk menyimpan kredensial AWS secara aman, Anda harus menggunakan Oracle Cloud Infrastructure Vault, bukan meng-hardcode-nya dalam kode fungsi.
Membuat Vault dan Kunci Enkripsi Master
- Login ke Oracle Cloud Console.
- Buka Identitas dan Keamanan > Vault.
- Jika Anda tidak memiliki Vault, klik Buat Vault.
- Berikan detail konfigurasi berikut:
- Buat di Kompartemen: Pilih kompartemen Anda.
- Nama: Masukkan nama (misalnya,
oci-functions-vault).
- Klik Create Vault.
- Setelah Vault dibuat, klik nama Vault untuk membukanya.
- Di bagian Master Encryption Keys, klik Create Key.
- Berikan detail konfigurasi berikut:
- Mode Perlindungan: Software
- Nama: Masukkan nama (misalnya,
oci-functions-key). - Key Shape: Algorithm: AES
- Bentuk Kunci: Panjang: 256 bit
- Klik Buat Kunci.
Membuat secret untuk kredensial AWS
- Di Vault, di bagian Secrets, klik Create Secret.
- Berikan detail konfigurasi berikut untuk kunci akses AWS:
- Buat di Kompartemen: Pilih kompartemen Anda.
- Nama:
aws-access-key - Deskripsi: Kunci akses AWS untuk S3
- Encryption Key: Pilih Master Encryption Key yang Anda buat.
- Isi Jenis Rahasia: Teks Biasa
- Secret Contents: Tempelkan ID kunci akses AWS Anda.
- Klik Buat Secret.
- Salin dan simpan OCID rahasia ini (tampilannya seperti
ocid1.vaultsecret.oc1...). - Klik Create Secret lagi untuk membuat secret kedua.
- Berikan detail konfigurasi berikut untuk kunci rahasia AWS:
- Buat di Kompartemen: Pilih kompartemen Anda.
- Nama:
aws-secret-key - Deskripsi: Kunci rahasia AWS untuk S3
- Encryption Key: Pilih Master Encryption Key yang sama.
- Isi Jenis Rahasia: Teks Biasa
- Secret Contents: Tempelkan kunci akses rahasia AWS Anda.
- Klik Buat Secret.
- Salin dan simpan OCID rahasia ini.
Membuat Grup Dinamis untuk OCI Functions
- Login ke Oracle Cloud Console.
- Buka Identitas & Keamanan > Identitas > Grup Dinamis.
- Klik Buat Grup Dinamis.
Berikan detail konfigurasi berikut:
- Nama:
oci-functions-dynamic-group - Deskripsi: Grup dinamis untuk Fungsi OCI guna mengakses secret Vault
Aturan Pencocokan: Masukkan aturan berikut (ganti
<your_compartment_ocid>dengan OCID kompartemen Anda):ALL {resource.type = 'fnfunc', resource.compartment.id = '<your_compartment_ocid>'}
- Nama:
Klik Create.
Membuat Kebijakan IAM untuk akses Vault
- Login ke Oracle Cloud Console.
- Buka Identitas & Keamanan > Identitas > Kebijakan.
- Pilih kompartemen tempat Anda ingin membuat kebijakan.
- Klik Create Policy.
Berikan detail konfigurasi berikut:
- Nama:
oci-functions-vault-access-policy - Deskripsi: Mengizinkan OCI Functions membaca secret dari Vault
- Pembuat Kebijakan: Aktifkan/nonaktifkan Tampilkan editor manual.
Pernyataan kebijakan: Masukkan berikut ini (ganti
<compartment_name>dengan nama kompartemen Anda):allow dynamic-group oci-functions-dynamic-group to manage secret-family in compartment <compartment_name>
- Nama:
Klik Create.
Buat Aplikasi OCI Function
- Login ke Oracle Cloud Console.
- Buka Developer Services > Applications (di bagian Functions).
- Klik Create Application.
- Berikan detail konfigurasi berikut:
- Nama: Masukkan nama (misalnya,
oci-logs-to-s3-app). - VCN: Pilih VCN di kompartemen Anda.
- Subnet: Pilih satu atau beberapa subnet.
- Nama: Masukkan nama (misalnya,
- Klik Create.
Membuat dan men-deploy OCI Function
Menyiapkan Cloud Shell (direkomendasikan)
- Di Oracle Cloud Console, klik ikon Cloud Shell di pojok kanan atas.
- Tunggu hingga Cloud Shell diinisialisasi.
Membuat fungsi
Di Cloud Shell, buat direktori baru untuk fungsi Anda:
mkdir pushlogs cd pushlogsLakukan inisialisasi fungsi Python baru:
fn init --runtime pythonTindakan ini akan membuat tiga file:
func.py,func.yaml, danrequirements.txt.
Perbarui func.py
Ganti konten
func.pydengan kode berikut: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 )- Ganti
secret_key_iddengan OCID rahasia vault Anda yang sebenarnya untuk kunci rahasia AWS - Ganti
access_key_iddengan OCID rahasia vault Anda yang sebenarnya untuk kunci akses AWS - Ganti
s3_bucket_namedengan nama bucket S3 Anda yang sebenarnya
- Ganti
Perbarui func.yaml
Ganti konten func.yaml dengan:
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
Perbarui requirements.txt
Ganti konten
requirements.txtdengan:fdk>=0.1.56 boto3 oci
Men-deploy fungsi
Setel konteks Fn untuk menggunakan aplikasi Anda:
fn use context <region-context> fn update context oracle.compartment-id <compartment-ocid>Deploy fungsi tersebut:
fn -v deploy --app oci-logs-to-s3-appTunggu hingga deployment selesai. Anda akan melihat output yang menunjukkan bahwa fungsi berhasil di-deploy.
Verifikasi bahwa fungsi telah dibuat:
fn list functions oci-logs-to-s3-app
Buat Service Connector untuk mengirim log Audit OCI ke Function
- Login ke Oracle Cloud Console.
- Buka Analytics & AI > Messaging > Service Connector Hub.
- Pilih kompartemen tempat Anda ingin membuat konektor layanan.
- Klik Create Service Connector.
Mengonfigurasi detail Service Connector
- Berikan detail konfigurasi berikut:
Informasi Service Connector:
* Nama Konektor: Masukkan nama deskriptif (misalnya, audit-logs-to-s3-connector).
* Deskripsi: Deskripsi opsional (misalnya, "Teruskan log Audit OCI ke AWS S3").
* Resource Compartment: Pilih kompartemen.
Mengonfigurasi Sumber
- Di bagian Konfigurasi Sumber:
- Sumber: Pilih Logging.
- Kompartemen: Pilih kompartemen yang berisi log audit.
- Log Group: Pilih
_Audit(ini adalah grup log default untuk log audit). - Log: Klik + Log Lainnya.
- Pilih log audit untuk kompartemen Anda (misalnya,
_Audit_Include_Subcompartment).
Mengonfigurasi Target
- Di bagian Konfigurasi Target:
- Target: Pilih Fungsi.
- Compartment: Pilih kompartemen yang berisi aplikasi fungsi Anda.
- Function Application: Pilih
oci-logs-to-s3-app(aplikasi yang Anda buat sebelumnya). - Function: Pilih
pushlogs(fungsi yang Anda deploy).
Konfigurasi Kebijakan
Di bagian Konfigurasi Kebijakan:
- Tinjau pernyataan kebijakan IAM yang diperlukan yang ditampilkan.
- Klik Buat untuk membuat kebijakan yang diperlukan secara otomatis.
Klik Buat untuk membuat konektor layanan.
Tunggu hingga konektor layanan dibuat dan diaktifkan. Status akan berubah menjadi Aktif.
Memverifikasi bahwa log dikirim ke AWS S3
- Login ke Oracle Cloud Console.
- Lakukan beberapa tindakan yang menghasilkan log audit (misalnya, buat atau ubah resource).
- Tunggu 2-5 menit hingga log diproses.
- Login ke AWS Management Console.
- Buka S3 > Buckets.
- Klik bucket Anda (misalnya,
oci-audit-logs-bucket). - Verifikasi bahwa file log JSON muncul di bucket.
Mengonfigurasi bucket AWS S3 dan IAM untuk Google SecOps
Membuat pengguna IAM untuk Chronicle
- Login ke AWS Management Console.
- Buka IAM > Pengguna > Tambahkan pengguna.
- Berikan detail konfigurasi berikut:
- Nama pengguna: Masukkan
chronicle-s3-reader. - Jenis akses: Pilih Kunci akses - Akses terprogram.
- Nama pengguna: Masukkan
- Klik Berikutnya: Izin.
- Klik Attach existing policies directly.
- Telusuri dan pilih kebijakan AmazonS3ReadOnlyAccess.
- Klik Berikutnya: Tanda.
- Klik Berikutnya: Tinjau.
- Klik Buat pengguna.
- Klik Download CSV file untuk menyimpan Access Key ID dan Secret Access Key.
- Klik Close.
Opsional: Buat kebijakan IAM kustom untuk akses dengan hak istimewa terendah
Jika Anda ingin membatasi akses hanya ke bucket tertentu:
- Buka IAM > Policies > Create policy.
- Klik tab JSON.
Masukkan kebijakan berikut:
{ "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/*" ] } ] }- Ganti
oci-audit-logs-bucketdengan nama bucket Anda.
- Ganti
Klik Berikutnya: Tanda.
Klik Berikutnya: Tinjau.
Berikan detail konfigurasi berikut:
- Nama:
chronicle-s3-read-policy - Description: Akses hanya baca ke bucket log audit OCI
- Nama:
Klik Create policy.
Kembali ke IAM > Users, lalu pilih pengguna
chronicle-s3-reader.Klik Add permissions > Attach policies directly.
Telusuri dan pilih
chronicle-s3-read-policy.Hapus kebijakan AmazonS3ReadOnlyAccess jika Anda menambahkannya sebelumnya.
Klik Add permissions.
Mengonfigurasi feed di Google SecOps untuk menyerap log Audit Oracle Cloud
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Oracle Cloud Audit Logs). - Pilih Amazon S3 V2 sebagai Jenis sumber.
- Pilih Oracle Cloud Infrastructure sebagai Jenis log.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- URI S3: Masukkan URI bucket S3 (misalnya,
s3://oci-audit-logs-bucket/). - Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda:
- Tidak pernah: Direkomendasikan untuk pengujian dan penyiapan awal.
- Hapus file yang ditransfer: Menghapus file setelah penyerapan berhasil (gunakan untuk produksi guna mengelola biaya penyimpanan).
- Usia File Maksimum: Menyertakan file yang diubah dalam jumlah hari terakhir. Defaultnya adalah 180 hari.
- Access Key ID: Masukkan ID kunci akses dari pengguna IAM Chronicle yang Anda buat.
- Secret Access Key: Masukkan kunci akses rahasia dari pengguna IAM Chronicle yang Anda buat.
- Namespace aset: Namespace aset.
- Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.
- URI S3: Masukkan URI bucket S3 (misalnya,
- Klik Berikutnya.
- Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
data.request.headers.authorization.0 |
event.idm.read_only_udm.additional.fields |
Nilai diambil dari data.request.headers.authorization.0 dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "Otorisasi Header Permintaan". |
data.compartmentId |
event.idm.read_only_udm.additional.fields |
Nilai diambil dari data.compartmentId dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "compartmentId". |
data.compartmentName |
event.idm.read_only_udm.additional.fields |
Nilai diambil dari data.compartmentName dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "compartmentName". |
data.response.headers.Content-Length.0 |
event.idm.read_only_udm.additional.fields |
Nilai diambil dari data.response.headers.Content-Length.0 dan ditambahkan sebagai key-value pair dengan kuncinya adalah "Response Headers Content-Length". |
data.response.headers.Content-Type.0 |
event.idm.read_only_udm.additional.fields |
Nilai diambil dari data.response.headers.Content-Type.0 dan ditambahkan sebagai key-value pair dengan kuncinya adalah "Response Headers Content-Type". |
data.eventGroupingId |
event.idm.read_only_udm.additional.fields |
Nilai diambil dari data.eventGroupingId dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "eventGroupingId". |
oracle.tenantid, data.identity.tenantId |
event.idm.read_only_udm.additional.fields |
Nilai diambil dari oracle.tenantid jika ada, atau dari data.identity.tenantId jika tidak ada. ID tersebut ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "tenantId". |
data.message |
event.idm.read_only_udm.metadata.description |
Nilai diambil dari data.message. |
time |
event.idm.read_only_udm.metadata.event_timestamp |
Nilai diambil dari time dan diuraikan sebagai stempel waktu ISO8601. |
event.idm.read_only_udm.metadata.event_type |
Setel ke GENERIC_EVENT secara default. Ditetapkan ke NETWORK_CONNECTION jika ada principal (IP atau nama host) dan IP target. Disetel ke STATUS_UPDATE jika hanya ada pemegang kartu utama. |
|
time |
event.idm.read_only_udm.metadata.ingested_timestamp |
Jika oracle.ingestedtime tidak kosong, nilai diambil dari kolom time dan diuraikan sebagai stempel waktu ISO8601. |
oracle.tenantid |
event.idm.read_only_udm.metadata.product_deployment_id |
Nilai diambil dari oracle.tenantid. |
type |
event.idm.read_only_udm.metadata.product_event_type |
Nilai diambil dari type. |
oracle.logid |
event.idm.read_only_udm.metadata.product_log_id |
Nilai diambil dari oracle.logid. |
specversion |
event.idm.read_only_udm.metadata.product_version |
Nilai diambil dari specversion. |
data.request.action |
event.idm.read_only_udm.network.http.method |
Nilai diambil dari data.request.action. |
data.identity.userAgent |
event.idm.read_only_udm.network.http.parsed_user_agent |
Nilai diambil dari data.identity.userAgent dan diuraikan. |
data.response.status |
event.idm.read_only_udm.network.http.response_code |
Nilai diambil dari data.response.status dan dikonversi menjadi bilangan bulat. |
data.protocol |
event.idm.read_only_udm.network.ip_protocol |
Nilai numerik dari data.protocol dikonversi ke representasi string-nya (misalnya, 6 menjadi "TCP", 17 menjadi "UDP"). |
data.bytesOut |
event.idm.read_only_udm.network.sent_bytes |
Nilai diambil dari data.bytesOut dan dikonversi menjadi bilangan bulat yang tidak bertanda tangan. |
data.packets |
event.idm.read_only_udm.network.sent_packets |
Nilai diambil dari data.packets dan dikonversi menjadi bilangan bulat. |
data.identity.consoleSessionId |
event.idm.read_only_udm.network.session_id |
Nilai diambil dari data.identity.consoleSessionId. |
id |
event.idm.read_only_udm.principal.asset.product_object_id |
Nilai diambil dari id. |
source |
event.idm.read_only_udm.principal.hostname |
Nilai diambil dari source. |
data.sourceAddress, data.identity.ipAddress |
event.idm.read_only_udm.principal.ip |
Nilai dari data.sourceAddress dan data.identity.ipAddress digabungkan ke dalam kolom ini. |
data.sourcePort |
event.idm.read_only_udm.principal.port |
Nilai diambil dari data.sourcePort dan dikonversi menjadi bilangan bulat. |
data.request.headers.X-Forwarded-For.0 |
event.idm.read_only_udm.principal.resource.attribute.labels |
Nilai diambil dari data.request.headers.X-Forwarded-For.0 dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "x maju". |
oracle.compartmentid |
event.idm.read_only_udm.principal.resource.attribute.labels |
Nilai diambil dari oracle.compartmentid dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "compartmentid". |
oracle.loggroupid |
event.idm.read_only_udm.principal.resource.attribute.labels |
Nilai diambil dari oracle.loggroupid dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "loggroupid". |
oracle.vniccompartmentocid |
event.idm.read_only_udm.principal.resource.attribute.labels |
Nilai diambil dari oracle.vniccompartmentocid dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "vniccompartmentocid". |
oracle.vnicocid |
event.idm.read_only_udm.principal.resource.attribute.labels |
Nilai diambil dari oracle.vnicocid dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "vnicocid". |
oracle.vnicsubnetocid |
event.idm.read_only_udm.principal.resource.attribute.labels |
Nilai diambil dari oracle.vnicsubnetocid dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "vnicsubnetocid". |
data.flowid |
event.idm.read_only_udm.principal.resource.product_object_id |
Nilai diambil dari data.flowid. |
data.identity.credentials |
event.idm.read_only_udm.principal.user.attribute.labels |
Nilai diambil dari data.identity.credentials dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "credentials". |
data.identity.principalName |
event.idm.read_only_udm.principal.user.user_display_name |
Nilai diambil dari data.identity.principalName. |
data.identity.principalId |
event.idm.read_only_udm.principal.user.userid |
Nilai diambil dari data.identity.principalId. |
data.action |
event.idm.read_only_udm.security_result.action |
Setel ke UNKNOWN_ACTION secara default. Jika data.action adalah "REJECT", maka akan ditetapkan ke BLOCK. Jika data.action adalah "ACCEPT", nilai ini ditetapkan ke ALLOW. |
data.endTime |
event.idm.read_only_udm.security_result.detection_fields |
Nilai diambil dari data.endTime dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "endTime". |
data.startTime |
event.idm.read_only_udm.security_result.detection_fields |
Nilai diambil dari data.startTime dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "startTime". |
data.status |
event.idm.read_only_udm.security_result.detection_fields |
Nilai diambil dari data.status dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "status". |
data.version |
event.idm.read_only_udm.security_result.detection_fields |
Nilai diambil dari data.version dan ditambahkan sebagai pasangan nilai kunci dengan kuncinya adalah "versi". |
data.destinationAddress |
event.idm.read_only_udm.target.ip |
Nilai diambil dari data.destinationAddress. |
data.destinationPort |
event.idm.read_only_udm.target.port |
Nilai diambil dari data.destinationPort dan dikonversi menjadi bilangan bulat. |
data.request.path |
event.idm.read_only_udm.target.url |
Nilai diambil dari data.request.path. |
event.idm.read_only_udm.metadata.product_name |
Tetapkan ke "ORACLE CLOUD AUDIT". | |
event.idm.read_only_udm.metadata.vendor_name |
Tetapkan ke "ORACLE". |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.