Mengumpulkan log audit Azure DevOps
Ringkasan
Parser ini menangani log audit Azure DevOps dalam format JSON. Fungsi ini mengekstrak kolom dari struktur JSON bertingkat dan tingkat atas, serta memetakan kolom tersebut ke UDM. Logika kondisional berdasarkan nilai kolom tertentu mengategorikan peristiwa dan memperkaya output dengan informasi keamanan yang relevan. Parser juga menangani pesan berformat non-JSON dengan mencoba mengekstrak payload JSON menggunakan pola grok.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki Organisasi Azure DevOps yang aktif.
- Pastikan Anda memiliki akses dengan hak istimewa ke Organisasi Azure Devops dan Azure.
Mengonfigurasi feed di Google SecOps untuk menyerap log Azure Devops
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Feed name, masukkan nama untuk feed (misalnya, Azure Devops Logs).
- Pilih Webhook sebagai Jenis sumber.
- Pilih Azure Devops sebagai Log type.
- Klik Berikutnya.
- Opsional: tentukan nilai untuk parameter input berikut:
- Pemisah pemisahan: pembatas yang digunakan untuk memisahkan baris log, seperti
\n
. - Namespace aset: namespace aset.
- Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Pemisah pemisahan: pembatas yang digunakan untuk memisahkan baris log, seperti
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.
- Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
- Salin dan simpan kunci rahasia. Anda tidak dapat melihat kunci rahasia ini lagi. Jika perlu, Anda dapat membuat ulang kunci rahasia baru, tetapi tindakan ini akan membuat kunci rahasia sebelumnya tidak berlaku lagi.
- Di tab Detail, salin URL endpoint feed dari kolom Endpoint Information. Anda perlu menentukan URL endpoint ini di aplikasi klien.
- Klik Done.
Membuat kunci API untuk feed webhook
Buka Konsol Google Cloud > Kredensial.
Klik Create credentials, lalu pilih API key.
Batasi akses kunci API ke Google Security Operations API.
Menentukan URL endpoint
- Di aplikasi klien, tentukan URL endpoint HTTPS yang diberikan di feed webhook.
Aktifkan autentikasi dengan menentukan kunci API dan kunci secret sebagai bagian dari header kustom dalam format berikut:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Rekomendasi: Tentukan kunci API sebagai header, bukan menentukannya di URL. Jika klien webhook Anda tidak mendukung header kustom, Anda dapat menentukan kunci API dan kunci rahasia menggunakan parameter kueri dalam format berikut:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Ganti kode berikut:
ENDPOINT_URL
: URL endpoint feed.API_KEY
: kunci API untuk mengautentikasi ke Google Security Operations.SECRET
: kunci rahasia yang Anda buat untuk mengautentikasi feed.
Mengonfigurasi fitur Auditing di Azure Devops
- Login ke organisasi Anda (
https://dev.azure.com/{yourorganization}
). - Pilih ikon roda gigi untuk Setelan organisasi.
- Pilih Kebijakan di bagian Keamanan.
- Alihkan tombol Log Audit Events ke ON.
Mengonfigurasi Topik Event Grid di Azure
- Login ke Portal Azure.
- Telusuri dan akses Event Grid.
- Temukan Topik di bagian Peristiwa kustom.
- Klik + Buat.
- Pilih Langganan dan Grup Resource. Berikan nama (Misalnya, DevopsAuditLog) dan pilih region. Klik Tinjau dan buat.
- Akses Topic baru dan salin Topic Endpoint URL.
- Buka Setelan > Kunci Akses dan salin Kunci 1.
Mengonfigurasi Aliran Log Azure Devops ke Event Grid
- Login ke organisasi Anda (
https://dev.azure.com/{yourorganization}
). - Pilih ikon roda gigi untuk Setelan organisasi.
- Pilih Auditing.
- Buka tab Streaming, lalu pilih Streaming baru > Event Grid.
- Masukkan endpoint topik dan kunci akses yang dibuat di Mengonfigurasi Topik Event Grid di Azure.
Mengonfigurasi Webhook di Azure DevOps untuk Google SecOps
- Di Portal Azure, telusuri dan akses Event Grid.
- Pilih Topik yang dibuat sebelumnya.
- Buka Entity > Event Subscription.
- Klik + Langganan Peristiwa.
- Berikan nama deskriptif (misalnya Integrasi Google SecOps).
- Pilih Web Hook, lalu klik Configure an endpoint.
- Konfigurasikan endpoint:
- Endpoint pelanggan: Masukkan URL endpoint Google SecOps API.
- Tambahkan
?key=<API_KEY>&secret=<SECRET_KEY>
ke URL Payload. - Tetapkan header Content-Type ke application/json.
- Klik Create.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
ActivityId |
metadata.product_log_id |
Dipetakan langsung dari kolom Id dalam log mentah jika kolom records tidak ada, atau dari kolom ActivityId dalam objek data jika records ada. |
ActionId |
metadata.product_event_type |
Dipetakan langsung dari kolom ActionId dalam objek data . |
ActorCUID |
additional.fields |
Disertakan sebagai kolom tambahan dengan kunci "CUID Aktor". |
ActorDisplayName |
principal.user.user_display_name |
Dipetakan langsung dari kolom ActorDisplayName jika bukan "Azure DevOps Service". Jika "Azure DevOps Service", layanan tersebut akan ditambahkan sebagai label ke principal.resource.attribute.labels . |
ActorUPN |
principal.user.email_addresses |
Dipetakan langsung dari kolom ActorUPN jika cocok dengan pola alamat email. |
ActorUserId |
principal.user.userid |
Dipetakan langsung dari kolom ActorUserId . |
Area |
target.application |
Digunakan untuk membuat kolom target.application dengan menambahkan "DevOps " di awal nilai Area . |
AuthenticationMechanism |
extensions.auth.auth_details , security_result.rule_id |
Diurai untuk mengekstrak detail autentikasi dan ID aturan. Detail autentikasi dipetakan ke extensions.auth.auth_details . ID aturan yang diekstrak dipetakan ke security_result.rule_id . |
CategoryDisplayName |
security_result.action_details |
Dipetakan langsung ke security_result.action_details . |
City |
principal.location.city |
Dipetakan langsung dari kolom City . |
Conditions |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Conditions". |
Country |
principal.location.country_or_region |
Dipetakan langsung dari kolom Country . |
Data.* |
Berbagai | Kolom dalam objek Data dipetakan ke kolom UDM yang berbeda berdasarkan nama dan konteksnya. Lihat contoh spesifik di bawah. |
Data.AccessLevel |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "AccessLevel". |
Data.AgentId |
target.resource.product_object_id |
Dipetakan ke target.resource.product_object_id jika PipelineId dan AuthorizationId tidak ada. |
Data.AgentName |
target.resource.name |
Dipetakan ke target.resource.name jika PipelineName , NamespaceName , dan DisplayName tidak ada. |
Data.AuthorizationId |
target.resource.product_object_id |
Dipetakan ke target.resource.product_object_id jika PipelineId tidak ada. |
Data.CallerProcedure |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "CallerProcedure". |
Data.CheckSuiteId |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "CheckSuiteId". |
Data.CheckSuiteStatus |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "CheckSuiteStatus". |
Data.ConnectionId |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "ConnectionId". |
Data.ConnectionName |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "ConnectionName". |
Data.ConnectionType |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "ConnectionType". |
Data.DefinitionId |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "DefinitionId". |
Data.DeploymentResult |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "DeploymentResult". |
Data.DisplayName |
target.resource.name |
Dipetakan ke target.resource.name jika PipelineName dan NamespaceName tidak ada. |
Data.EndpointIdList |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "EndpointIdList". |
Data.EnvironmentName |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "EnvironmentName". |
Data.Filter.continuationToken |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "continuation_token". |
Data.Filter.endTime |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "filter_end_time". |
Data.Filter.startTime |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "filter_start_time". |
Data.FinishTime |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "FinishTime". |
Data.GroupId |
target.group.product_object_id |
Dipetakan langsung ke target.group.product_object_id jika Data.Updates.0.GroupId tidak ada. |
Data.GroupName |
target.group.group_display_name |
Dipetakan langsung ke target.group.group_display_name . |
Data.JobName |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "JobName". |
Data.MemberId |
target.user.userid |
Dipetakan langsung ke target.user.userid jika Data.Updates.0.MemberId tidak ada. |
Data.MemberDisplayName |
target.user.user_display_name |
Dipetakan langsung ke target.user.user_display_name . |
Data.NamespaceId |
target.resource.product_object_id |
Dipetakan ke target.resource.product_object_id jika PipelineId , AuthorizationId , dan AgentId tidak ada. |
Data.NamespaceName |
target.resource.name |
Dipetakan ke target.resource.name jika PipelineName tidak ada. |
Data.ownerDetails |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "OwnerDetails". |
Data.OwnerId |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "OwnerId". |
Data.PipelineId |
target.resource.product_object_id |
Dipetakan langsung ke target.resource.product_object_id . |
Data.PipelineName |
target.resource.name |
Dipetakan langsung ke target.resource.name . |
Data.PipelineRevision |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "PipelineRevision". |
Data.PipelineScope |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "PipelineScope". |
Data.PlanType |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "PlanType". |
Data.PreviousAccessLevel |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "PreviousAccessLevel". |
Data.PublisherName |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "PublisherName". |
Data.Reason |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Alasan". |
Data.ReleaseId |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "ReleaseId". |
Data.ReleaseName |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "ReleaseName". |
Data.RequesterId |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "RequesterId". |
Data.RetentionLeaseId |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "RetentionLeaseId". |
Data.RetentionOwnerId |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "RetentionOwnerId". |
Data.RunName |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "RunName". |
Data.Scopes |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "Cakupan". |
Data.StageName |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "StageName". |
Data.StartTime |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "StartTime". |
Data.TargetUser |
target.user.userid |
Dipetakan langsung ke target.user.userid . |
Data.Timestamp |
metadata.event_timestamp |
Diurai dan dipetakan ke metadata.event_timestamp . |
Data.TokenType |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "TokenType". |
Data.Updates.0.GroupId |
target.group.product_object_id |
Dipetakan langsung ke target.group.product_object_id . |
Data.Updates.0.MemberId |
target.user.userid |
Dipetakan langsung ke target.user.userid . |
Data.ValidFrom |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "ValidFrom". |
Data.ValidTo |
target.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "ValidTo". |
DewPoint |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "DewPoint". |
Details |
metadata.description |
Dipetakan langsung ke metadata.description . |
Humidity |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Humidity". |
Icon |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Ikon". |
Id |
metadata.product_log_id |
Dipetakan langsung ke metadata.product_log_id . |
IpAddress |
principal.ip |
Dipetakan langsung ke principal.ip . |
MoonPhase |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "MoonPhase". |
Moonrise |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Moonrise". |
Moonset |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Moonset". |
OperationName |
metadata.product_event_type |
Dipetakan langsung ke metadata.product_event_type . |
Precipitation |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Precipitation". |
Pressure |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Tekanan". |
ProjectId |
target.resource_ancestors.product_object_id |
Digunakan untuk mengisi kolom product_object_id dalam target.resource_ancestors jika ancestor berjenis CLOUD_PROJECT . |
ProjectName |
target.resource_ancestors.name , target.resource.attribute.labels |
Digunakan untuk mengisi kolom name dalam target.resource_ancestors jika ancestor berjenis CLOUD_PROJECT . Juga ditambahkan sebagai label ke target.resource.attribute.labels dengan kunci "ProjectName". |
RoleLocation |
target.location.name |
Dipetakan langsung ke target.location.name . |
ScopeDisplayName |
target.resource_ancestors.name |
Digunakan untuk mengisi kolom name dalam target.resource_ancestors jika ancestor berjenis CLOUD_ORGANIZATION . |
ScopeId |
target.resource_ancestors.product_object_id |
Digunakan untuk mengisi kolom product_object_id dalam target.resource_ancestors jika ancestor berjenis CLOUD_ORGANIZATION . |
ScopeType |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "ScopeType". |
Sunrise |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Sunrise". |
Sunset |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Sunset". |
Temperature |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Suhu". |
TenantId |
metadata.product_deployment_id , additional.fields |
Dipetakan langsung ke metadata.product_deployment_id . Juga ditambahkan sebagai kolom tambahan dengan kunci "TenantId". |
TimeGenerated |
metadata.event_timestamp |
Diurai dan dipetakan ke metadata.event_timestamp . |
UserAgent |
network.http.user_agent , network.http.parsed_user_agent |
Dipetakan langsung ke network.http.user_agent . Juga diuraikan dan dipetakan ke network.http.parsed_user_agent . |
UVIndex |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "UVIndex". |
Visibility |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "Visibilitas". |
WindDirection |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "WindDirection". |
WindSpeed |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "WindSpeed". |
_Internal_WorkspaceResourceId |
additional.fields |
Ditambahkan sebagai kolom tambahan dengan kunci "workspace_resource_id". |
T/A | metadata.event_type |
Ditentukan oleh logika berdasarkan OperationName dan kolom lainnya. Defaultnya adalah "GENERIC_EVENT" jika tidak ada jenis peristiwa tertentu yang cocok. Nilai yang mungkin mencakup "STATUS_SHUTDOWN", "RESOURCE_CREATION", "STATUS_UPDATE", "USER_RESOURCE_DELETION", "RESOURCE_READ", "RESOURCE_WRITTEN", "RESOURCE_DELETION", dan "GROUP_MODIFICATION". |
T/A | metadata.vendor_name |
Tetapkan ke "Microsoft". |
T/A | metadata.product_name |
Tetapkan ke "Azure DevOps". |
T/A | metadata.log_type |
Tetapkan ke "AZURE_DEVOPS". |
T/A | principal.user.account_type |
Tetapkan ke "SERVICE_ACCOUNT_TYPE" jika AuthenticationMechanism berisi "ServicePrincipal", jika tidak, tetapkan ke "CLOUD_ACCOUNT_TYPE". |
T/A | target.asset.attribute.cloud.environment |
Tetapkan ke MICROSOFT_AZURE . |
T/A | security_result.action |
Tetapkan ke "ALLOW" untuk operasi yang berhasil (Berhasil, Dibuat, Diubah, dieksekusi, diperbarui, dihapus) dan "BLOCK" untuk operasi yang gagal (Gagal, Waktu Habis). |
T/A | extensions.auth.mechanism |
Tetapkan ke "USERNAME_PASSWORD" jika summary adalah "UserAuthToken". |
T/A | target.resource.resource_type |
Tetapkan ke "SETTING" jika pipeline_id ada, "CREDENTIAL" jika authorization_id ada, "DEVICE" jika agent_id ada, atau "DATABASE" jika namespace_id ada. Jika tidak, nilai ini akan ditetapkan ke "STORAGE_BUCKET" dalam beberapa kasus berdasarkan operationName . |
T/A | target.resource.resource_subtype |
Tetapkan ke "Pipeline" jika pipeline_id ada, "Token" jika authorization_id ada, "Agen" jika agent_id ada, atau "Namespace" jika namespace_id ada. |
Perubahan
2024-01-19
- Mengubah nilai "metadata.eventtype" dari "SERVICE*" menjadi "USER_RESOURCE_UPDATE_CONTENT" jika data pengguna utama dan data resource target ada.
- Mengubah pemetaan untuk "IpAddress" dari "target.ip" menjadi "principal.ip".
- Mengubah pemetaan untuk "ActorCUID" dari "principal.user.product_object_id" menjadi "additional.fields".
- Mengubah pemetaan untuk "ScopeId" dari "principal.asset_id" menjadi "resource_ancestors.product_object_id".
- Mengubah pemetaan untuk "_Internal_WorkspaceResourceId" dari "target.resource.product_object_id" menjadi "additional.fields".
- Mengubah pemetaan untuk "ProjectId" dari "target.resource.attribute.labels" menjadi "target.resource_ancestors.product_object_id".
- Mengubah pemetaan untuk "AuthenticationMechanism" dari "security_result.summary" menjadi "extensions.auth.auth_details".
- Mengubah pemetaan untuk "CorrelationId" dari "network.session_id" menjadi "additional.fields".
- Mengubah pemetaan untuk "ScopeDisplayName" dari "additional.fields" menjadi "target.resource_ancestors.name".
- Mengubah pemetaan untuk "PipelineId" dari "additional.fields" menjadi "target.resource.product_object_id".
- Mengubah pemetaan untuk "PipelineName" dari "additional.fields" menjadi "target.resource.name".
- Mengubah pemetaan untuk "PipelineScope" dari "additional.fields" menjadi "target.resource.attribute.labels".
- Mengubah pemetaan untuk "PipelineRevision" dari "additional.fields" menjadi "target.resource.attribute.labels".
- Mengubah pemetaan untuk "ProjectId" dari "target.resource.resource.attribute.labels" menjadi "target.resource_ancestors.product_object_id".
- Mengubah pemetaan untuk "Area" dari "additional.fields" menjadi "target.application".
- Memetakan nilai "MICROSOFT_AZURE" ke "target.asset.attribute.cloud.environment".
- Jika "AuthenticationMechanism" memiliki nilai "ServicePrincipal", tetapkan "SERVICE_ACCOUNT_TYPE" ke "principal.user.account_type", atau tetapkan "CLOUD_ACCOUNT_TYPE" ke "principal.user.account_type".
- Memetakan "Kategori" ke "security_result.action_details".
- Memetakan "ALLOW" atau "BLOCK" ke "security_result.action" berdasarkan kolom "Details".
- Memetakan "ActivityId" ke "additional.fields".
2024-01-09
- Menambahkan Grok dan gsub untuk mengurai log JSON yang tidak diuraikan.
- Memetakan "rec.correlationId", "properties.currentHealthStatus", "properties.previousHealthStatus", "properties.type", "properties.cause", "properties.title", "properties.details", "properties.recommendationType", "properties.recommendationCategory", "properties.recommendationImpact", "properties.recommendationName", "properties.recommendationResourceLink", "properties.recommendationSchemaVersion", "properties.eventCategory", "properties.hierarchy", "properties.message", "properties.entity", "identity.claims.xms.tcdt", "identity.claims.aio", "identity.claims.appid", "identity.claims.appidacr", "identity.claims.aud", "identity.claims.exp", "identity.claims.iat", "identity.claims.idtyp", "identity.claims.iss", "identity.claims.uti", "identity.claims.rh", "identity.claims.ver", "identity.claims.nbf", "identity.authorization.evidence.roleAssignmentId", "identity.authorization.evidence.principalType", "identity.authorization.evidence.principalId", "identity.authorization.evidence.roleAssignmentScope", "identity.authorization.evidence.roleDefinitionId" ke "security_result.detection_fields".
- Memetakan "resultSignature.label", "rec.resultType", "Visibility", "Humidity", "Precipitation","MoonPhase", "Moonrise", "Moonset", "Pressure", "WindSpeed", "UVIndex", "DewPoint", WindDirection", "Sunrise", "Sunset", "Temperature", "Icon", "Conditions" ke "additional.fields".
- Memetakan "level" ke "security_result.severity".
- Memetakan "appname" ke "target.application".
- Memetakan "category.details" ke "security.result.category.details".
- Memetakan "rec.resourceId" ke "target.resource.id".
- Memetakan "res.extensionResourceName" ke "principal.hostname".
2023-11-23
- Menambahkan dukungan untuk pola log JSON baru.
- Memetakan "data.TimeGenerated" ke "metadata.event_timestamp".
- Jika "_Internal_WorkspaceResourceId" tidak ada, maka "topic" akan dipetakan ke "target.resource.product_object_id".
- Memetakan "data.Data.ConnectionId" ke "additional.fields".
- Memetakan "data.Data.ownerDetails" ke "additional.fields".
- Memetakan "data.Data.DeploymentResult" ke "additional.fields".
- Memetakan "data.Data.EnvironmentName" ke "additional.fields".
- Memetakan "data.Data.JobName" ke "additional.fields".
- Memetakan "data.Data.StageName" ke "additional.fields".
- Memetakan "data.Data.RunName" ke "additional.fields".
- Memetakan "data.Data.RetentionLeaseId" ke "additional.fields".
- Memetakan "data.Data.CheckSuiteId" ke "additional.fields".
- Memetakan "data.Data.CheckSuiteStatus" ke "additional.fields".
- Memetakan "data.Data.ApprovalRequest" ke "additional.fields".
- Memetakan "data.Data.ApprovalType" ke "additional.fields".
- Memetakan "subject" ke "additional.fields".
- Memetakan "data.ActorUserId" ke "principal.user.userid".
- Memetakan "data.ActorDisplayName" ke "principal.user.user_display_name".
- Memetakan "data.ActorCUID" ke "principal.user.product_object_id".
- Memetakan "data.ActorUPN" ke "principal.user.email_addresses".
- Memetakan "data.ScopeId" ke "principal.asset_id".
- Memetakan "data.CorrelationId" ke "network.session_id".
- Memetakan "data.UserAgent" ke "network.http.user_agent".
- Memetakan "data.ProjectId" ke "target.resource.attribute.labels".
- Memetakan "data.ScopeType" ke "additional.fields".
- Memetakan "data.ProjectName" ke "target.resource.attribute.labels".
- Memetakan "data.Details" ke "metadata.description".
- Memetakan "data.CategoryDisplayName" ke "security_result.rule_name".
- Memetakan "data.Area" ke "additional.fields".
- Memetakan "data.Id" ke "metadata.product_log_id".
- Memetakan "data.ActionId" ke "metadata.product_event_type".
- Memetakan "data.Timestamp" ke "metadata.event_timestamp".
2022-06-28
- Parser yang baru dibuat