Recopila registros de Amazon CloudFront

Compatible con:

En este documento, se describe cómo puedes recopilar registros de Amazon CloudFront configurando un feed de Google Security Operations.

Para obtener más información, consulta la descripción general de la transferencia de datos a Google Security Operations.

Una etiqueta de transferencia 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 transferencia AWS_CLOUDFRONT.

Antes de comenzar

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

Configura Amazon CloudFront

  1. Accede a la consola de administración de AWS.
  2. Accede a la consola de Amazon S3 y crea el bucket de Amazon S3.
  3. Haz clic en Activado para habilitar el registro.
  4. En el campo Bucket for logs, especifica el nombre del bucket de Amazon S3.
  5. En el campo Prefijo de registro, especifica un prefijo opcional.
  6. Después de que los archivos de registro se almacenen en el bucket de Amazon S3, crea una cola de SQS y adjúntala al bucket de Amazon S3.

Identifica los extremos para la conectividad

Verifica las políticas de usuario de Identity and Access Management y de claves de KMS necesarias para S3, SQS y KMS.

Según el servicio y la región, identifica los extremos para la conectividad consultando la siguiente documentación de AWS:

Configura feeds

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

  • Configuración del SIEM > Feeds > Agregar nuevo
  • Centro de contenido > Paquetes de contenido > Comenzar

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. Especifica los valores en los siguientes campos.

    • Tipo de fuente: Amazon SQS V2
    • Nombre de la cola: Es el nombre de la cola de SQS desde la que se leerá.
    • URI de S3: Es el URI del bucket.
      • s3://your-log-bucket-name/
        • Reemplaza your-log-bucket-name por el nombre real de tu bucket de S3.
    • Opciones de eliminación de la fuente: Selecciona la opción de eliminación según tus preferencias de transferencia.

    • Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días especificada. El valor predeterminado es de 180 días.

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

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

    Opciones avanzadas

    • Nombre del feed: Es un valor completado previamente que identifica el feed.
    • Espacio de nombres del activo: Es el espacio de nombres asociado con el feed.
    • Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
  4. Haz clic en Crear feed.

Para obtener más información sobre cómo configurar varios feeds para diferentes tipos de registros dentro de esta familia de productos, consulta Configura feeds por producto.

Referencia de la asignación de campos

Este analizador extrae campos de los registros de AWS CloudFront en formato SYSLOG o JSON, y los normaliza en el UDM. Utiliza patrones de Grok para analizar cadenas de mensajes, controla varias transformaciones de datos (p.ej., conversiones de tipos, cambio de nombre) y enriquece los datos con contexto adicional, como el análisis del agente de usuario y la identificación del protocolo de la aplicación.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
c-ip principal.ip Se asigna directamente. También se asigna a principal.asset.ip.
c-port principal.port Se asigna directamente.
cs(Cookie) additional.fields[].key: "cookie"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si cs(Cookie) está presente y agent no contiene "://".
cs(Host) principal.hostname Se asigna directamente. También se asigna a principal.asset.hostname. Se usa para construir el target.url si no hay otros campos de URL disponibles.
cs(Referer) network.http.referral_url Se asigna directamente.
cs(User-Agent) network.http.user_agent Se asigna directamente. También se asigna a network.http.parsed_user_agent y se analiza en sus componentes si no contiene "://".
cs-bytes network.sent_bytes Se asigna directamente. Se convirtió en un número entero sin signo.
cs-method network.http.method Se asigna directamente.
cs-protocol network.application_protocol Se asigna después de convertir 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 establece en "HTTP".
dport target.port Se asigna directamente. Se convirtió en un número entero.
edge_location principal.location.name Se asigna directamente.
fle-encrypted-fields additional.fields[].key: "fle-encrypted-fields"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
fle-status additional.fields[].key: "fle-status"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
host principal.hostname, principal.asset.hostname Se asigna directamente.
id principal.asset_id Se asigna directamente con el prefijo "id: ".
ip target.ip, target.asset.ip Se asigna directamente.
log_id metadata.product_log_id Se asigna directamente.
resource additional.fields[].key: "resource"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
result_type additional.fields[].key: "result_type"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
sc-bytes network.received_bytes Se asigna directamente. Se convirtió en un número entero sin signo.
sc-content-len additional.fields[].key: "sc-content-len"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
sc-content-type additional.fields[].key: "sc-content-type"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
sc-status network.http.response_code Se asigna directamente. Se convirtió en un número entero.
ssl-cipher network.tls.cipher Se asigna directamente.
ssl-protocol network.tls.version Se asigna directamente.
timestamp metadata.event_timestamp Se analizan y se asignan si están disponibles. Se admiten diferentes formatos.
ts metadata.event_timestamp Se analizan y se asignan si están disponibles. Se espera el formato ISO8601.
url target.url Se asigna directamente.
url_back_to_product metadata.url_back_to_product Se asigna directamente.
x-edge-detailed-result-type additional.fields[].key: "x-edge-detailed-result-type"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
x-edge-location additional.fields[].key: "x-edge-location"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
x-edge-request-id additional.fields[].key: "x-edge-request-id"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
x-edge-response-result-type additional.fields[].key: "x-edge-response-result-type"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
x-edge-result-type additional.fields[].key: "x-edge-result-type"
additional.fields[].value.string_value: Se asigna directamente.
Se asigna de forma condicional si está presente.
x-forwarded-for target.ip, target.asset.ip Se asigna directamente. Si hay varias IPs (separadas por comas), se dividen y se combinan en los campos correspondientes del UDM.
x-host-header target.hostname, target.asset.hostname Se asigna directamente. Se establece en "NETWORK_HTTP" si están presentes ip o x-forwarded-for y http_verb. De lo contrario, se establece como "GENERIC_EVENT". Se codifica como "AWS_CLOUDFRONT". Se codifica como "AWS CloudFront". Se codifica de forma rígida como "AMAZON". Es la hora de transferencia de la entrada de registro a Google Security Operations.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.