Recopila registros de 1Password

Versión del analizador: 5.0

Compatible con:

En este documento, se explica cómo transferir registros de 1Password a Google Security Operations con Google Cloud Storage V2.

1Password es una plataforma de administración de contraseñas que ayuda a los equipos a almacenar, compartir y administrar credenciales, secretos e información sensible de forma segura. La API de Events de 1Password proporciona acceso a los datos de intentos de acceso y uso de elementos de tu cuenta de 1Password Business.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Un proyecto de GCP con la API de Cloud Storage habilitada
  • Permisos para crear y administrar buckets de GCS
  • Permisos para administrar políticas de IAM en buckets de GCS
  • Permisos para crear servicios de Cloud Run, temas de Pub/Sub y trabajos de Cloud Scheduler
  • Una cuenta de 1Password Business
  • Un rol de propietario o administrador en tu cuenta de 1Password

Crea un bucket de Google Cloud Storage

  1. Ve a la consola de Google Cloud.
  2. Selecciona tu proyecto o crea uno nuevo.
  3. En el menú de navegación, ve a Cloud Storage > Buckets.
  4. Haz clic en Crear bucket.
  5. Proporciona los siguientes detalles de configuración:

    Parámetro de configuración Valor
    Asigna un nombre a tu bucket Ingresa un nombre único a nivel global (por ejemplo, onepassword-secops-logs).
    Tipo de ubicación Elige una en función de tus necesidades (región, birregional o multirregional).
    Ubicación Selecciona la ubicación (por ejemplo, us-central1).
    Clase de almacenamiento Estándar (recomendado para los registros a los que se accede con frecuencia)
    Control de acceso Uniforme (recomendado)
    Herramientas de protección Opcional: Habilita el control de versiones de objetos o la política de retención
  6. Haz clic en Crear.

Recopila las credenciales de 1Password

Configura la integración de los informes de eventos

  1. Accede a tu cuenta en 1Password.com.
  2. Selecciona Integraciones en la barra lateral.
  3. Si ya configuraste otras integraciones, selecciona Directorio en la página Integraciones.
  4. En la sección Informes de eventos, selecciona Otro.
  5. En el campo Nombre, ingresa un nombre para la integración (por ejemplo, Google SecOps Integration).
  6. Haz clic en Agregar integración.

Crea un token del portador

  1. En la página de detalles de la integración, haz clic en Agregar un token del portador.
  2. Proporciona los siguientes detalles de configuración:
    • Nombre del token: Ingresa un nombre descriptivo (por ejemplo, SecOps GCS Collector - SignIn and ItemUsage).
    • Vence después de: Selecciona el período de vencimiento según tu preferencia. Selecciona Nunca para un token que no venza, o elige 30 días, 90 días o 180 días.
    • Eventos para informar: Selecciona las siguientes casillas de verificación:
      • Intentos de acceso
      • Eventos de uso de elementos
  3. Haz clic en Issue Token.
  4. En la página Guarda tu token, haz clic en Guardar en 1Password o copia el token y guárdalo en una ubicación segura.

  5. Haz clic en Ver detalles de la integración para confirmar que la integración esté activa.

Determina la URL base de la API de Events

La URL base depende del servidor que aloja tu cuenta de 1Password:

Si tu cuenta está alojada en La URL base de tu API de Events es
1password.com https://events.1password.com
ent.1password.com https://events.ent.1password.com
1password.ca https://events.1password.ca
1password.eu https://events.1password.eu

Prueba el acceso a la API

  • Prueba tus credenciales antes de continuar con la integración:

    # Replace with your actual bearer token and base URL
    BEARER_TOKEN="<your-bearer-token>"
    API_BASE="https://events.1password.com"
    
    # Test API access using the introspect endpoint
    curl -v \
        -H "Authorization: Bearer $BEARER_TOKEN" \
        "$API_BASE/api/v2/auth/introspect"
    

Una respuesta correcta devuelve un objeto JSON con el campo features que enumera los tipos de eventos a los que puede acceder tu token (por ejemplo, ["signinattempts", "itemusages"]).

Crea una cuenta de servicio para la función de Cloud Run

La función de Cloud Run necesita una cuenta de servicio con permisos para escribir en el bucket de GCS y que Pub/Sub la invoque.

Crear cuenta de servicio

  1. En Google Cloud Console, ve a IAM y administración > Cuentas de servicio.
  2. Haz clic en Crear cuenta de servicio.
  3. Proporciona los siguientes detalles de configuración:
    • Nombre de la cuenta de servicio: Ingresa onepassword-logs-collector-sa
    • Descripción de la cuenta de servicio: Ingresa Service account for Cloud Run function to collect 1Password logs
  4. Haz clic en Crear y continuar.
  5. En la sección Otorga acceso al proyecto a esta cuenta de servicio, agrega los siguientes roles:
    1. Haz clic en Selecciona un rol.
    2. Busca y selecciona Administrador de objetos de Storage.
    3. Haz clic en + Agregar otro rol.
    4. Busca y selecciona Invocador de Cloud Run.
    5. Haz clic en + Agregar otro rol.
    6. Busca y selecciona Invocador de Cloud Functions.
  6. Haz clic en Continuar.
  7. Haz clic en Listo.

Estos roles son necesarios para lo siguiente:

  • Administrador de objetos de Storage: Escribe registros en el bucket de GCS y administra archivos de estado
  • Invocador de Cloud Run: Permite que Pub/Sub invoque la función
  • Invocador de Cloud Functions: Permite la invocación de funciones

Otorga permisos de IAM en el bucket de GCS

Otorga permisos de escritura a la cuenta de servicio en el bucket de GCS:

  1. Ve a Cloud Storage > Buckets.
  2. Haz clic en tu bucket (onepassword-secops-logs).
  3. Ve a la pestaña Permisos.
  4. Haz clic en Otorgar acceso.
  5. Proporciona los siguientes detalles de configuración:
    • Agregar principales: Ingresa onepassword-logs-collector-sa@PROJECT_ID.iam.gserviceaccount.com
    • Asignar roles: Selecciona Administrador de objetos de Storage
  6. Haz clic en Guardar.

Crea un tema de Pub/Sub

Crea un tema de Pub/Sub en el que Cloud Scheduler publicará y al que se suscribirá la función de Cloud Run.

  1. En Google Cloud Console, ve a Pub/Sub > Temas.
  2. Haz clic en Crear tema.
  3. Proporciona los siguientes detalles de configuración:
    • ID del tema: Ingresa onepassword-logs-trigger
    • Deja el resto de la configuración con sus valores predeterminados.
  4. Haz clic en Crear.

Crea una función de Cloud Run para recopilar registros

La función de Cloud Run se activará con mensajes de Pub/Sub de Cloud Scheduler para recuperar los registros de intentos de acceso y uso de elementos de la API de eventos de 1Password y escribirlos en GCS.

  1. En Google Cloud Console, ve a Cloud Run.
  2. Haz clic en Crear servicio.
  3. Selecciona Función (usa un editor directo para crear una función).
  4. En la sección Configurar, proporciona los siguientes detalles de configuración:

    Parámetro de configuración Valor
    Nombre del servicio onepassword-logs-collector
    Región Selecciona la región que coincida con tu bucket de GCS (por ejemplo, us-central1).
    Tiempo de ejecución Selecciona Python 3.12 o una versión posterior.
  5. En la sección Activador (opcional), haz lo siguiente:

    1. Haz clic en + Agregar activador.
    2. Selecciona Cloud Pub/Sub.
    3. En Selecciona un tema de Cloud Pub/Sub, elige onepassword-logs-trigger.
    4. Haz clic en Guardar.
  6. En la sección Autenticación, haz lo siguiente:

    1. Selecciona Necesita autenticación.
    2. Verifica la Administración de identidades y accesos (IAM).
  7. Desplázate hacia abajo y expande Contenedores, redes y seguridad.

  8. Ve a la pestaña Seguridad:

    • Cuenta de servicio: Selecciona onepassword-logs-collector-sa
  9. Ve a la pestaña Contenedores:

    1. Haz clic en Variables y secretos.
    2. Haz clic en + Agregar variable para cada variable de entorno:

      Nombre de la variable Valor de ejemplo Descripción
      GCS_BUCKET onepassword-secops-logs Nombre del bucket de GCS
      GCS_PREFIX onepassword Prefijo para los archivos de registro
      STATE_KEY onepassword/state.json Ruta de acceso al archivo de estado
      OP_API_BASE https://events.1password.com URL base de la API de Events de 1Password
      OP_BEARER_TOKEN <your-bearer-token> Token del portador de la API de Events de 1Password
      MAX_RECORDS 10000 Cantidad máxima de registros por extremo por ejecución
      PAGE_SIZE 1000 Registros por página (máx. 1,000)
      LOOKBACK_HOURS 24 Período de visualización inicial en horas
  10. En la sección Variables y Secrets, desplázate hasta Solicitudes:

    • Tiempo de espera de la solicitud: Ingresa 600 segundos (10 minutos).
  11. Ve a la pestaña Configuración:

    • En la sección Recursos, haz lo siguiente:
      • Memoria: Selecciona 512 MiB o más.
      • CPU: Selecciona 1.
  12. En la sección Escalamiento de revisión, haz lo siguiente:

    • Cantidad mínima de instancias: Ingresa 0.
    • Cantidad máxima de instancias: Ingresa 100 (o ajusta según la carga esperada).
  13. Haz clic en Crear.

  14. Espera a que se cree el servicio (de 1 a 2 minutos).

  15. Después de crear el servicio, se abrirá automáticamente el editor de código intercalado.

Agregar el código de función

  1. Ingresa main en el campo Punto de entrada.
  2. En el editor de código intercalado, crea dos archivos:

    • Primer archivo: main.py:

      import functions_framework
      from google.cloud import storage
      import json
      import os
      import urllib3
      from datetime import datetime, timezone, timedelta
      import time
      
      # Initialize HTTP client with timeouts
      http = urllib3.PoolManager(
        timeout=urllib3.Timeout(connect=5.0, read=30.0),
        retries=False,
      )
      
      # Initialize Storage client
      storage_client = storage.Client()
      
      # Environment variables
      GCS_BUCKET = os.environ.get('GCS_BUCKET')
      GCS_PREFIX = os.environ.get('GCS_PREFIX', 'onepassword')
      STATE_KEY = os.environ.get('STATE_KEY', 'onepassword/state.json')
      API_BASE = os.environ.get('OP_API_BASE')
      BEARER_TOKEN = os.environ.get('OP_BEARER_TOKEN')
      MAX_RECORDS = int(os.environ.get('MAX_RECORDS', '10000'))
      PAGE_SIZE = int(os.environ.get('PAGE_SIZE', '1000'))
      LOOKBACK_HOURS = int(os.environ.get('LOOKBACK_HOURS', '24'))
      
      # 1Password Events API v2 endpoints for sign-in and item usage
      ENDPOINTS = {
        'signinattempts': '/api/v2/signinattempts',
        'itemusages': '/api/v2/itemusages',
      }
      
      def parse_datetime(value: str) -> datetime:
        """Parse RFC 3339 datetime string to datetime object."""
        if value.endswith('Z'):
          value = value[:-1] + '+00:00'
        return datetime.fromisoformat(value)
      
      @functions_framework.cloud_event
      def main(cloud_event):
        """
        Cloud Run function triggered by Pub/Sub to fetch 1Password
        sign-in attempt and item usage logs and write them to GCS
        as NDJSON.
        """
        if not all([GCS_BUCKET, API_BASE, BEARER_TOKEN]):
          print('Error: Missing required environment variables '
              '(GCS_BUCKET, OP_API_BASE, OP_BEARER_TOKEN)')
          return
      
        try:
          bucket = storage_client.bucket(GCS_BUCKET)
      
          # Load state (stores cursors per endpoint)
          state = load_state(bucket, STATE_KEY)
      
          now = datetime.now(timezone.utc)
          total_records = 0
      
          for event_type, path in ENDPOINTS.items():
            print(f'--- Processing endpoint: {event_type} ---')
      
            saved_cursor = state.get(f'cursor_{event_type}')
      
            records, last_cursor = fetch_endpoint(
              api_base=API_BASE,
              path=path,
              bearer_token=BEARER_TOKEN,
              saved_cursor=saved_cursor,
              lookback_hours=LOOKBACK_HOURS,
              page_size=PAGE_SIZE,
              max_records=MAX_RECORDS,
            )
      
            if records:
              timestamp = now.strftime('%Y%m%d_%H%M%S')
              object_key = (f'{GCS_PREFIX}/'
                      f'{event_type}_{timestamp}.ndjson')
              blob = bucket.blob(object_key)
      
              ndjson = '\n'.join(
                json.dumps(r, ensure_ascii=False) for r in records
              ) + '\n'
              blob.upload_from_string(
                ndjson, content_type='application/x-ndjson'
              )
      
              print(f'Wrote {len(records)} {event_type} records '
                  f'to gs://{GCS_BUCKET}/{object_key}')
      
            # Save cursor even if no records (for next poll)
            if last_cursor:
              state[f'cursor_{event_type}'] = last_cursor
      
            total_records += len(records)
      
          # Save state with all cursors
          state['last_run'] = now.isoformat()
          save_state(bucket, STATE_KEY, state)
      
          print(f'Successfully processed {total_records} total records')
      
        except Exception as e:
          print(f'Error processing logs: {str(e)}')
          raise
      
      def load_state(bucket, key):
        """Load state from GCS."""
        try:
          blob = bucket.blob(key)
          if blob.exists():
            state_data = blob.download_as_text()
            return json.loads(state_data)
        except Exception as e:
          print(f'Warning: Could not load state: {e}')
        return {}
      
      def save_state(bucket, key, state: dict):
        """Save state to GCS."""
        try:
          blob = bucket.blob(key)
          blob.upload_from_string(
            json.dumps(state, indent=2),
            content_type='application/json',
          )
          print(f'Saved state: {json.dumps(state)}')
        except Exception as e:
          print(f'Warning: Could not save state: {e}')
      
      def fetch_endpoint(api_base, path, bearer_token, saved_cursor,
                lookback_hours, page_size, max_records):
        """
        Fetch events from a single 1Password Events API v2 endpoint.
      
        The 1Password Events API uses cursor-based pagination with POST
        requests. The first request sends a ResetCursor object with
        optional start_time and limit. Subsequent requests send the
        cursor returned from the previous response.
      
        Args:
          api_base: Events API base URL
          path: Endpoint path
          bearer_token: JWT bearer token
          saved_cursor: Cursor from previous run (or None)
          lookback_hours: Hours to look back on first run
          page_size: Max events per page (1-1000)
          max_records: Max total events per run
      
        Returns:
          Tuple of (records list, last_cursor string)
        """
        url = f'{api_base.rstrip("/")}{path}'
      
        headers = {
          'Authorization': f'Bearer {bearer_token}',
          'Content-Type': 'application/json',
          'Accept': 'application/json',
        }
      
        records = []
        cursor = saved_cursor
        page_num = 0
        backoff = 1.0
      
        while True:
          page_num += 1
      
          if len(records) >= max_records:
            print(f'Reached max_records limit ({max_records})')
            break
      
          # Build request body
          if cursor:
            # Continuing cursor: resume from last position
            body = json.dumps({'cursor': cursor})
          else:
            # ResetCursor: first request or no saved state
            start_time = (
              datetime.now(timezone.utc)
              - timedelta(hours=lookback_hours)
            )
            body = json.dumps({
              'limit': page_size,
              'start_time': start_time.strftime(
                '%Y-%m-%dT%H:%M:%SZ'
              ),
            })
      
          try:
            response = http.request(
              'POST', url, body=body, headers=headers,
            )
      
            # Handle rate limiting (600 req/min, 30000 req/hour)
            if response.status == 429:
              retry_after = int(
                response.headers.get(
                  'Retry-After', str(int(backoff))
                )
              )
              print(f'Rate limited (429). Retrying after '
                  f'{retry_after}s...')
              time.sleep(retry_after)
              backoff = min(backoff * 2, 60.0)
              continue
      
            backoff = 1.0
      
            if response.status != 200:
              response_text = response.data.decode('utf-8')
              print(f'HTTP Error {response.status}: '
                  f'{response_text}')
              break
      
            data = json.loads(response.data.decode('utf-8'))
      
            page_items = data.get('items', [])
            cursor = data.get('cursor')
            has_more = data.get('has_more', False)
      
            if page_items:
              print(f'Page {page_num}: Retrieved '
                  f'{len(page_items)} events')
              records.extend(page_items)
      
            if not has_more:
              print(f'No more pages (has_more=false)')
              break
      
            if not cursor:
              print(f'No cursor returned, stopping')
              break
      
          except urllib3.exceptions.HTTPError as e:
            print(f'HTTP error: {str(e)}')
            break
          except Exception as e:
            print(f'Error fetching events: {str(e)}')
            break
      
        print(f'Retrieved {len(records)} total records '
            f'from {page_num} pages')
        return records, cursor
      
    • Segundo archivo: requirements.txt:

      functions-framework==3.*
      google-cloud-storage==2.*
      urllib3>=2.0.0
      
  3. Haz clic en Implementar para guardar y, luego, implementar la función.

  4. Espera a que se complete la implementación (de 2 a 3 minutos).

Crea un trabajo de Cloud Scheduler

Cloud Scheduler publicará mensajes en el tema de Pub/Sub a intervalos regulares, lo que activará la función de Cloud Run.

  1. En Google Cloud Console, ve a Cloud Scheduler.
  2. Haz clic en Crear trabajo.
  3. Proporciona los siguientes detalles de configuración:

    Parámetro de configuración Valor
    Nombre onepassword-logs-collector-hourly
    Región Selecciona la misma región que la función de Cloud Run
    Frecuencia 0 * * * * (cada hora, en punto)
    Zona horaria Selecciona la zona horaria (se recomienda UTC)
    Tipo de objetivo Pub/Sub
    Tema Seleccionar onepassword-logs-trigger
    Cuerpo del mensaje {} (objeto JSON vacío)
  4. 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 * * * * Alto volumen y baja latencia
Cada 15 minutos */15 * * * * Volumen medio
Cada 1 hora 0 * * * * Estándar (recomendado)
Cada 6 horas 0 */6 * * * Procesamiento por lotes de bajo volumen
Diario 0 0 * * * Recopilación de datos históricos

Prueba la integración

  1. En la consola de Cloud Scheduler, busca onepassword-logs-collector-hourly.
  2. Haz clic en Forzar ejecución para activar el trabajo de forma manual.
  3. Espera unos segundos.
  4. Ve a Cloud Run > Servicios.
  5. Haz clic en onepassword-logs-collector.
  6. Haz clic en la pestaña Registros.
  7. Verifica que la función se haya ejecutado correctamente. Busca lo siguiente:

    --- Processing endpoint: signinattempts ---
    Page 1: Retrieved X events
    Wrote X signinattempts records to gs://onepassword-secops-logs/onepassword/signinattempts_YYYYMMDD_HHMMSS.ndjson
    --- Processing endpoint: itemusages ---
    Page 1: Retrieved X events
    Wrote X itemusages records to gs://onepassword-secops-logs/onepassword/itemusages_YYYYMMDD_HHMMSS.ndjson
    Successfully processed X total records
    
  8. Ve a Cloud Storage > Buckets.

  9. Haz clic en onepassword-secops-logs.

  10. Navega a la carpeta onepassword/:

  11. Verifica que se hayan creado archivos .ndjson nuevos con la marca de tiempo actual.

Si ves errores en los registros, haz lo siguiente:

  • HTTP 401: Verifica el token del portador en la variable de entorno OP_BEARER_TOKEN. Es posible que el token haya vencido.
  • HTTP 429: Límite de frecuencia. La función vuelve a intentarlo automáticamente con retirada. La API de Events de 1Password permite 600 solicitudes por minuto y 30,000 solicitudes por hora.
  • Faltan variables de entorno: Verifica que todas las variables requeridas estén configuradas en la configuración de la función de Cloud Run.
  • No se devolvieron registros: Verifica que tu token del portador tenga acceso a los tipos de eventos solicitados con el extremo de introspección.

Recupera la cuenta de servicio de Google SecOps

Google SecOps usa una cuenta de servicio única para leer datos de tu bucket de GCS. Debes otorgar acceso a tu bucket a esta cuenta de servicio.

Obtén el correo electrónico de la cuenta de servicio

  1. Ve a Configuración > Administración de datos > Feeds. Si estás en una plataforma solo de SIEM, ve a Configuración > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. Haz clic en Configura un feed único.
  4. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, 1Password Sign-In and Item Usage Logs).
  5. Selecciona Google Cloud Storage V2 como el Tipo de fuente.
  6. Selecciona 1Password como el Tipo de registro.
  7. Haz clic en Obtener cuenta de servicio. Se mostrará un correo electrónico único de la cuenta de servicio, por ejemplo:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Copia esta dirección de correo electrónico para usarla en el siguiente paso.

  9. Haz clic en Siguiente.

  10. Especifica valores para los siguientes parámetros de entrada:

    • URL del bucket de almacenamiento: Ingresa el URI del bucket de GCS con la ruta de acceso del prefijo:

      gs://onepassword-secops-logs/onepassword/
      
    • Opción de eliminación del código fuente: Selecciona la opción de eliminación según tu preferencia:

      • Nunca: Nunca borra ningún archivo después de las transferencias (se recomienda para las pruebas).
      • Borrar archivos transferidos: Borra los archivos después de que se transfirieron correctamente.
      • Borrar los archivos transferidos y los directorios vacíos: Borra los archivos y los directorios vacíos después de que se transfirieron correctamente.

    • Antigüedad máxima del archivo: Incluye los archivos modificados en la última cantidad de días (el valor predeterminado es 180 días).

    • 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.

  11. Haz clic en Siguiente.

  12. Revisa la configuración de tu feed de noticias nuevo en la pantalla Finalizar y, luego, haz clic en Enviar.

Otorga permisos de IAM a la cuenta de servicio de Google SecOps

La cuenta de servicio de Google SecOps necesita el rol de visualizador de objetos de Storage en tu bucket de GCS.

  1. Ve a Cloud Storage > Buckets.
  2. Haz clic en onepassword-secops-logs.
  3. Ve a la pestaña Permisos.
  4. Haz clic en Otorgar acceso.
  5. Proporciona los siguientes detalles de configuración:
    • Agregar principales: Pega el correo electrónico de la cuenta de servicio de Google SecOps.
    • Asigna roles: Selecciona Visualizador de objetos de Storage.
  6. Haz clic en Guardar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
categoría security_result.category_details El valor se toma del campo category en el registro sin procesar.
client.app_name principal.application El valor se toma del campo client.app_name en el registro sin procesar.
client.app_version metadata.product_version El valor se toma del campo client.app_version en el registro sin procesar.
client.ip_address principal.ip El valor se toma del campo client.ip_address en el registro sin procesar.
client.os_name principal.platform El valor se toma del campo client.os_name del registro sin procesar y se asigna al valor de la plataforma de UDM correspondiente (LINUX, WINDOWS, MAC).
client.os_version principal.platform_version El valor se toma del campo client.os_version en el registro sin procesar.
client.platform_name principal.resource.attribute.labels El valor se toma del campo client.platform_name en el registro sin procesar.
client.platform_version principal.asset.platform_software.platform_version El valor se toma del campo client.platform_version en el registro sin procesar.
País principal.location.country_or_region El valor se toma del campo country en el registro sin procesar si location.country no está presente.
item_uuid security_result.about.resource.attribute.labels El valor se toma del campo item_uuid en el registro sin procesar.
location.city principal.location.city El valor se toma del campo location.city en el registro sin procesar.
location.country principal.location.country_or_region El valor se toma del campo location.country en el registro sin procesar.
location.latitude principal.location.region_latitude El valor se toma del campo location.latitude en el registro sin procesar.
location.longitude principal.location.region_longitude El valor se toma del campo location.longitude en el registro sin procesar.
location.region principal.location.name El valor se toma del campo location.region en el registro sin procesar.
session.ip principal.ip El valor se toma del campo session.ip en el registro sin procesar.
session_uuid network.session_id El valor se toma del campo session_uuid en el registro sin procesar.
target_user.email target.user.email_addresses El valor se toma del campo target_user.email en el registro sin procesar.
target_user.uuid target.user.userid El valor se toma del campo target_user.uuid en el registro sin procesar.
timestamp metadata.event_timestamp El valor se toma del campo timestamp en el registro sin procesar y se convierte en segundos y nanosegundos.
tipo additional.fields El valor se toma del campo type en el registro sin procesar.
user.email principal.user.email_addresses El valor se toma del campo user.email en el registro sin procesar.
user.name principal.user.user_display_name El valor se toma del campo user.name en el registro sin procesar.
used_version additional.fields El valor se toma del campo used_version en el registro sin procesar.
uuid principal.resource.attribute.labels El valor se toma del campo uuid en el registro sin procesar.
vault_uuid security_result.about.resource.attribute.labels El valor se toma del campo vault_uuid en el registro sin procesar.
N/A extensions.auth Se crea un objeto vacío para este campo.
N/A metadata.event_type Se establece en USER_LOGIN si la categoría es success o firewall_reported_success, en STATUS_UPDATE si no hay información del usuario presente y en USER_UNCATEGORIZED de lo contrario.
N/A metadata.log_type Se define en ONEPASSWORD.
N/A metadata.product_name Se define en ONEPASSWORD.
N/A metadata.vendor_name Se define en ONEPASSWORD.
N/A security_result.action Se establece en ALLOW si la categoría es success o firewall_reported_success, BLOCK si la categoría es credentials_failed, mfa_failed, modern_version_failed o firewall_failed, y se deja vacío en caso contrario.
lt event.idm.read_only_udm.metadata.product_event_type Asignado desde el registro de cambios
item.actor_details.uuid principal.user.userid Asignado desde el registro de cambios
item.actor_details.name principal.user.user_display_name Asignado desde el registro de cambios
item.actor_details.email principal.email Asignado desde el registro de cambios
item.actor_uuid security_result.about.resource.attribute.labels Asignado desde el registro de cambios
item.object_type additional.fields Asignado desde el registro de cambios
item.object_uuid security_result.about.resource.attribute.labels Asignado desde el registro de cambios
item.aux_info additional.fields Asignado desde el registro de cambios
item.aux_uuid security_result.about.resource.attribute.labels Asignado desde el registro de cambios
item.session.uuid network.session_id Asignado desde el registro de cambios
item.session.device_uuid target.resource.product_object_id Asignado desde el registro de cambios
item.session.ip principal.ip Asignado desde el registro de cambios
target_user.name target.user.user_display_name Asignado desde el registro de cambios
uuid principal.userid Asignado desde el registro de cambios
type","action","used_version", additional.fields Asignado desde el registro de cambios
target_user.uuid target.user.product_object_id Asignado 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.