Recolha registos de contexto do Cloud Storage
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
- Inicie sessão na Google Cloud consola.
Aceda à página Contentores do Cloud Storage.
Clique em Criar.
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:
Na secção Começar, faça o seguinte:
- Introduza um nome exclusivo que cumpra os requisitos do nome do contentor; por exemplo, google-storage-context-logs.
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.
Para adicionar uma etiqueta de grupo, clique na seta de expansão para expandir a secção Etiquetas.
Clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.
Na secção Escolha onde quer armazenar os seus dados, faça o seguinte:
- Selecione um Tipo de localização.
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.
Para configurar a replicação entre contentores, expanda a secção Configurar replicação entre contentores.
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.
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.
Na secção Escolha como proteger os dados de objetos, faça o seguinte:
- Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor.
- 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.
Clique em Criar.
Configure a exportação de registos de contexto do Cloud Storage
- Inicie sessão na Google Cloud consola.
- Aceda a Registo > Router de registos.
- Clique em Criar destino.
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"
- Nome do destino: introduza um nome significativo; por exemplo,
Clique em Criar.
Configure autorizações para o Cloud Storage
- Aceda a IAM e administrador > IAM.
- Localize a conta de serviço do Cloud Logging.
- 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
- Clique no pacote Google Cloud Compute platform.
- Localize o tipo de registo GCP Google Cloud Storage Context e clique em Adicionar novo feed.
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.
- 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.