Coletar registros do Cloud Run

Compatível com:

Este guia explica como exportar registros do Cloud Run para o Google Security Operations usando o Cloud Storage. O analisador extrai campos de registros JSON, transformando-os no modelo de dados unificado (UDM). Ele processa vários formatos de registro, incluindo dados de solicitação HTTP e registros de auditoria do sistema, mapeando campos relevantes para a UDM e enriquecendo os dados com rótulos e metadados específicos do Cloud Run.

Antes de começar

Verifique se você atende aos seguintes pré-requisitos:

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

Crie um bucket do Google Cloud Storage

  1. Faça login no console doGoogle Cloud .
  2. Acesse a página Buckets do Cloud Storage.

    Acessar buckets

  3. Clique em Criar.

  4. Na página Criar um bucket, insira as informações do seu bucket. Após cada uma das etapas a seguir, clique em Continuar para prosseguir para a próxima etapa:

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

      1. Insira um nome exclusivo que atenda aos requisitos de nome de bucket, por exemplo, cloudrun-logs.
      2. Para ativar o namespace hierárquico, clique na seta de expansão para abrir a seção Otimizar para cargas de trabalho orientadas a arquivos e com uso intensivo de dados e selecione Ativar namespace hierárquico neste bucket.

      3. Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.

      4. Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.

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

      1. Selecione um tipo de local.
      2. Use o menu do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.

      3. Para configurar a replicação entre buckets, abra a seção Configurar a replicação entre buckets.

    3. Na seção Escolha uma classe de armazenamento para seus dados, selecione uma classe de armazenamento padrão para o bucket ou selecione Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.

    4. Na seçã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 controle de acesso para os objetos do bucket.

    5. Na seção Escolha como proteger os dados do objeto, faça o seguinte:

      1. Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
      2. Para escolher como os dados do objeto serão criptografados, clique na seta de expansão identificada como Criptografia de dados e selecione um Método de criptografia de dados.
  5. Clique em Criar.

Configurar a exportação de registros no Cloud Run

  1. Na página Google Cloud Boas-vindas, clique no ícone Cloud Run.
  2. Pesquise Logging na barra de pesquisa na parte de cima e clique em Enter.
  3. No Explorador de registros, filtre os registros escolhendo Cloud Run em Nome do registro e clique em Aplicar.
  4. Clique em Mais ações > Criar coletor no menu.
  5. Forneça as seguintes configurações:
    1. Detalhes do coletor: insira um nome e uma descrição.
    2. Clique em Próxima.
    3. Destino do coletor: selecione Bucket do Cloud Storage.
    4. Bucket do Cloud Storage: selecione o bucket criado anteriormente ou crie um novo.
    5. Clique em Próxima.
    6. Escolher os registros para incluir no coletor: um registro padrão é preenchido quando você seleciona uma opção no bucket do Cloud Storage.
    7. Clique em Próxima.
    8. Opcional: Escolher registros para filtrar do coletor: selecione os registros que você não quer que sejam coletados.
  6. Clique em Criar coletor.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em "Configurações do SIEM" > "Feeds".

Para configurar um feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do Cloud Run.
  5. Selecione Google Cloud Storage como o Tipo de origem.
  6. Selecione GCP Cloud Run como o Tipo de registro.
  7. Clique em Receber conta de serviço como a Conta de serviço do Chronicle.
  8. Clique em Próxima.
  9. Especifique valores para os seguintes parâmetros de entrada:

    • URI do bucket de armazenamento: Google Cloud URL do bucket de armazenamento no formato gs://my-bucket/<value>.
    • URI Is A: selecione Directory which includes subdirectories.
    • Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.

  10. Clique em Próxima.

  11. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Configurar feeds na Central de conteúdo

Especifique valores para os seguintes campos:

  • URI do bucket de armazenamento: Google Cloud URL do bucket de armazenamento no formato gs://my-bucket/<value>.
  • URI Is A: selecione Directory which includes subdirectories.
  • Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Tipo de origem: método usado para coletar registros no Google SecOps.
  • Namespace do recurso: namespace associado ao feed.
  • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
httpRequest.latency target.resource.attribute.labels.[] O valor de httpRequest.latency do registro bruto é usado como o valor de um rótulo com a chave http_request_latency em target.resource.attribute.labels.
httpRequest.protocol network.application_protocol Se httpRequest.protocol contiver HTTP, o campo UDM será definido como HTTP.
httpRequest.remoteIp principal.asset.ip O valor de httpRequest.remoteIp do registro bruto é usado.
httpRequest.remoteIp principal.ip O valor de httpRequest.remoteIp do registro bruto é usado.
httpRequest.requestMethod network.http.method O valor de httpRequest.requestMethod do registro bruto é usado.
httpRequest.requestSize network.sent_bytes O valor de httpRequest.requestSize do registro bruto é convertido em um número inteiro sem sinal e usado.
httpRequest.requestUrl target.url O valor de httpRequest.requestUrl do registro bruto é usado.
httpRequest.responseSize network.received_bytes O valor de httpRequest.responseSize do registro bruto é convertido em um número inteiro sem sinal e usado.
httpRequest.serverIp target.asset.ip O valor de httpRequest.serverIp do registro bruto é usado.
httpRequest.serverIp target.ip O valor de httpRequest.serverIp do registro bruto é usado.
httpRequest.status network.http.response_code O valor de httpRequest.status do registro bruto é convertido em um número inteiro e usado.
httpRequest.userAgent network.http.parsed_user_agent O valor de httpRequest.userAgent do registro bruto é analisado como uma string de user agent.
httpRequest.userAgent network.http.user_agent O valor de httpRequest.userAgent do registro bruto é usado.
insertId metadata.product_log_id O valor de insertId do registro bruto é usado.
labels.instanceId additional.fields.[] O valor de labels.instanceId é usado como o valor de um rótulo 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 um rótulo 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 um rótulo 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 um rótulo com a chave task_index em additional.fields.
logName metadata.product_event_type O valor de logName do registro bruto é usado.
resource.labels.configuration_name target.resource.attribute.labels.[] O valor de resource.labels.configuration_name é usado como o valor de um rótulo 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 um rótulo com a chave job_name em additional.fields.
resource.labels.location target.location.name O valor de resource.labels.location do registro bruto é usado.
resource.labels.project_id target.resource.attribute.labels.[] O valor de resource.labels.project_id é usado como o valor de um rótulo 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 um rótulo 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 um rótulo com a chave service_name em target.resource.attribute.labels.
resource.type target.resource.resource_subtype O valor de resource.type do registro bruto é usado.
severity security_result.severity Se o valor de severity corresponder a Info (sem diferenciar maiúsculas de minúsculas), o campo do UDM será definido como INFORMATIONAL.
textPayload additional.fields.[] O valor de textPayload é usado como o valor de um rótulo com a chave Textpayload em additional.fields.
timestamp metadata.event_timestamp O valor de timestamp do registro bruto é analisado como um carimbo de data/hora.
timestamp timestamp O valor de timestamp do registro bruto é analisado como um carimbo de data/hora. Determinado pela lógica do analisador com base na presença de determinados campos. O padrão é GENERIC_EVENT. Se has_principal_ip, has_target_ip e httpRequest.protocol corresponderem a HTTP, ele será definido como NETWORK_HTTP. Fixado no código como GCP_RUN. Fixado no código como GCP_RUN. Fixado no código como Google Cloud Platform. Fixado no código como GOOGLE_CLOUD_PLATFORM.

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