Recopila registros de Amazon CloudFront
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 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
- Accede a la consola de administración de AWS.
- Accede a la consola de Amazon S3 y crea el bucket de Amazon S3.
- Haz clic en On para habilitar el registro.
- En el campo Bucket for logs, especifica el nombre del bucket de Amazon S3.
- En el campo Log prefix, especifica un prefijo opcional.
- Después de que los archivos de registro se almacenen en el bucket de Amazon S3, crea una cola de SQS y conéctala con el bucket de Amazon S3.
Identifica los extremos para la conectividad
Verifica las políticas de usuario y de clave de KMS de Identity and Access Management 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:
- Para obtener información sobre las fuentes de registro, consulta Extremos y cuotas de AWS Identity and Access Management.
- Para obtener información sobre las fuentes de registro de S3, consulta Extremos y cuotas de Amazon Simple Storage Service.
- Para obtener información sobre las fuentes de registro de SQS, consulta Extremos y cuotas de Amazon Simple Queue Service.
Configura feeds
Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:
- Configuración de SIEM > Feeds > Agregar nuevo
- Content Hub > Paquetes de contenido > Comenzar
Cómo configurar el feed de AWS CloudFront
- Haz clic en el paquete Amazon Cloud Platform.
- Ubica el tipo de registro AWS CloudFront.
Especifica los valores en los siguientes campos.
- Tipo de fuente: Amazon SQS V2
- Nombre de la cola: El nombre de la cola de SQS desde la que se leerá
- URI de S3: El URI del bucket
s3://your-log-bucket-name/- Reemplaza
your-log-bucket-namepor el nombre real de tu bucket de S3.
- Reemplaza
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 más reciente. El valor predeterminado es 180 días.
ID de clave de acceso a la cola de SQS: Una clave de acceso a la cuenta que es una cadena alfanumérica de 20 caracteres.
Clave de acceso secreta a la cola de SQS: Una clave de acceso a la cuenta que es una cadena alfanumérica de 40 caracteres.
Opciones avanzadas
- Nombre del feed: Un valor propagado previamente que identifica el feed.
- Espacio de nombres del activo: Espacio de nombres asociado con el feed.
- Etiquetas de transferencia: Etiquetas aplicadas a todos los eventos de este feed.
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 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. Usa patrones de Grok para analizar cadenas de mensajes, controla varias transformaciones de datos (p.ej., conversiones de tipo, 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 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 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 convierte 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 la conversión 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 convierte 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 convierte 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 convierte 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 analiza y se asigna si está disponible. Se admiten diferentes formatos. |
ts |
metadata.event_timestamp |
Se analiza y se asigna si está disponible. 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 presentes (separadas por comas), se dividen y se combinan en los campos de UDM respectivos. |
x-host-header |
target.hostname, target.asset.hostname |
Se asigna directamente. Se establece en "NETWORK_HTTP" si ip o x-forwarded-for y http_verb están presentes. De lo contrario, se establece en "GENERIC_EVENT". Está codificado como "AWS_CLOUDFRONT". Está codificado como "AWS CloudFront". Está codificado 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.