Recoger registros de Amazon CloudFront

Disponible en:

En este documento se describe cómo puede recoger registros de Amazon CloudFront configurando un feed de Google Security Operations.

Para obtener más información, consulta el artículo Información general sobre la ingestión de datos en Google Security Operations.

Una etiqueta de ingestión identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta de ingestión AWS_CLOUDFRONT.

Antes de empezar

Asegúrate de que se haya creado el segmento de Amazon S3. Para obtener más información, consulta Crear tu primer segmento de S3.

Configurar Amazon CloudFront

  1. Inicia sesión en la consola AWS Management.
  2. Accede a la consola de Amazon S3 y crea el segmento de Amazon S3.
  3. Haz clic en Activado para habilitar el registro.
  4. En el campo Segmento de los registros, especifica el nombre del segmento de Amazon S3.
  5. En el campo Prefijo de registro, especifica un prefijo opcional.
  6. Una vez que los archivos de registro se hayan almacenado en el segmento de Amazon S3, crea una cola de SQS y asóciala al segmento de Amazon S3.

Identificar los endpoints de conectividad

Comprueba las políticas de usuario de gestión de identidades y accesos y de claves de KMS necesarias para S3, SQS y KMS.

En función del servicio y la región, identifique los endpoints para la conectividad consultando la siguiente documentación de AWS:

Configurar feeds

Hay dos puntos de entrada diferentes para configurar feeds en la plataforma Google SecOps:

  • Configuración de SIEM > Feeds > Añadir nuevo
  • Centro de contenido > Paquetes de contenido > Empezar

Cómo configurar el feed de AWS CloudFront

  1. Haz clic en el paquete Amazon Cloud Platform.
  2. Busca el tipo de registro AWS CloudFront.
  3. Especifique los valores en los campos siguientes.

    • Tipo de fuente: Amazon SQS V2
    • Nombre de la cola: el nombre de la cola de SQS de la que se va a leer.
    • URI de S3: el URI del segmento.
      • s3://your-log-bucket-name/
        • Sustituye your-log-bucket-name por el nombre real de tu segmento de S3.
    • Opciones de eliminación de la fuente: selecciona la opción de eliminación que prefieras según tus preferencias de ingesta.

    • Antigüedad máxima del archivo: incluye los archivos modificados en los últimos días. El valor predeterminado es de 180 días.

    • ID de clave de acceso a la cola de SQS: una clave de acceso de cuenta que es una cadena alfanumérica de 20 caracteres.

    • Clave de acceso secreta de la cola de SQS: una clave de acceso de cuenta que es una cadena alfanumérica de 40 caracteres.

    Opciones avanzadas

    • Nombre del feed: valor rellenado automáticamente que identifica el feed.
    • Espacio de nombres del recurso: espacio de nombres asociado al feed.
    • Etiquetas de ingestión: etiquetas aplicadas a todos los eventos de este feed.
  4. Haga clic en Crear feed.

Para obtener más información sobre cómo configurar varios feeds para diferentes tipos de registros en esta familia de productos, consulta el artículo Configurar feeds por producto.

Referencia de asignación de campos

Este analizador extrae campos de los registros de AWS CloudFront en formato SYSLOG o JSON y los normaliza en UDM. Usa patrones grok para analizar cadenas de mensajes, gestiona varias transformaciones de datos (por ejemplo, conversiones de tipos y cambios de nombre) y enriquece los datos con contexto adicional, como el análisis del user-agent y la identificación del protocolo de aplicación.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
c-ip principal.ip Asignación directa. También se ha asignado a principal.asset.ip.
c-port principal.port Asignación directa.
cs(Cookie) additional.fields[].key: "cookie"
additional.fields[].value.string_value: asignación directa.
Se asigna de forma condicional si cs(Cookie) está presente y agent no contiene "://".
cs(Host) principal.hostname Asignación directa. También se ha asignado a principal.asset.hostname. Se usa para crear el target.url si no hay otros campos de URL disponibles.
cs(Referer) network.http.referral_url Asignación directa.
cs(User-Agent) network.http.user_agent Asignación directa. También se asigna a network.http.parsed_user_agent y se analiza en sus componentes si no contiene "://".
cs-bytes network.sent_bytes Asignación directa. Se ha convertido en un número entero sin signo.
cs-method network.http.method Asignación directa.
cs-protocol network.application_protocol Se asigna después de convertirlo a mayúsculas. Si el valor no se reconoce como un protocolo de aplicación estándar y cs-protocol-version contiene "HTTP", network.application_protocol se asigna a "HTTP".
dport target.port Asignación directa. Se ha convertido en un número entero.
edge_location principal.location.name Asignación directa.
fle-encrypted-fields additional.fields[].key: "fle-encrypted-fields"
additional.fields[].value.string_value: se asigna directamente.
Se asigna condicionalmente si está presente.
fle-status additional.fields[].key: "fle-status"
additional.fields[].value.string_value: asignado directamente.
Se asigna condicionalmente si está presente.
host principal.hostname, principal.asset.hostname Asignación directa.
id principal.asset_id Asignado directamente con el prefijo "id: ".
ip target.ip, target.asset.ip Asignación directa.
log_id metadata.product_log_id Asignación directa.
resource additional.fields[].key: "resource"
additional.fields[].value.string_value: asignado directamente.
Se asigna condicionalmente si está presente.
result_type additional.fields[].key: "result_type"
additional.fields[].value.string_value: asignación directa.
Se asigna condicionalmente si está presente.
sc-bytes network.received_bytes Asignación directa. Se ha convertido en un número entero sin signo.
sc-content-len additional.fields[].key: "sc-content-len"
additional.fields[].value.string_value: asignación directa.
Se asigna condicionalmente si está presente.
sc-content-type additional.fields[].key: "sc-content-type"
additional.fields[].value.string_value: asignación directa.
Se asigna condicionalmente si está presente.
sc-status network.http.response_code Asignación directa. Se ha convertido en un número entero.
ssl-cipher network.tls.cipher Asignación directa.
ssl-protocol network.tls.version Asignación directa.
timestamp metadata.event_timestamp Analizado y asignado, si está disponible. Se admiten diferentes formatos.
ts metadata.event_timestamp Analizado y asignado, si está disponible. Se espera que esté en formato ISO 8601.
url target.url Asignación directa.
url_back_to_product metadata.url_back_to_product Asignación directa.
x-edge-detailed-result-type additional.fields[].key: "x-edge-detailed-result-type"
additional.fields[].value.string_value: asignación directa.
Se asigna condicionalmente si está presente.
x-edge-location additional.fields[].key: "x-edge-location"
additional.fields[].value.string_value: se asigna directamente.
Se asigna condicionalmente si está presente.
x-edge-request-id additional.fields[].key: "x-edge-request-id"
additional.fields[].value.string_value: asignación directa.
Se asigna condicionalmente si está presente.
x-edge-response-result-type additional.fields[].key: "x-edge-response-result-type"
additional.fields[].value.string_value: asignación directa.
Se asigna condicionalmente si está presente.
x-edge-result-type additional.fields[].key: "x-edge-result-type"
additional.fields[].value.string_value: asignación directa.
Se asigna condicionalmente si está presente.
x-forwarded-for target.ip, target.asset.ip Asignación directa. Si hay varias IPs (separadas por comas), se dividen y se combinan en los campos de UDM correspondientes.
x-host-header target.hostname, target.asset.hostname Asignación directa. Se asigna el valor "NETWORK_HTTP" si se incluyen ip o x-forwarded-for y http_verb. De lo contrario, se asigna el valor "GENERIC_EVENT". Codificado como "AWS_CLOUDFRONT". Codificado como "AWS CloudFront". Codificado como "AMAZON". Hora de ingestión de la entrada de registro en Google Security Operations.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.