Recoger registros de Amazon CloudFront
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
- Inicia sesión en la consola AWS Management.
- Accede a la consola de Amazon S3 y crea el segmento de Amazon S3.
- Haz clic en Activado para habilitar el registro.
- En el campo Segmento de los registros, especifica el nombre del segmento de Amazon S3.
- En el campo Prefijo de registro, especifica un prefijo opcional.
- 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:
- Para obtener información sobre las fuentes de registro, consulta Endpoints y cuotas de AWS Identity and Access Management.
- Para obtener información sobre las fuentes de registro de S3, consulta Endpoints and quotas of Amazon Simple Storage Service (Endpoints y cuotas de Amazon Simple Storage Service).
- Para obtener información sobre las fuentes de registro de SQS, consulta Endpoints y cuotas de Amazon Simple Queue Service.
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
- Haz clic en el paquete Amazon Cloud Platform.
- Busca el tipo de registro AWS CloudFront.
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.
- Sustituye
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.
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.