Recolha registos do Amazon CloudFront
Este documento descreve como pode recolher registos do Amazon CloudFront configurando um feed do Google Security Operations.
Para mais informações, consulte o artigo Vista geral da ingestão de dados no Google Security Operations.
Uma etiqueta de carregamento identifica o analisador que normaliza os dados de registo não processados
para o formato UDM estruturado. As informações neste documento aplicam-se ao analisador com a etiqueta de carregamento AWS_CLOUDFRONT
.
Antes de começar
Certifique-se de que o contentor do Amazon S3 é criado. Para mais informações, consulte o artigo Crie o seu primeiro contentor do S3.
Configure o Amazon CloudFront
- Inicie sessão na consola de gestão da AWS.
- Aceda à consola do Amazon S3 e crie o contentor do Amazon S3.
- Clique em Ativado para ativar o registo.
- No campo Bucket para registos, especifique o nome do bucket do Amazon S3.
- No campo Prefixo do registo, especifique um prefixo opcional.
- Depois de os ficheiros de registo serem armazenados no contentor do Amazon S3, crie uma fila do SQS e anexe-a ao contentor do Amazon S3.
Identifique os pontos finais para a conetividade
Verifique as políticas de utilizadores de gestão de identidade e de acesso e de chaves do KMS necessárias para o S3, o SQS e o KMS.
Com base no serviço e na região, identifique os pontos finais para a conetividade consultando a seguinte documentação da AWS:
- Para obter informações sobre quaisquer origens de registo, consulte Pontos finais e quotas da gestão de identidade e acesso da AWS.
- Para obter informações sobre as origens de registo do S3, consulte o artigo Pontos finais e quotas do Amazon Simple Storage Service.
- Para obter informações sobre origens de registo do SQS, consulte o artigo Pontos finais e quotas do Amazon Simple Queue Service.
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 do AWS CloudFront
- Clique no pacote Amazon Cloud Platform.
- Localize o tipo de registo AWS CloudFront.
Especifique os valores nos seguintes campos.
- Tipo de origem: Amazon SQS V2
- Nome da fila: o nome da fila SQS a partir da qual ler
- URI do S3: o URI do contentor.
s3://your-log-bucket-name/
- Substitua
your-log-bucket-name
pelo nome real do seu contentor do S3.
- Substitua
Opções de eliminação de origens: selecione a opção de eliminação de acordo com as suas preferências de carregamento.
Idade máxima do ficheiro: inclua ficheiros modificados no último número de dias. A predefinição é 180 dias.
ID da chave de acesso à fila SQS: uma chave de acesso à conta que é uma string alfanumérica de 20 carateres.
Chave de acesso secreta da fila SQS: uma chave de acesso à conta que é uma string alfanumérica de 40 carateres.
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.
Referência de mapeamento de campos
Este analisador extrai campos dos registos do AWS CloudFront no formato SYSLOG ou JSON, normalizando-os no UDM. Usa padrões grok para analisar strings de mensagens, processa várias transformações de dados (por exemplo, conversões de tipos, mudança de nome) e enriquece os dados com contexto adicional, como a análise do agente do utilizador e a identificação do protocolo de aplicação.
Tabela de mapeamento do UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
c-ip |
principal.ip |
Mapeado diretamente. Também mapeado para principal.asset.ip . |
c-port |
principal.port |
Mapeado diretamente. |
cs(Cookie) |
additional.fields[].key : "cookie"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente se cs(Cookie) estiver presente e agent não contiver "://". |
cs(Host) |
principal.hostname |
Mapeado diretamente. Também mapeado para principal.asset.hostname . Usado na construção do target.url se outros campos de URL não estiverem disponíveis. |
cs(Referer) |
network.http.referral_url |
Mapeado diretamente. |
cs(User-Agent) |
network.http.user_agent |
Mapeado diretamente. Também é mapeado para network.http.parsed_user_agent e analisado nos respetivos componentes se não contiver "://". |
cs-bytes |
network.sent_bytes |
Mapeado diretamente. Convertido em número inteiro sem sinal. |
cs-method |
network.http.method |
Mapeado diretamente. |
cs-protocol |
network.application_protocol |
Mapeado após a conversão para maiúsculas. Se o valor não for reconhecido como um protocolo de aplicação padrão e cs-protocol-version contiver "HTTP", network.application_protocol é definido como "HTTP". |
dport |
target.port |
Mapeado diretamente. Convertido em número inteiro. |
edge_location |
principal.location.name |
Mapeado diretamente. |
fle-encrypted-fields |
additional.fields[].key : "fle-encrypted-fields"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
fle-status |
additional.fields[].key : "fle-status"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
host |
principal.hostname , principal.asset.hostname |
Mapeado diretamente. |
id |
principal.asset_id |
Mapeado diretamente com o prefixo "id: ". |
ip |
target.ip , target.asset.ip |
Mapeado diretamente. |
log_id |
metadata.product_log_id |
Mapeado diretamente. |
resource |
additional.fields[].key : "resource"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
result_type |
additional.fields[].key : "result_type"additional.fields[].value.string_value : Mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
sc-bytes |
network.received_bytes |
Mapeado diretamente. Convertido em número inteiro sem sinal. |
sc-content-len |
additional.fields[].key : "sc-content-len"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
sc-content-type |
additional.fields[].key : "sc-content-type"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
sc-status |
network.http.response_code |
Mapeado diretamente. Convertido em número inteiro. |
ssl-cipher |
network.tls.cipher |
Mapeado diretamente. |
ssl-protocol |
network.tls.version |
Mapeado diretamente. |
timestamp |
metadata.event_timestamp |
Analisa e mapeia, se disponível. São suportados diferentes formatos. |
ts |
metadata.event_timestamp |
Analisa e mapeia, se disponível. É esperado o formato ISO8601. |
url |
target.url |
Mapeado diretamente. |
url_back_to_product |
metadata.url_back_to_product |
Mapeado diretamente. |
x-edge-detailed-result-type |
additional.fields[].key : "x-edge-detailed-result-type"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
x-edge-location |
additional.fields[].key : "x-edge-location"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
x-edge-request-id |
additional.fields[].key : "x-edge-request-id"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
x-edge-response-result-type |
additional.fields[].key : "x-edge-response-result-type"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
x-edge-result-type |
additional.fields[].key : "x-edge-result-type"additional.fields[].value.string_value : mapeado diretamente. |
Mapeado condicionalmente, se estiver presente. |
x-forwarded-for |
target.ip , target.asset.ip |
Mapeado diretamente. Se estiverem presentes vários IPs (separados por vírgulas), estes são divididos e unidos nos respetivos campos de dados do utilizador. |
x-host-header |
target.hostname , target.asset.hostname |
Mapeado diretamente. Defina como "NETWORK_HTTP" se ip ou x-forwarded-for e http_verb estiverem presentes. Caso contrário, defina como "GENERIC_EVENT". Codificado de forma rígida para "AWS_CLOUDFRONT". Codificado de forma rígida para "AWS CloudFront". Codificado de forma rígida como "AMAZON". A hora de carregamento da entrada de registo no Google Security Operations. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.