Recolha registos do Cloud Run

Compatível com:

Este guia explica como exportar registos do Cloud Run para o Google Security Operations através do Cloud Storage. O analisador extrai campos de registos JSON, transformando-os no modelo de dados unificado (UDM). Processa vários formatos de registo, incluindo dados de pedidos HTTP e registos de auditoria do sistema, mapeando os campos relevantes para o UDM e enriquecendo os dados com etiquetas e metadados específicos do Cloud Run.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • Instância do Google SecOps.
  • O Cloud Run está configurado e ativo no seu Google Cloud ambiente.
  • Acesso privilegiado a Google Cloud.

Crie um contentor do Google Cloud Storage

  1. Inicie sessão na Google Cloud consola.
  2. Aceda à página Contentores do Cloud Storage.

    Aceda aos contentores

  3. Clique em Criar.

  4. Na página Criar um depósito, introduza as informações do depósito. Após cada um dos passos seguintes, clique em Continuar para avançar para o passo seguinte:

    1. Na secção Começar, faça o seguinte:

      1. Introduza um nome exclusivo que cumpra os requisitos de nome do contentor; por exemplo, cloudrun-logs.
      2. Para ativar o espaço de nomes hierárquico, clique na seta de expansão para expandir a secção Otimizar para cargas de trabalho orientadas para ficheiros e com grande volume de dados e, de seguida, selecione Ativar espaço de nomes hierárquico neste contentor.

      3. Para adicionar uma etiqueta de grupo, clique na seta de expansão para expandir a secção Etiquetas.

      4. Clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.

    2. Na secção Escolha onde quer armazenar os seus dados, faça o seguinte:

      1. Selecione um Tipo de localização.
      2. Use o menu de tipo de localização para selecionar uma Localização onde os dados de objetos no seu contentor vão ser armazenados permanentemente.

      3. Para configurar a replicação entre contentores, expanda a secção Configurar replicação entre contentores.

    3. Na secção Escolha uma classe de armazenamento para os seus dados, selecione uma classe de armazenamento predefinida para o contentor ou selecione Autoclass para a gestão automática da classe de armazenamento dos dados do seu contentor.

    4. Na secção Escolha como controlar o acesso a objetos, selecione não para aplicar a prevenção de acesso público e selecione um modelo de controlo de acesso para os objetos do seu contentor.

    5. Na secção Escolha como proteger os dados de objetos, faça o seguinte:

      1. Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor.
      2. Para escolher como os dados de objetos vão ser encriptados, clique na seta de expansão com a etiqueta Encriptação de dados e selecione um Método de encriptação de dados.
  5. Clique em Criar.

Configure a exportação de registos no Cloud Run

  1. Na página Google Cloud Boas-vindas, clique no ícone Cloud Run.
  2. Pesquise Iniciar sessão na barra de pesquisa na parte superior e clique em Enter.
  3. No Explorador de registos, filtre os registos escolhendo Cloud Run em Nome do registo e clique em Aplicar.
  4. Clique em Mais ações > Criar destino no menu.
  5. Forneça as seguintes configurações:
    1. Detalhes do destino: introduza um nome e uma descrição.
    2. Clicar em Seguinte.
    3. Destino do fluxo: selecione Contentor do Cloud Storage.
    4. Contentor do Cloud Storage: selecione o contentor criado anteriormente ou crie um novo.
    5. Clicar em Seguinte.
    6. Escolha os registos a incluir no destino: um registo predefinido é preenchido quando seleciona uma opção no contentor do Cloud Storage.
    7. Clicar em Seguinte.
    8. Opcional: escolha os registos a filtrar do sink: selecione os registos que não quer sincronizar.
  6. Clique em Criar destino.

Configure feeds

Para configurar um feed, siga estes passos:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos do Cloud Run.
  5. Selecione Google Cloud Storage V2 como Tipo de origem.
  6. Selecione GCP Cloud Run como o Tipo de registo.
  7. Clique em Obter conta de serviço como a conta de serviço do Chronicle.
  8. Clicar em Seguinte.
  9. Especifique valores para os seguintes parâmetros de entrada:

    • URI do contentor de armazenamento: Google Cloud URL do contentor de armazenamento no formato gs://my-bucket/<value>.
    • Opções de eliminação de origens: selecione a opção de eliminação de acordo com a sua preferência.

    • Idade máxima do ficheiro: inclui ficheiros modificados no último número de dias. A predefinição é 180 dias.

  10. Clicar em Seguinte.

  11. Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
httpRequest.latency target.resource.attribute.labels.[] O valor de httpRequest.latency do registo não processado é usado como o valor de uma etiqueta com a chave http_request_latency em target.resource.attribute.labels.
httpRequest.protocol network.application_protocol Se httpRequest.protocol contiver HTTP, o campo UDM é definido como HTTP.
httpRequest.remoteIp principal.asset.ip É usado o valor de httpRequest.remoteIp do registo não processado.
httpRequest.remoteIp principal.ip É usado o valor de httpRequest.remoteIp do registo não processado.
httpRequest.requestMethod network.http.method É usado o valor de httpRequest.requestMethod do registo não processado.
httpRequest.requestSize network.sent_bytes O valor de httpRequest.requestSize do registo não processado é convertido num número inteiro sem sinal e usado.
httpRequest.requestUrl target.url É usado o valor de httpRequest.requestUrl do registo não processado.
httpRequest.responseSize network.received_bytes O valor de httpRequest.responseSize do registo não processado é convertido num número inteiro sem sinal e usado.
httpRequest.serverIp target.asset.ip É usado o valor de httpRequest.serverIp do registo não processado.
httpRequest.serverIp target.ip É usado o valor de httpRequest.serverIp do registo não processado.
httpRequest.status network.http.response_code O valor de httpRequest.status do registo não processado é convertido num número inteiro e usado.
httpRequest.userAgent network.http.parsed_user_agent O valor de httpRequest.userAgent do registo não processado é analisado como uma string de agente do utilizador.
httpRequest.userAgent network.http.user_agent É usado o valor de httpRequest.userAgent do registo não processado.
insertId metadata.product_log_id É usado o valor de insertId do registo não processado.
labels.instanceId additional.fields.[] O valor de labels.instanceId é usado como o valor de uma etiqueta com a chave instanceId em additional.fields.
labels.run.googleapis.com_execution_name additional.fields.[] O valor de labels.run.googleapis.com_execution_name é usado como o valor de uma etiqueta com a chave execution_name em additional.fields.
labels.run.googleapis.com_task_attempt additional.fields.[] O valor de labels.run.googleapis.com_task_attempt é usado como o valor de uma etiqueta com a chave task_attempt em additional.fields.
labels.run.googleapis.com_task_index additional.fields.[] O valor de labels.run.googleapis.com_task_index é usado como o valor de uma etiqueta com a chave task_index em additional.fields.
logName metadata.product_event_type É usado o valor de logName do registo não processado.
resource.labels.configuration_name target.resource.attribute.labels.[] O valor de resource.labels.configuration_name é usado como o valor de uma etiqueta com a chave configuration_name em target.resource.attribute.labels.
resource.labels.job_name additional.fields.[] O valor de resource.labels.job_name é usado como o valor de uma etiqueta com a chave job_name em additional.fields.
resource.labels.location target.location.name É usado o valor de resource.labels.location do registo não processado.
resource.labels.project_id target.resource.attribute.labels.[] O valor de resource.labels.project_id é usado como o valor de uma etiqueta com a chave project_id em target.resource.attribute.labels.
resource.labels.revision_name target.resource.attribute.labels.[] O valor de resource.labels.revision_name é usado como o valor de uma etiqueta com a chave revision_name em target.resource.attribute.labels.
resource.labels.service_name target.resource.attribute.labels.[] O valor de resource.labels.service_name é usado como o valor de uma etiqueta com a chave service_name em target.resource.attribute.labels.
resource.type target.resource.resource_subtype É usado o valor de resource.type do registo não processado.
severity security_result.severity Se o valor de severity corresponder a Info (sem distinção entre maiúsculas e minúsculas), o campo UDM é definido como INFORMATIONAL.
textPayload additional.fields.[] O valor de textPayload é usado como o valor de uma etiqueta com a chave Textpayload em additional.fields.
timestamp metadata.event_timestamp O valor de timestamp do registo não processado é analisado como uma data/hora.
timestamp timestamp O valor de timestamp do registo não processado é analisado como uma data/hora. Determinado pela lógica do analisador com base na presença de determinados campos. A predefinição é GENERIC_EVENT. Se has_principal_ip, has_target_ip e httpRequest.protocol corresponderem a HTTP, a definição é NETWORK_HTTP. Codificado para GCP_RUN. Codificado para GCP_RUN. Codificado para Google Cloud Platform. Codificado para GOOGLE_CLOUD_PLATFORM.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.