Aller au contenu principal

Journaux d'audit Google Cloud

info

Aperçu

Lakewatch est en aperçu privé. Pour demander l'accès, contactez l'équipe de votre compte Databricks.

Présentation​

Google Cloud Audit Logs enregistre l’activité administrative, l’accès aux données et les événements système dans l’ensemble de vos projets, dossiers et organisations Google Cloud. Lakewatch ingère les logs d’audit de Google Cloud à partir du stockage cloud à l’aide d’Auto Loader et schématise les données avec le parser gcp_audit_log intégré. Ceci est une source de stockage cloud, pas un connecteur d’API.

Intégrer les Logs d'audit Google Cloud​

Pour ingérer les journaux d’audit Google Cloud, créez une source de données cloud-storage pour eux et attachez le parser gcp_audit_log intégré afin que les événements soient écrits dans une table analysée schématisée. Pour les prérequis, l’accès à Unity Catalog et les étapes complètes de configuration de la source de données, voir Stockage cloud.

Schéma et observables analysés​

L’analyseur gcp_audit_log intégré schématise les journaux d’audit Google Cloud dans une table analysée. Chaque table analysée contient également les colonnes gérées par Lakewatch :

  • lw_id: chaîne non nulle que Lakewatch utilise comme clé primaire, prenant en charge la déduplication au niveau des lectures incrémentielles.
  • time: Un timestamp d’événement non nul attribué par l’analyseur.
  • lw_meta: Métadonnées de traitement Lakewatch standard.
  • lw_observables: Valeurs extraites des champs marqués comme observables de sécurité dans l’analyseur.

Pour plus d’information, consultez la Référence du parser.

Schéma de table analysé

L’analyseur gcp_audit_log écrit les colonnes suivantes (générées à partir de la définition de l’analyseur) :

Colonne

Type de données

logName

STRING

severity

STRING

insertId

STRING

resource

STRUCT<type: STRING, labels: VARIANT>

time

TIMESTAMP

receiveTimestamp

TIMESTAMP

labels

VARIANT

operation

STRUCT<id: STRING, producer: STRING, first: BOOLEAN, last: BOOLEAN>

trace

STRING

httpRequest

STRUCT<requestMethod: STRING, requestURL: STRING, requestSize: BIGINT, status: SMALLINT, responseSize: BIGINT, userAgent: STRING, remoteIP: STRING, serverIP: STRING, referer: STRING, latency: STRING, cacheLookup: BOOLEAN, cacheHit: BOOLEAN, cacheValidatedWithOriginServer: BOOLEAN, cacheFillBytes: BIGINT, protocol: STRING>

spanId

STRING

traceSampled

BOOLEAN

sourceLocation

STRUCT<file: STRING, line: BIGINT, function: STRING>

protoPayload

STRUCT<@type: STRING, serviceName: STRING, methodName: STRING, resourceName: STRING, numResponseItems: BIGINT, status: STRUCT<code: INT, message: STRING, details: VARIANT>, authenticationInfo: STRUCT<principalSubject: STRING, serviceAccountKeyName: STRING, principalEmail: STRING, authoritySelector: STRING, thirdPartyPrincipal: VARIANT, serviceAccountDelegationInfo: ARRAY<STRUCT<firstPartyPrincipal: STRUCT<principalEmail: STRING, serviceMetadata: VARIANT>, thirdPartyPrincipal: STRUCT<thirdPartyClaims: VARIANT>, principalSubject: STRING>>>, authorizationInfo: ARRAY<STRUCT<resource: STRING, permission: STRING, granted: BOOLEAN, resourceAttributes: STRUCT<service: STRING, name: STRING, type: STRING, labels: STRING, uid: STRING>>>, requestMetadata: STRUCT<callerIP: STRING, callerSuppliedUserAgent: STRING, callerNetwork: STRING, requestAttributes: VARIANT, destinationAttributes: VARIANT>, resourceLocation: STRUCT<currentLocations: ARRAY<STRING>, originalLocations: ARRAY<STRING>>, request: VARIANT, response: VARIANT, metadata: VARIANT, serviceData: VARIANT>

Colonne

Type de données

logName

STRING

severity

STRING

insertId

STRING

resource

STRUCT<type: STRING, labels: VARIANT>

time

TIMESTAMP

receiveTimestamp

TIMESTAMP

labels

VARIANT

operation

STRUCT<id: STRING, producer: STRING, first: BOOLEAN, last: BOOLEAN>

trace

STRING

httpRequest

STRUCT<requestMethod: STRING, requestURL: STRING, requestSize: BIGINT, status: SMALLINT, responseSize: BIGINT, userAgent: STRING, remoteIP: STRING, serverIP: STRING, referer: STRING, latency: STRING, cacheLookup: BOOLEAN, cacheHit: BOOLEAN, cacheValidatedWithOriginServer: BOOLEAN, cacheFillBytes: BIGINT, protocol: STRING>

spanId

STRING

traceSampled

BOOLEAN

sourceLocation

STRUCT<file: STRING, line: BIGINT, function: STRING>

protoPayload

STRUCT<@type: STRING, serviceName: STRING, methodName: STRING, resourceName: STRING, numResponseItems: BIGINT, status: STRUCT<code: INT, message: STRING, details: VARIANT>, authenticationInfo: STRUCT<principalSubject: STRING, serviceAccountKeyName: STRING, principalEmail: STRING, authoritySelector: STRING, thirdPartyPrincipal: VARIANT, serviceAccountDelegationInfo: ARRAY<STRUCT<firstPartyPrincipal: STRUCT<principalEmail: STRING, serviceMetadata: VARIANT>, thirdPartyPrincipal: STRUCT<thirdPartyClaims: VARIANT>, principalSubject: STRING>>>, authorizationInfo: ARRAY<STRUCT<resource: STRING, permission: STRING, granted: BOOLEAN, resourceAttributes: STRUCT<service: STRING, name: STRING, type: STRING, labels: STRING, uid: STRING>>>, requestMetadata: STRUCT<callerIP: STRING, callerSuppliedUserAgent: STRING, callerNetwork: STRING, requestAttributes: VARIANT, destinationAttributes: VARIANT>, resourceLocation: STRUCT<currentLocations: ARRAY<STRING>, originalLocations: ARRAY<STRING>>, request: VARIANT, response: VARIANT, metadata: VARIANT, serviceData: VARIANT>

Observables de l’analyseur

L’analyseur extrait les champs suivants dans lw_observables (généré à partir de la définition de l’analyseur) :

Champ

Observable

httpRequest.requestURL

url

httpRequest.remoteIP

ip

httpRequest.serverIP

ip

httpRequest.referer

url

protoPayload.authenticationInfo.principalEmail

email

protoPayload.authenticationInfo.serviceAccountDelegationInfo[].firstPartyPrincipal.principalEmail

email

protoPayload.requestMetadata.callerIP

ip

Champ

Observable

httpRequest.requestURL

url

httpRequest.remoteIP

ip

httpRequest.serverIP

ip

httpRequest.referer

url

protoPayload.authenticationInfo.principalEmail

email

protoPayload.authenticationInfo.serviceAccountDelegationInfo[].firstPartyPrincipal.principalEmail

email

protoPayload.requestMetadata.callerIP

ip

Les VARIANT champs suivants sont analysés à la recherche d’observables en faisant correspondre les noms de clés imbriquées. Le tableau répertorie les types d'observables extraits de chaque :

Champ

Types d’observables analysés

protoPayload.request

domain, email, ip, username

protoPayload.response

domain, email, ip, username

protoPayload.metadata

domain, email, ip, username

Champ

Types d’observables analysés

protoPayload.request

domain, email, ip, username

protoPayload.response

domain, email, ip, username

protoPayload.metadata

domain, email, ip, username