Recolha registos de contexto do Cloud Storage

Compatível com:

Este documento explica como exportar e carregar registos de contexto do Cloud Storage para o Google Security Operations através do Cloud Storage. O analisador limpa e estrutura os dados JSON recebidos dos registos do Cloud Storage. Em seguida, mapeia os campos relevantes para o modelo de dados unificado (UDM), enriquecendo os dados com etiquetas e metadados para uma representação e análise consistentes no ecossistema de segurança.

Antes de começar

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

  • Instância do Google SecOps.
  • O Cloud Storage está configurado e ativo no seu Google Cloud ambiente.
  • Acesso privilegiado a Google Cloud e autorizações adequadas.

Crie um contentor do 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 do nome do contentor; por exemplo, google-storage-context-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 de contexto do Cloud Storage

  1. Inicie sessão na Google Cloud consola.
  2. Aceda a Registo > Router de registos.
  3. Clique em Criar destino.
  4. Forneça os seguintes parâmetros de configuração:

    • Nome do destino: introduza um nome significativo; por exemplo, Storage-Context-Sink.
    • Destino da sincronização: selecione Armazenamento do Cloud Storage e introduza o URI do seu contentor; por exemplo, gs://google-storage-context-logs.
    • Filtro de registo:

      logName="*storage*"
      resource.type="gcs_bucket"
      
  5. Clique em Criar.

Configure autorizações para o Cloud Storage

  1. Aceda a IAM e administrador > IAM.
  2. Localize a conta de serviço do Cloud Logging.
  3. Conceda a função roles/storage.admin no contentor.

Configure feeds

Existem dois pontos de entrada diferentes para configurar feeds na plataforma Google SecOps:

  • Definições do SIEM > Feeds > Adicionar novo
  • Content Hub > Pacotes de conteúdo > Começar

Como configurar o feed de contexto do armazenamento na nuvem

  1. Clique no pacote Google Cloud Compute platform.
  2. Localize o tipo de registo GCP Google Cloud Storage Context e clique em Adicionar novo feed.
  3. Especifique valores para os seguintes campos:

    • Tipo de origem: Google Cloud Storage V2.
    • URI do contentor de armazenamento: URL do contentor do Cloud Storage; por exemplo, gs://compute-context-logs.
    • Opções de eliminação da origem: selecione a opção de eliminação de acordo com a sua preferência.
  • Idade máxima do ficheiro: inclua ficheiros modificados no número de dias mais recente. A predefinição é 180 dias.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Espaço de nomes do recurso: espaço de nomes associado ao feed.
  • Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
  1. Clique em Criar feed.

Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.

Tabela de mapeamento da UDM

Campo de registo Mapeamento do UDM Lógica
ancestrais event.idm.entity.entity.resource.attribute.labels.value O valor do antepassado é extraído da matriz de antepassados no registo não processado.
assetType event.idm.entity.entity.resource.type Mapeado diretamente a partir do campo assetType no registo não processado.
insertId event.idm.entity.metadata.product_entity_id Mapeado diretamente a partir do campo insertId no registo não processado.
labels.compute.googleapis.com/resource_name event.idm.entity.entity.resource.name Mapeado diretamente a partir do campo labels.compute.googleapis.com/resource_name no registo não processado.
labels.k8s-pod/controller-revision-hash event.idm.entity.entity.file.sha1 Mapeado diretamente a partir do campo labels.k8s-pod/controller-revision-hash no registo não processado.
labels.k8s-pod/name event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo labels.k8s-pod/name no registo não processado.
labels.k8s-pod/pod-template-generation event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo labels.k8s-pod/pod-template-generation no registo não processado.
logName event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo logName no registo não processado.
nome event.idm.entity.entity.resource.name Mapeado diretamente a partir do campo de nome no registo não processado.
receiveTimestamp event.idm.entity.entity.resource.attribute.creation_time Convertido para o formato de data/hora a partir do campo receiveTimestamp no registo não processado.
resource.data.iamConfiguration.publicAccessPrevention event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.iamConfiguration.publicAccessPrevention no registo não processado.
resource.data.id event.idm.entity.entity.resource.product_object_id Mapeado diretamente a partir do campo resource.data.id no registo não processado.
resource.data.kind event.idm.entity.entity.resource.type Mapeado diretamente a partir do campo resource.data.kind no registo não processado.
resource.data.labels.app_id event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.app_id no registo não processado.
resource.data.labels.app_name event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.app_name no registo não processado.
resource.data.labels.bucket_id event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.bucket_id no registo não processado.
resource.data.labels.data_classification event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.data_classification no registo não processado.
resource.data.labels.dept_name event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.dept_name no registo não processado.
resource.data.labels.dept_no event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.dept_no no registo não processado.
resource.data.labels.environment event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.environment no registo não processado.
resource.data.labels.goog-composer-environment event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.goog-composer-environment no registo não processado.
resource.data.labels.goog-composer-location event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.goog-composer-location no registo não processado.
resource.data.labels.goog-composer-version event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.goog-composer-version no registo não processado.
resource.data.labels.technical_contact event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.technical_contact no registo não processado.
resource.data.labels.type event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.data.labels.type no registo não processado.
resource.data.location event.idm.entity.entity.location.name Mapeado diretamente a partir do campo resource.data.location no registo não processado.
resource.data.projectNumber event.idm.entity.entity.resource.attribute.cloud.project.id Mapeado diretamente a partir do campo resource.data.projectNumber no registo não processado.
resource.data.selfLink event.idm.entity.entity.url Mapeado diretamente a partir do campo resource.data.selfLink no registo não processado.
resource.data.timeCreated event.idm.entity.entity.resource.attribute.creation_time Convertido para o formato de data/hora a partir do campo resource.data.timeCreated no registo não processado.
resource.data.updated event.idm.entity.entity.resource.attribute.last_update_time Convertido para o formato de data/hora a partir do campo resource.data.updated no registo não processado.
resource.discoveryDocumentUri event.idm.entity.entity.file.full_path Mapeado diretamente a partir do campo resource.discoveryDocumentUri no registo não processado.
resource.labels.cluster_name event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.labels.cluster_name no registo não processado.
resource.labels.container_name event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.labels.container_name no registo não processado.
resource.labels.location event.idm.entity.entity.location.name Mapeado diretamente a partir do campo resource.labels.location no registo não processado.
resource.labels.namespace_name event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.labels.namespace_name no registo não processado.
resource.labels.pod_name event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.labels.pod_name no registo não processado.
resource.labels.project_id event.idm.entity.entity.resource.attribute.cloud.project.id Mapeado diretamente a partir do campo resource.labels.project_id no registo não processado.
resource.parent event.idm.entity.entity.resource.parent Mapeado diretamente a partir do campo resource.parent no registo não processado.
resource.type event.idm.entity.entity.resource.type Mapeado diretamente a partir do campo resource.type no registo não processado.
resource.version event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo resource.version no registo não processado.
textPayload event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente a partir do campo textPayload no registo não processado.
N/A event.idm.entity.metadata.collected_timestamp A data/hora recolhida é a data/hora da entrada do registo.
N/A event.idm.entity.metadata.entity_type Codificado para RESOURCE.
N/A event.idm.entity.metadata.product_name Codificado para GCP Storage Context.
N/A event.idm.entity.metadata.vendor_name Codificado para Google Cloud Platform.
N/A event.idm.entity.entity.resource.attribute.cloud.environment Codificado para GOOGLE_CLOUD_PLATFORM.
N/A event.idm.entity.entity.resource.resource_type Codificado para STORAGE_BUCKET.
N/A event.timestamp A data/hora do evento é a data/hora da entrada do registo.

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