Recopila registros de auditoría de Slack
En este documento, se explica cómo transferir registros de auditoría de Slack a Google Security Operations con Cloud Run Functions de Google Cloud o Amazon S3 con AWS Lambda.
Los registros de auditoría de Slack proporcionan un registro detallado de los eventos relacionados con la seguridad en toda tu organización de Slack Enterprise Grid. La API de Audit Logs te permite supervisar las acciones de los usuarios, como los accesos, las descargas de archivos, las instalaciones de apps y los cambios administrativos, para fines de supervisión de cumplimiento y seguridad.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Un plan de Enterprise Grid de Slack con acceso de propietario de la organización o administrador
Acceso con privilegios a cualquiera de las siguientes opciones:
- Google Cloud (para la opción 1: Cloud Run Functions y Cloud Scheduler)
- AWS (para la opción 2: S3, IAM, Lambda, EventBridge)
Recopila credenciales de Slack
Crea la app de Slack
La API de Slack Audit Logs requiere un token de OAuth del usuario con el alcance auditlogs:read. Este token se debe obtener instalando una app a nivel de la organización de Enterprise Grid, no a nivel del espacio de trabajo.
- Accede a la Consola del administrador de Slack con una cuenta de administrador o propietario de la organización de Enterprise Grid.
- Ve a la página de Apps de la API de Slack.
- Haz clic en Crear app nueva.
- Selecciona Desde cero.
- Proporciona los siguientes detalles de configuración:
- Nombre de la app: Ingresa un nombre descriptivo (por ejemplo,
Google SecOps Audit Integration). - Elige un espacio de trabajo para desarrollar tu app: Selecciona tu lugar de trabajo de Slack de desarrollo (cualquier lugar de trabajo de la organización).
- Nombre de la app: Ingresa un nombre descriptivo (por ejemplo,
- Haz clic en Crear app.
Configura los permisos de OAuth
- En la página de configuración de tu app, selecciona OAuth y permisos en el panel de navegación de la izquierda.
- Desplázate hacia abajo hasta la sección Scopes.
- En User Token Scopes (NO Bot Token Scopes), haz clic en Add an OAuth Scope.
- Agrega el siguiente alcance:
auditlogs:read: Este alcance habilita el acceso a la API de Audit Logs para la organización de Enterprise Grid.
- En Bot Token Scopes, haz clic en Add an OAuth Scope.
Agrega el siguiente alcance:
users:read: Este alcance es necesario para habilitar la instalación de apps a nivel de la organización.
Configura la URL de redireccionamiento
- En la página de configuración de tu app, selecciona OAuth y permisos en el panel de navegación de la izquierda.
- Ve a la sección URLs de redireccionamiento.
- Haz clic en Agregar una URL de redireccionamiento nueva.
Ingresa la siguiente URL:
https://slack.com/oauth/v2/authorizeHaz clic en Agregar.
Haz clic en Guardar URLs.
Activa la distribución pública
Para instalar una app a nivel de la organización de Enterprise (no solo en un espacio de trabajo), debes activar la distribución pública.
¿Por qué se requiere la distribución pública?
- Slack requiere que las apps con permisos para toda la organización tengan habilitada la distribución pública.
- Esto permite instalar la app a nivel de la organización en lugar de en espacios de trabajo individuales.
- Sin ella, solo podrás instalar la app en un solo espacio de trabajo de tu Enterprise Grid.
- Habilitar la distribución pública simplemente quita las restricciones internas sobre el alcance de la instalación.
Para activar la distribución pública, sigue estos pasos:
- En la página de configuración de la app, selecciona Administrar distribución en el panel de navegación de la izquierda.
- En Share Your App with Other Workspaces, verifica que las cuatro secciones tengan marcas de verificación verdes:
- Cómo quitar la información codificada
- Activa la distribución pública
- Cómo establecer una URL de redireccionamiento
- Cómo agregar un permiso de OAuth
- Si alguna sección muestra una X roja, expándela y completa la acción requerida.
- Marca la casilla de verificación junto a Revisé y quité toda la información codificada.
- Haz clic en Activar la distribución pública.
Instala la app en la organización de Enterprise
- En la página de configuración de tu app, selecciona OAuth y permisos en el panel de navegación de la izquierda.
- En Share Your App with Your Workspace, copia la URL para compartir.
- Ingresa la URL en tu navegador.
- Importante: En la pantalla de instalación, verifica el menú desplegable de la esquina superior derecha.
- Asegúrate de instalar la app en la organización de Enterprise, NO en un lugar de trabajo individual.
- Si ves el nombre de un espacio de trabajo en el menú desplegable, haz clic en él y selecciona el nombre de tu organización empresarial.
- Revisa los permisos solicitados y haz clic en Permitir.
Recupera credenciales
Una vez que se complete la autorización, se te redireccionará a la página OAuth y permisos.
- En Tokens de OAuth para tu espacio de trabajo, busca el Token de OAuth del usuario.
- El token comienza con
xoxp-. Haz clic en Copiar y guarda este token de forma segura.
Anota tu ID de organización:
- Ve a la Consola del administrador de Slack.
- Navega a Configuración y permisos > Configuración de la organización.
- Copia el ID de la organización.
Verifica los permisos
Para verificar que tu app tenga los permisos necesarios, haz lo siguiente:
- Ve a la página de Apps de la API de Slack.
- Selecciona tu app.
- Selecciona OAuth y permisos en el panel de navegación izquierdo.
- En Tokens de OAuth para tu espacio de trabajo, verifica que se muestre un token de OAuth del usuario (comienza con
xoxp-). - En Alcances, verifica que
auditlogs:readaparezca en Alcances del token del usuario.
Prueba el acceso a la API
Prueba tu token antes de continuar con la integración:
SLACK_TOKEN="xoxp-your-token-here" curl -H "Authorization: Bearer $SLACK_TOKEN" \ "https://api.slack.com/audit/v1/logs?limit=1"Una respuesta correcta contiene un array
entriescon eventos del registro de auditoría. Si recibes un errorinvalid_authomissing_scope, verifica tu token y tus permisos.
Opción 1: Configura la exportación de registros de auditoría de Slack con Google Cloud Run Functions
Esta opción usa Google Cloud Run Functions y Cloud Scheduler de Google Cloud para recopilar registros de auditoría de Slack y transferirlos directamente a Google SecOps con los secuencias de comandos de transferencia de Chronicle.
Antes de comenzar (opción 1)
Asegúrate de cumplir con los siguientes requisitos previos adicionales:
- Un proyecto de GCP con las siguientes APIs habilitadas:
- API de Cloud Functions
- API de Cloud Scheduler
- API de Secret Manager
- Permisos para crear Cloud Functions, trabajos de Cloud Scheduler y secretos en Secret Manager
- Un archivo JSON de una cuenta de servicio de Google SecOps
Obtén la cuenta de servicio de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia.
Guarda el archivo JSON de forma segura. Subirás este archivo como un secreto en Google Secret Manager.
Prepara el código de la función
Descarga los archivos de implementación del repositorio de GitHub de ingestion-scripts de Chronicle:
- Desde la carpeta
slack, descarga lo siguiente:.env.ymlmain.pyrequirements.txt
Desde la raíz del repositorio, descarga todo el directorio
commoncon todos sus archivos.Tu directorio de implementación debe tener la siguiente estructura:
deployment_directory/ ├── common/ │ ├── __init__.py │ ├── auth.py │ ├── env_constants.py │ ├── ingest.py │ ├── status.py │ └── utils.py ├── .env.yml ├── main.py └── requirements.txt
Configura secretos en Google Secret Manager
Almacena credenciales sensibles en Secret Manager para que la función de Cloud Run pueda acceder a ellas de forma segura.
Crea un secreto para la cuenta de servicio de Google SecOps
- En GCP Console, ve a Seguridad > Secret Manager.
- Haz clic en Crear secreto.
- Proporciona los siguientes detalles de configuración:
- Nombre: Ingresa
chronicle-service-account. - Valor del secreto: Ingresa todo el contenido del archivo JSON de la cuenta de servicio de Google SecOps.
- Nombre: Ingresa
- Haz clic en Crear secreto.
Copia el nombre del recurso del secreto. El formato es el siguiente:
projects/PROJECT_ID/secrets/chronicle-service-account/versions/latest
Crea un secreto para el token de Slack
- En la página de Secret Manager, haz clic en Crear secreto.
- Proporciona los siguientes detalles de configuración:
- Nombre: Ingresa
slack-admin-token. - Valor del secreto: Ingresa el token de OAuth del usuario de Slack (comienza con
xoxp-).
- Nombre: Ingresa
- Haz clic en Crear secreto.
Copia el nombre del recurso del secreto. El formato es el siguiente:
projects/PROJECT_ID/secrets/slack-admin-token/versions/latest
Configure las variables de entorno
Abre el archivo
.env.ymlen el directorio de implementación y configura las variables de entorno:CHRONICLE_CUSTOMER_ID: "<your-chronicle-customer-id>" CHRONICLE_REGION: "us" CHRONICLE_SERVICE_ACCOUNT: "projects/<PROJECT_ID>/secrets/chronicle-service-account/versions/latest" CHRONICLE_NAMESPACE: "" POLL_INTERVAL: "5" SLACK_ADMIN_TOKEN: "projects/<PROJECT_ID>/secrets/slack-admin-token/versions/latest"Reemplaza lo siguiente:
<your-chronicle-customer-id>: Es tu ID de cliente de Google SecOps.<PROJECT_ID>es el ID del proyecto de Google Cloud.CHRONICLE_REGION: Se establece en tu región de Google SecOps. Valores válidos:us,asia-northeast1,asia-south1,asia-southeast1,australia-southeast1,europe,europe-west2,europe-west3,europe-west6,europe-west9,europe-west12,me-central1,me-central2,me-west1,northamerica-northeast2,southamerica-east1.POLL_INTERVAL: Es el intervalo de frecuencia (en minutos) con el que se ejecuta la función. Esta duración debe ser la misma que el intervalo del trabajo de Cloud Scheduler.
Guarda el archivo
.env.yml.
Implementa la Cloud Run function
Abre una terminal o Cloud Shell en la consola de Google Cloud. Navega a tu directorio de implementación y ejecuta el siguiente comando:
gcloud functions deploy slack-audit-to-chronicle \ --entry-point main \ --trigger-http \ --runtime python312 \ --env-vars-file .env.yml \ --timeout 540s \ --memory 512MB \ --service-account <SERVICE_ACCOUNT_EMAIL>Reemplaza
<SERVICE_ACCOUNT_EMAIL>por la dirección de correo electrónico de la cuenta de servicio que deseas que use tu función de Cloud Run.Espera a que se complete la implementación. Una vez que se implemente, anota la URL de la función del resultado.
Configura Cloud Scheduler
- En GCP Console, ve a Cloud Scheduler > Crear trabajo.
Proporciona los siguientes detalles de configuración:
Parámetro de configuración Valor Nombre slack-audit-schedulerRegión Selecciona la misma región en la que implementaste la función de Cloud Run. Frecuencia */5 * * * *(cada 5 minutos, coincide con el valor dePOLL_INTERVAL)Zona horaria Selecciona la zona horaria (se recomienda UTC) Haz clic en Continuar.
En la sección Configura la ejecución, haz lo siguiente:
- Tipo de destino: Selecciona HTTP.
- URL: Ingresa la URL de la función de Cloud Run del resultado de la implementación.
- Método HTTP: Selecciona POST.
En la sección Encabezado de autorización, haz lo siguiente:
- Selecciona Agregar token de OIDC.
- Cuenta de servicio: Selecciona la misma cuenta de servicio que se usó para la función de Cloud Run.
Haz clic en Crear.
Opciones de frecuencia de programación
Elige la frecuencia según el volumen de registros y los requisitos de latencia:
| Frecuencia | Expresión cron | Caso de uso |
|---|---|---|
| Cada 5 minutos | */5 * * * * |
Estándar (recomendado) |
| Cada 15 minutos | */15 * * * * |
Volumen medio |
| Cada 1 hora | 0 * * * * |
Volumen bajo |
Prueba la integración (opción 1)
- En la consola de Cloud Scheduler, busca tu trabajo (
slack-audit-scheduler). - Haz clic en Ejecutar forzosamente para activar el trabajo de forma manual.
- Espera unos segundos.
- Ve a Cloud Functions.
- Haz clic en el nombre de la función (
slack-audit-to-chronicle). - Haz clic en la pestaña Registros.
Verifica que la función se haya ejecutado correctamente. Busca lo siguiente:
Retrieving the Slack Audit logs since: YYYY-MM-DDTHH:MM:SSZ Processing logs... Retrieved X audit logs from the API call Logs processed successfully.
Opción 2: Configura la exportación de registros de auditoría de Slack con AWS S3
Esta opción usa AWS Lambda para recopilar registros de auditoría de Slack y almacenarlos en Amazon S3, y, luego, configura un feed de Google SecOps para transferir los registros.
Antes de comenzar (opción 2)
Asegúrate de cumplir con el siguiente requisito previo adicional:
- Una cuenta de AWS con permisos para crear buckets de S3, usuarios/roles/políticas de IAM, funciones de Lambda y reglas de EventBridge
Crea un bucket de Amazon S3
- Crea un bucket de Amazon S3 siguiendo la guía del usuario Cómo crear un bucket.
- Guarda el Nombre y la Región del bucket para consultarlos en el futuro (por ejemplo,
slack-audit-logs).
Configura la política y el rol de IAM para las cargas de S3
- En la consola de AWS, ve a la pestaña IAM > Políticas > Crear política > JSON.
Ingresa la siguiente política. Reemplaza
slack-audit-logssi usaste un nombre de bucket diferente:{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObjects", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::slack-audit-logs/*" }, { "Sid": "AllowGetStateObject", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::slack-audit-logs/slack/audit/state.json" } ] }Haz clic en Siguiente.
Ingresa el nombre de la política
SlackAuditS3Policy.Haz clic en Crear política.
Ve a IAM > Roles > Crear rol > Servicio de AWS > Lambda.
Adjunta la política recién creada
SlackAuditS3Policy.Ponle el nombre
SlackAuditToS3Roleal rol y haz clic en Crear rol.
Crea la función Lambda
- En la consola de AWS, ve a Lambda > Functions > Create function.
- Haz clic en Author from scratch.
Proporciona los siguientes detalles de configuración:
Parámetro de configuración Valor Nombre slack_audit_to_s3Tiempo de ejecución Python 3.13 Arquitectura x86_64 Rol de ejecución SlackAuditToS3RoleHaz clic en Crear función.
Después de crear la función, abre la pestaña Code, borra el código auxiliar y, luego, ingresa el siguiente código (
slack_audit_to_s3.py):#!/usr/bin/env python3 # Lambda: Pull Slack Audit Logs (Enterprise Grid) to S3 (JSONL format) import os, json, time, urllib.parse from urllib.request import Request, urlopen from urllib.error import HTTPError, URLError import boto3 BASE_URL = "https://api.slack.com/audit/v1/logs" TOKEN = os.environ["SLACK_AUDIT_TOKEN"] BUCKET = os.environ["S3_BUCKET"] PREFIX = os.environ.get("S3_PREFIX", "slack/audit/") STATE_KEY = os.environ.get("STATE_KEY", "slack/audit/state.json") LIMIT = int(os.environ.get("LIMIT", "200")) MAX_PAGES = int(os.environ.get("MAX_PAGES", "20")) LOOKBACK_SEC = int(os.environ.get("LOOKBACK_SECONDS", "3600")) HTTP_TIMEOUT = int(os.environ.get("HTTP_TIMEOUT", "60")) HTTP_RETRIES = int(os.environ.get("HTTP_RETRIES", "3")) RETRY_AFTER_DEFAULT = int(os.environ.get("RETRY_AFTER_DEFAULT", "2")) # Optional server-side filters (comma-separated 'action' values) ACTIONS = os.environ.get("ACTIONS", "").strip() s3 = boto3.client("s3") def _get_state() -> dict: try: obj = s3.get_object(Bucket=BUCKET, Key=STATE_KEY) st = json.loads(obj["Body"].read() or b"{}") return {"cursor": st.get("cursor")} except Exception: return {"cursor": None} def _put_state(state: dict) -> None: body = json.dumps(state, separators=(",", ":")).encode("utf-8") s3.put_object( Bucket=BUCKET, Key=STATE_KEY, Body=body, ContentType="application/json" ) def _http_get(params: dict) -> dict: qs = urllib.parse.urlencode(params, doseq=True) url = f"{BASE_URL}?{qs}" if qs else BASE_URL req = Request(url, method="GET") req.add_header("Authorization", f"Bearer {TOKEN}") req.add_header("Accept", "application/json") attempt = 0 while True: try: with urlopen(req, timeout=HTTP_TIMEOUT) as r: return json.loads(r.read().decode("utf-8")) except HTTPError as e: # Respect Retry-After on 429/5xx if e.code in (429, 500, 502, 503, 504) and attempt < HTTP_RETRIES: retry_after = 0 try: retry_after = int( e.headers.get("Retry-After", RETRY_AFTER_DEFAULT) ) except Exception: retry_after = RETRY_AFTER_DEFAULT time.sleep(max(1, retry_after)) attempt += 1 continue raise except URLError: if attempt < HTTP_RETRIES: time.sleep(RETRY_AFTER_DEFAULT) attempt += 1 continue raise def _write_page(data: dict, page_idx: int) -> str: """Extract entries from Slack API response and write as JSONL.""" entries = data.get("entries") or [] if not entries: return None lines = [json.dumps(entry, separators=(",", ":")) for entry in entries] body = "\n".join(lines).encode("utf-8") ts = time.strftime("%Y/%m/%d/%H%M%S", time.gmtime()) key = f"{PREFIX}{ts}-slack-audit-p{page_idx:05d}.json" s3.put_object( Bucket=BUCKET, Key=key, Body=body, ContentType="application/json" ) return key def lambda_handler(event=None, context=None): state = _get_state() cursor = state.get("cursor") params = {"limit": LIMIT} if ACTIONS: params["action"] = [a.strip() for a in ACTIONS.split(",") if a.strip()] if cursor: params["cursor"] = cursor else: # First run (or reset): fetch a recent window by time params["oldest"] = int(time.time()) - LOOKBACK_SEC pages = 0 total = 0 last_cursor = None while pages < MAX_PAGES: data = _http_get(params) _write_page(data, pages) entries = data.get("entries") or [] total += len(entries) # Cursor for next page meta = data.get("response_metadata") or {} next_cursor = meta.get("next_cursor") or data.get("next_cursor") if next_cursor: params = {"limit": LIMIT, "cursor": next_cursor} if ACTIONS: params["action"] = [ a.strip() for a in ACTIONS.split(",") if a.strip() ] last_cursor = next_cursor pages += 1 continue break if last_cursor: _put_state({"cursor": last_cursor}) return { "ok": True, "pages": pages + (1 if total or last_cursor else 0), "entries": total, "cursor": last_cursor, } if __name__ == "__main__": print(lambda_handler())
Configura las variables de entorno de Lambda
- Ve a Configuración > Variables de entorno > Editar > Agregar variable de entorno.
Ingresa las siguientes variables de entorno y reemplázalas por tus valores:
Clave Valor de ejemplo SLACK_AUDIT_TOKENxoxp-...(token de usuario a nivel de la organización conauditlogs:read)S3_BUCKETslack-audit-logsS3_PREFIXslack/audit/STATE_KEYslack/audit/state.jsonLIMIT200MAX_PAGES20LOOKBACK_SECONDS3600HTTP_TIMEOUT60HTTP_RETRIES3RETRY_AFTER_DEFAULT2ACTIONS(opcional, filtro de acción separado por comas) Haz clic en Guardar.
Selecciona la pestaña Configuración. En el panel Configuración general, haz clic en Editar.
Cambia Tiempo de espera a
5 minutes(300 segundos) y haz clic en Guardar.
Crea una programación de EventBridge
- Ve a Amazon EventBridge > Scheduler > Create schedule.
- Proporciona los siguientes detalles de configuración:
- Nombre: Ingresa
slack-audit-1h. - Recurring schedule: Selecciona Rate-based schedule.
- Expresión de la tarifa: Ingresa
1 hours. - Ventana de tiempo flexible: Selecciona Desactivado.
- Nombre: Ingresa
- Haz clic en Siguiente.
- Selecciona el objetivo:
- API de destino: Selecciona AWS Lambda Invoke.
- Función Lambda: Selecciona
slack_audit_to_s3.
- Haz clic en Siguiente.
- Haz clic en Siguiente (omite la configuración opcional).
- Revisa la programación y haz clic en Crear programación.
Opcional: Crea un usuario de IAM con acceso de solo lectura para Google SecOps
- Ve a Consola de AWS > IAM > Usuarios > Crear usuario.
- Proporciona los siguientes detalles de configuración:
- Nombre de usuario: Ingresa
secops-reader. - Tipo de acceso: Selecciona Acceso programático.
- Nombre de usuario: Ingresa
- Haz clic en Siguiente.
- Selecciona Adjuntar políticas directamente.
Haz clic en Crear política. En la pestaña JSON, ingresa lo siguiente:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::slack-audit-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::slack-audit-logs" } ] }Haz clic en Siguiente.
Ingresa el nombre de la política
secops-reader-policy.Haz clic en Crear política.
Vuelve a la página de creación de usuarios, actualiza la lista de políticas y selecciona
secops-reader-policy.Haz clic en Siguiente.
Haz clic en Crear usuario.
Selecciona el usuario creado
secops-reader.Ve a Credenciales de seguridad > Claves de acceso > Crear clave de acceso.
Selecciona Servicio de terceros.
Haz clic en Siguiente.
Haz clic en Crear clave de acceso.
Haz clic en Descargar archivo .csv para guardar las credenciales.
Configura un feed en Google SecOps para transferir registros de auditoría de Slack
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- Haz clic en Configura un feed único.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo,
Slack Audit Logs). - Selecciona Amazon S3 V2 como el Tipo de fuente.
- Selecciona Auditoría de Slack como el Tipo de registro.
Haz clic en Siguiente.
Especifica valores para los siguientes parámetros de entrada:
URI de S3: Ingresa el URI del bucket de S3 con la ruta de acceso del prefijo:
s3://slack-audit-logs/slack/audit/Reemplaza
slack-audit-logspor el nombre real de tu bucket de S3.Opción de eliminación del código fuente: Selecciona la opción de eliminación según tu preferencia.
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: Clave de acceso del usuario con acceso al bucket de S3 (del usuario de IAM
secops-reader).Clave de acceso secreta: Clave secreta del usuario con acceso al bucket de S3 (del usuario de IAM
secops-reader).Espacio de nombres del recurso: Es el espacio de nombres del recurso.
Etiquetas de transferencia: Es la etiqueta que se aplicará a los eventos de este feed.
Haz clic en Siguiente.
Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
action |
metadata.product_event_type |
Se asigna directamente desde el campo action |
actor.type |
principal.labels |
Se asigna directamente con la clave actor.type |
actor.user.email |
principal.user.email_addresses |
Asignado directamente |
actor.user.id |
principal.user.product_object_id |
Asignado directamente |
actor.user.id |
principal.user.userid |
Asignado directamente |
actor.user.name |
principal.user.user_display_name |
Asignado directamente |
actor.user.team |
principal.user.group_identifiers |
Asignado directamente |
context.ip_address |
principal.ip |
Asignado directamente |
context.location.domain |
about.resource.attribute.labels |
Se asigna directamente con la clave context.location.domain |
context.location.id |
about.resource.id |
Asignado directamente |
context.location.name |
about.resource.name |
Asignado directamente |
context.location.name |
about.resource.attribute.labels |
Se asigna directamente con la clave context.location.name |
context.location.type |
about.resource.resource_subtype |
Asignado directamente |
context.session_id |
network.session_id |
Asignado directamente |
context.ua |
network.http.user_agent |
Asignado directamente |
context.ua |
network.http.parsed_user_agent |
Usuario-agente analizado derivado del campo context.ua |
country |
principal.location.country_or_region |
Asignado directamente |
date_create |
metadata.event_timestamp.seconds |
Marca de tiempo de época convertida en objeto de marca de tiempo |
details.inviter.email |
target.user.email_addresses |
Asignado directamente |
details.inviter.id |
target.user.product_object_id |
Asignado directamente |
details.inviter.name |
target.user.user_display_name |
Asignado directamente |
details.inviter.team |
target.user.group_identifiers |
Asignado directamente |
details.reason |
security_result.description |
Se asigna directamente; si es un array, se concatena con comas. |
details.type |
about.resource.attribute.labels |
Se asigna directamente con la clave details.type |
details.type |
security_result.summary |
Asignado directamente |
entity.app.id |
target.resource.id |
Asignado directamente |
entity.app.name |
target.resource.name |
Asignado directamente |
entity.channel.id |
target.resource.id |
Asignado directamente |
entity.channel.name |
target.resource.name |
Asignado directamente |
entity.channel.privacy |
target.resource.attribute.labels |
Se asigna directamente con la clave entity.channel.privacy |
entity.file.filetype |
target.resource.attribute.labels |
Se asigna directamente con la clave entity.file.filetype |
entity.file.id |
target.resource.id |
Asignado directamente |
entity.file.name |
target.resource.name |
Asignado directamente |
entity.file.title |
target.resource.attribute.labels |
Se asigna directamente con la clave entity.file.title |
entity.huddle.date_end |
about.resource.attribute.labels |
Se asigna directamente con la clave entity.huddle.date_end |
entity.huddle.date_start |
about.resource.attribute.labels |
Se asigna directamente con la clave entity.huddle.date_start |
entity.huddle.id |
about.resource.attribute.labels |
Se asigna directamente con la clave entity.huddle.id |
entity.huddle.participants.0 |
about.resource.attribute.labels |
Se asigna directamente con la clave entity.huddle.participants.0 |
entity.huddle.participants.1 |
about.resource.attribute.labels |
Se asigna directamente con la clave entity.huddle.participants.1 |
entity.type |
target.resource.resource_subtype |
Asignado directamente |
entity.user.email |
target.user.email_addresses |
Asignado directamente |
entity.user.id |
target.user.product_object_id |
Asignado directamente |
entity.user.name |
target.user.user_display_name |
Asignado directamente |
entity.user.team |
target.user.group_identifiers |
Asignado directamente |
entity.workflow.id |
target.resource.id |
Asignado directamente |
entity.workflow.name |
target.resource.name |
Asignado directamente |
id |
metadata.product_log_id |
Asignado directamente |
ip |
principal.ip |
Asignado directamente |
user_agent |
network.http.user_agent |
Asignado directamente |
user_id |
principal.user.product_object_id |
Asignado directamente |
username |
principal.user.product_object_id |
Asignado directamente |
metadata.event_type |
El valor predeterminado es USER_COMMUNICATION. Se establece en USER_CREATION si la acción es user_created, USER_LOGIN si la acción es user_login o user_login_failed, USER_LOGOUT si la acción es user_logout, USER_RESOURCE_ACCESS si la acción coincide con file_, USER_RESOURCE_UPDATE_PERMISSIONS si la acción coincide con app_, private_, public_ o auth_policy_, USER_CHANGE_PERMISSIONS si la acción coincide con pref, legal_hold_, workflow_, channel_, user_deactivated, user_reactivated, role_change_ o user_channel_. |
|
metadata.log_type |
Codificado como SLACK_AUDIT |
|
metadata.product_name |
Se establece en Enterprise Grid si existe date_create; de lo contrario, se establece en Audit Logs si existe user_id. |
|
metadata.vendor_name |
Codificado como Slack |
|
extensions.auth.mechanism |
Codificado como REMOTE |
|
extensions.auth.type |
Se establece en SSO si la acción contiene user_login o user_logout; de lo contrario, se establece en MACHINE. |
|
security_result.action |
El valor predeterminado es ALLOW; se establece en BLOCK si la acción es user_login_failed. |
|
target.application |
Se establece en Slack si existe date_create; de lo contrario, se establece en SLACK si existe user_id. |
|
details.url_private |
target.url |
Se asignó desde el registro de cambios |
details.previous_ip_address |
principal.labels |
Se asignó desde el registro de cambios |
details.previous_ua |
principal.labels |
Se asignó desde el registro de cambios |
Registro de cambios
Consulta el registro de cambios de este analizador
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.