Recolha Google Cloud registos de contexto de computação
Este documento explica como exportar e carregar Google Cloud registos de contexto de computação para o Google Security Operations através do Cloud Storage. O analisador extrai informações dos registos no formato JSON. Em seguida, normaliza e estrutura os dados extraídos no formato UDM do Google SecOps, focando-se nos detalhes sobre máquinas virtuais, como especificações de hardware, configuração de rede, definições de segurança e relações com outras entidades.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps.
 - O Compute 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 de nome do contentor; por exemplo, compute-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 Google Cloud exportação de registos do Compute
- 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, 
Compute-Context-Sink. - Destino da sincronização: selecione Armazenamento do Cloud Storage e introduza o URI do seu contentor; por exemplo, 
gs://compute-context-logs/. Filtro de registo:
logName="*compute*" resource.type="gce_instance"
- 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 feed
 - Content Hub > Pacotes de conteúdo > Começar
 
Como configurar o Google Cloud feed de contexto de cálculo
- Clique no pacote Google Cloud Compute platform.
 - Localize o tipo de registo GCP Compute Context.
 Especifique os seguintes valores:
- Tipo de origem: Google Cloud Storage V2.
 - URI do contentor de armazenamento: URL do contentor do Cloud Storage; por exemplo, 
gs://compute-context-logs/. Este URL tem de terminar com uma barra invertida (/). 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: ficheiros modificados no último número de dias. A predefinição é 180 dias.
Conta de serviço do Chronicle: copie a conta de serviço. Precisa desta conta para adicionar autorizações no contentor para que o Google SecOps possa ler ou eliminar dados no contentor.
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 de UDM | Lógica | 
|---|---|---|
| ancestrais | event.idm.entity.entity.asset.attribute.labels.value | Cada valor de antepassado na matriz de antepassados é mapeado para uma etiqueta separada com a chave ancestors. | 
| assetType | event.idm.entity.entity.asset.category | Mapeado diretamente a partir do campo assetType. | 
| asset_type | event.idm.entity.entity.asset.category | Mapeado diretamente a partir do campo asset_type. | 
| nome | event.idm.entity.entity.resource.name | Mapeado diretamente a partir do campo de nome. | 
| resource.data.cpuPlatform | event.idm.entity.entity.asset.hardware.cpu_platform | Mapeado diretamente a partir do campo resource.data.cpuPlatform. | 
| resource.data.creationTimestamp | event.idm.entity.entity.asset.attribute.creation_time | Analisado para um formato de data/hora a partir do campo resource.data.creationTimestamp. | 
| resource.data.id | event.idm.entity.entity.asset.product_object_id | Mapeado diretamente a partir do campo resource.data.id. | 
| resource.data.labels.business_function | event.idm.entity.entity.asset.attribute.labels.value | Mapeado diretamente a partir do campo resource.data.labels.business_function, com a chave definida como business_function. | 
| resource.data.labels.environment | event.idm.entity.entity.asset.attribute.labels.value | Mapeado diretamente a partir do campo resource.data.labels.environment, com a chave definida como environment. | 
| resource.data.labels.infra_location | event.idm.entity.entity.asset.attribute.labels.value | Mapeado diretamente a partir do campo resource.data.labels.infra_location, com a chave definida como infra_location. | 
| resource.data.labels.instance_group | event.idm.entity.user.group_identifiers | Mapeado diretamente a partir do campo resource.data.labels.instance_group. | 
| resource.data.labels.os | event.idm.entity.entity.asset.platform_software.platform_version | Mapeado diretamente a partir do campo resource.data.labels.os. | 
| resource.data.labels.primary_application | event.idm.entity.entity.asset.attribute.labels.value | Mapeado diretamente a partir do campo resource.data.labels.primary_application, com a chave definida como primary_application. | 
| resource.data.labels.project_code | event.idm.entity.entity.asset.attribute.labels.value | Mapeado diretamente a partir do campo resource.data.labels.project_code, com a chave definida como project_code. | 
| resource.data.lastStartTimestamp | event.idm.entity.entity.asset.last_boot_time | Analisado para um formato de data/hora a partir do campo resource.data.lastStartTimestamp. | 
| resource.data.machineType | event.idm.entity.entity.asset.hardware.model | O tipo de máquina é extraído do campo resource.data.machineType através de uma expressão regular. | 
| resource.data.name | event.idm.entity.entity.asset.hostname | Mapeado diretamente a partir do campo resource.data.name. | 
| resource.data.networkInterfaces.0.accessConfigs.0.natIP | event.idm.entity.entity.asset.nat_ip | O primeiro endereço IP NAT da primeira interface de rede é mapeado. | 
| resource.data.networkInterfaces.0.network | event.idm.entity.entity.asset.attribute.cloud.vpc.name | O ID da rede é extraído do campo resource.data.networkInterfaces.0.network através de uma expressão regular. | 
| resource.data.networkInterfaces.0.networkIP | event.idm.entity.entity.asset.ip | O endereço IP da primeira interface de rede é mapeado. | 
| resource.data.networkInterfaces.1.networkIP | event.idm.entity.entity.asset.ip | O endereço IP da segunda interface de rede está mapeado. | 
| resource.data.selfLink | event.idm.entity.entity.url | Mapeado diretamente a partir do campo resource.data.selfLink. | 
| resource.data.serviceAccounts.0.email | event.idm.entity.relations.entity.user.email_addresses | O endereço de email da primeira conta de serviço é mapeado. | 
| resource.data.status | event.idm.entity.entity.asset.deployment_status | Mapeado para ACTIVE se o estado for um dos seguintes: RUNNING, PROVISIONING, STAGING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, TERMINATED. Caso contrário, é mapeado para DEPLOYMENT_STATUS_UNSPECIFIED. | 
| event.idm.entity.entity.asset.attribute.cloud.availability_zone | A zona de disponibilidade é criada combinando os campos region e zone_suffix. | |
| event.idm.entity.entity.asset.attribute.cloud.environment | Definido como GOOGLE_CLOUD_PLATFORM. | 
|
| event.idm.entity.entity.asset.attribute.cloud.project.name | O ID do projeto é extraído do campo de nome através de uma expressão regular. | |
| event.idm.entity.entity.asset.attribute.cloud.project.resource_type | Definido como CLOUD_PROJECT. | 
|
| event.idm.entity.entity.asset.attribute.cloud.vpc.resource_type | Definido como VPC_NETWORK. | 
|
| event.idm.entity.entity.resource.resource_type | Definido como VIRTUAL_MACHINE se asset_type ou assetType contiver Instance. | 
|
| event.idm.entity.entity.resource.type | Definido como VIRTUAL_MACHINE se asset_type ou assetType contiver Instance. | 
|
| event.idm.entity.metadata.collected_timestamp | Definido como a indicação de tempo do evento Logstash. | |
| event.idm.entity.metadata.entity_type | Definido como ASSET. | 
|
| event.idm.entity.metadata.product_name | Definido como GCP Compute Context. | 
|
| event.idm.entity.metadata.vendor_name | Definido como Google Cloud Platform. | 
|
| event.idm.entity.relations.entity.user.attribute.cloud.environment | Definido como GOOGLE_CLOUD_PLATFORM. | 
|
| event.idm.entity.relations.entity_type | Definido como USER. | 
|
| event.idm.entity.relations.relationship | Definido como ADMINISTERS. | 
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.