Coletar registros de contexto do Cloud Storage
Este documento explica como exportar e ingerir registros de contexto do Cloud Storage no Google Security Operations usando o Cloud Storage. O analisador limpa e estrutura os dados JSON recebidos dos registros do Cloud Storage. Em seguida, ele mapeia os campos relevantes para o modelo de dados unificado (UDM, na sigla em inglês), enriquecendo os dados com rótulos e metadados para representação e análise consistentes no ecossistema de segurança.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- Instância do Google SecOps.
- O Cloud Storage está configurado e ativo no seu ambiente Google Cloud .
- Acesso privilegiado a Google Cloud e permissões adequadas.
Criar um bucket do Cloud Storage
- Faça login no console doGoogle Cloud .
Acesse a página Buckets do Cloud Storage.
Clique em Criar.
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:
Na seção Começar, faça o seguinte:
- Insira um nome exclusivo que atenda aos requisitos de nome de bucket. Por exemplo, google-storage-context-logs.
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.
Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.
Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.
Na seção Escolha onde armazenar seus dados, faça o seguinte:
- Selecione um tipo de local.
Use o menu do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.
Para configurar a replicação entre buckets, abra a seção Configurar a replicação entre buckets.
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.
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.
Na seção Escolha como proteger os dados do objeto, faça o seguinte:
- Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
- 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.
Clique em Criar.
Configurar a exportação de registros de contexto do Cloud Storage
- Faça login no console doGoogle Cloud .
- Acesse Logging > Roteador de registros.
- Clique em Criar coletor.
Forneça os seguintes parâmetros de configuração:
- Nome do coletor: insira um nome significativo, por exemplo,
Storage-Context-Sink
. - Destino do gravador: selecione Cloud Storage e insira o URI do bucket. Por exemplo,
gs://google-storage-context-logs
. Filtro de registros:
logName="*storage*" resource.type="gcs_bucket"
- Nome do coletor: insira um nome significativo, por exemplo,
Clique em Criar.
Configurar permissões para o Cloud Storage
- Acesse IAM e administrador > IAM.
- Localize a conta de serviço do Cloud Logging.
- Conceda o papel roles/storage.admin no bucket.
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:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed, por exemplo, Registros de contexto do Cloud Storage.
- Selecione Google Cloud Storage como o Tipo de origem.
- Selecione Contexto do Google Cloud Storage do GCP como o Tipo de registro.
- Clique em Receber conta de serviço ao lado do campo Conta de serviço do Chronicle.
- Clique em Próxima.
Especifique valores para os seguintes parâmetros de entrada:
- URI do bucket de armazenamento: URL do bucket do Cloud Storage. Por exemplo,
gs://google-storage-context-logs
. - URI é um: selecione Diretório que inclui subdiretórios.
Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
- URI do bucket de armazenamento: URL do bucket do Cloud Storage. Por exemplo,
Clique em Próxima.
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: URL do bucket do Cloud Storage. Por exemplo,
gs://google-storage-context-logs
. - URI é um: selecione Diretório que inclui subdiretórios.
- 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 da UDM | Lógica |
---|---|---|
ancestrais | event.idm.entity.entity.resource.attribute.labels.value | O valor do ancestral é extraído da matriz de ancestrais no registro bruto. |
assetType | event.idm.entity.entity.resource.type | Mapeado diretamente do campo "assetType" no registro bruto. |
insertId | event.idm.entity.metadata.product_entity_id | Mapeado diretamente do campo "insertId" no registro bruto. |
labels.compute.googleapis.com/resource_name | event.idm.entity.entity.resource.name | Mapeado diretamente do campo labels.compute.googleapis.com/resource_name no registro bruto. |
labels.k8s-pod/controller-revision-hash | event.idm.entity.entity.file.sha1 | Mapeado diretamente do campo "labels.k8s-pod/controller-revision-hash" no registro bruto. |
labels.k8s-pod/name | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo labels.k8s-pod/name no registro bruto. |
labels.k8s-pod/pod-template-generation | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "labels.k8s-pod/pod-template-generation" no registro bruto. |
logName | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "logName" no registro bruto. |
nome | event.idm.entity.entity.resource.name | Mapeado diretamente do campo "name" no registro bruto. |
receiveTimestamp | event.idm.entity.entity.resource.attribute.creation_time | Convertido para o formato de carimbo de data/hora do campo "receiveTimestamp" no registro bruto. |
resource.data.iamConfiguration.publicAccessPrevention | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo resource.data.iamConfiguration.publicAccessPrevention no registro bruto. |
resource.data.id | event.idm.entity.entity.resource.product_object_id | Mapeado diretamente do campo "resource.data.id" no registro bruto. |
resource.data.kind | event.idm.entity.entity.resource.type | Mapeado diretamente do campo "resource.data.kind" no registro bruto. |
resource.data.labels.app_id | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo resource.data.labels.app_id no registro bruto. |
resource.data.labels.app_name | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo resource.data.labels.app_name no registro bruto. |
resource.data.labels.bucket_id | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.data.labels.bucket_id" no registro bruto. |
resource.data.labels.data_classification | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.data.labels.data_classification" no registro bruto. |
resource.data.labels.dept_name | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.data.labels.dept_name" no registro bruto. |
resource.data.labels.dept_no | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo resource.data.labels.dept_no no registro bruto. |
resource.data.labels.environment | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.data.labels.environment" no registro bruto. |
resource.data.labels.goog-composer-environment | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.data.labels.goog-composer-environment" no registro bruto. |
resource.data.labels.goog-composer-location | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.data.labels.goog-composer-location" no registro bruto. |
resource.data.labels.goog-composer-version | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.data.labels.goog-composer-version" no registro bruto. |
resource.data.labels.technical_contact | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.data.labels.technical_contact" no registro bruto. |
resource.data.labels.type | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.data.labels.type" no registro bruto. |
resource.data.location | event.idm.entity.entity.location.name | Mapeado diretamente do campo "resource.data.location" no registro bruto. |
resource.data.projectNumber | event.idm.entity.entity.resource.attribute.cloud.project.id | Mapeado diretamente do campo "resource.data.projectNumber" no registro bruto. |
resource.data.selfLink | event.idm.entity.entity.url | Mapeado diretamente do campo "resource.data.selfLink" no registro bruto. |
resource.data.timeCreated | event.idm.entity.entity.resource.attribute.creation_time | Convertido para o formato de carimbo de data/hora do campo "resource.data.timeCreated" no registro bruto. |
resource.data.updated | event.idm.entity.entity.resource.attribute.last_update_time | Convertido para o formato de carimbo de data/hora do campo "resource.data.updated" no registro bruto. |
resource.discoveryDocumentUri | event.idm.entity.entity.file.full_path | Mapeado diretamente do campo "resource.discoveryDocumentUri" no registro bruto. |
resource.labels.cluster_name | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo resource.labels.cluster_name no registro bruto. |
resource.labels.container_name | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.labels.container_name" no registro bruto. |
resource.labels.location | event.idm.entity.entity.location.name | Mapeado diretamente do campo "resource.labels.location" no registro bruto. |
resource.labels.namespace_name | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo resource.labels.namespace_name no registro bruto. |
resource.labels.pod_name | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo resource.labels.pod_name no registro bruto. |
resource.labels.project_id | event.idm.entity.entity.resource.attribute.cloud.project.id | Mapeado diretamente do campo resource.labels.project_id no registro bruto. |
resource.parent | event.idm.entity.entity.resource.parent | Mapeado diretamente do campo "resource.parent" no registro bruto. |
resource.type | event.idm.entity.entity.resource.type | Mapeado diretamente do campo "resource.type" no registro bruto. |
resource.version | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "resource.version" no registro bruto. |
textPayload | event.idm.entity.entity.resource.attribute.labels.value | Mapeado diretamente do campo "textPayload" no registro bruto. |
N/A | event.idm.entity.metadata.collected_timestamp | O carimbo de data/hora coletado é o carimbo de data/hora da entrada de registro. |
N/A | event.idm.entity.metadata.entity_type | Fixado no código como RESOURCE . |
N/A | event.idm.entity.metadata.product_name | Fixado no código como GCP Storage Context . |
N/A | event.idm.entity.metadata.vendor_name | Fixado no código como Google Cloud Platform . |
N/A | event.idm.entity.entity.resource.attribute.cloud.environment | Fixado no código como GOOGLE_CLOUD_PLATFORM . |
N/A | event.idm.entity.entity.resource.resource_type | Fixado no código como STORAGE_BUCKET . |
N/A | event.timestamp | O carimbo de data/hora do evento é o carimbo de data/hora da entrada de registro. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.