Pular para o conteúdo principal

Logs de auditoria do Google Cloud

info

Visualização

O Lakewatch está na Pré-visualização privada. Para solicitar acesso, entre em contato com a equipe da sua conta da Databricks.

Visão geral​

O Google Cloud Audit Logs registra atividade administrativa, acesso a dados e eventos do sistema em seus projetos, pastas e organizações do Google Cloud. O Lakewatch ingere Logs de auditoria do Google Cloud do armazenamento em cloud usando o Auto Loader e esquematiza os dados com o analisador gcp_audit_log integrada. Esta é uma fonte de armazenamento em cloud, não um conector de API.

Integrar logs de auditoria do Google Cloud​

Para ingerir logs de auditoria do Google Cloud, crie uma fonte de dados de armazenamento em cloud para ele e anexe o analisador gcp_audit_log integrado para que os eventos sejam gravados em uma tabela analisada esquematizada. Para pré-requisitos, acesso ao Unity Catalog e os passos completos de configuração da fonte de dados, consulte Armazenamento na cloud.

Esquema analisado e observáveis​

O analisador gcp_audit_log integrado esquematiza os logs de auditoria do Google Cloud em uma tabela analisada. Cada tabela analisada também contém as colunas gerenciadas pelo Lakewatch:

  • lw_id: Uma string não nula que o Lakewatch usa como key primária, permitindo a desduplicação entre leituras incrementais.
  • time: Um timestamp de evento não nulo atribuído pelo analisador.
  • lw_meta: Metadados de processamento padrão do Lakewatch.
  • lw_observables: Valores extraídos de campos marcados como observáveis de segurança no analisador.

Para obter mais informações, consulte a referência do Parser.

Esquema de tabela analisado

O analisador gcp_audit_log grava as seguintes colunas (geradas a partir da definição do analisador):

Coluna

Tipo de dados

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>

Coluna

Tipo de dados

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>

Observáveis do analisador

O analisador extrai os seguintes campos para lw_observables (gerados a partir da definição do analisador):

campo

Observável

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

campo

Observável

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

Os VARIANT campos a seguir são verificados em busca de observáveis pela correspondência de nomes de key aninhadas. A tabela lista os tipos de observáveis extraídos de cada um:

campo

Tipos de observáveis verificados

protoPayload.request

domain, email, ip, username

protoPayload.response

domain, email, ip, username

protoPayload.metadata

domain, email, ip, username

campo

Tipos de observáveis verificados

protoPayload.request

domain, email, ip, username

protoPayload.response

domain, email, ip, username

protoPayload.metadata

domain, email, ip, username