Registro de auditoría de Spanner Omni

Spanner Omni escribe registros de auditoría que registran actividades administrativas y accesos a los datos dentro de tus implementaciones de Spanner Omni.

Los registros de auditoría te ayudan a responder "¿quién hizo qué, dónde y cuándo?". Usa los registros de auditoría para ayudar a tus entidades de seguridad, auditoría y cumplimiento a supervisar los datos y sistemas de Spanner Omni en busca de posibles vulnerabilidades o el uso inadecuado de datos externos.

Antes de comenzar

Configura tu implementación de Spanner Omni con encriptación TLS o TLS mutua (mTLS). Si creas una implementación sin encriptación TLS o mTLS, no se producen registros de auditoría. Para obtener instrucciones sobre cómo crear una implementación con encriptación TLS o mTLS, consulta lo siguiente:

Tipos de registros de auditoría

Spanner Omni admite los siguientes tipos de registros de auditoría.

Registros de auditoría de actividad del administrador

Los registros de auditoría de actividad del administrador registran las llamadas a la API que modifican la configuración o los metadatos de tu implementación. Por ejemplo, Spanner Omni escribe registros de auditoría de actividad del administrador cuando un usuario crea una base de datos.

Los registros de auditoría de actividad del administrador se producen de forma predeterminada para las implementaciones configuradas con encriptación TLS y mTLS. No puedes configurarlos, excluirlos ni inhabilitarlos.

Para obtener una lista de los métodos que escriben registros de auditoría de actividad del administrador, consulta Métodos por tipo de permiso.

Registros de auditoría de acceso a los datos

Los registros de auditoría de acceso a los datos registran las llamadas a la API que leen la configuración o los metadatos de tu implementación, así como las llamadas a la API que crean, modifican o leen los datos del usuario. Por ejemplo, Spanner Omni escribe registros de auditoría de acceso a los datos cuando un usuario describe una base de datos, ejecuta una consulta en SQL o ejecuta una instrucción del lenguaje de manipulación de datos (DML).

Estos registros de auditoría de acceso a los datos están inhabilitados de forma predeterminada, ya que pueden ser extensos. Para registrar eventos de acceso a los datos, habilítalos y configúralos de forma explícita. Los registros de auditoría de acceso a los datos ayudan a Atención al cliente de Google a solucionar problemas, por lo que te recomendamos que los habilites.

Para obtener instrucciones sobre cómo configurar estos registros, consulta Configura registros de auditoría de acceso a los datos. Para obtener una lista de los métodos que escriben registros de auditoría de acceso a los datos, consulta Métodos por tipo de permiso.

Registros de auditoría de eventos del sistema

Los registros de auditoría de eventos del sistema registran cuándo el sistema modifica la configuración de tus recursos de Spanner Omni sin la acción directa del usuario. Por ejemplo, Spanner Omni escribe un registro de auditoría de eventos del sistema cuando el sistema optimiza automáticamente una base de datos recién restablecida o crea una copia de seguridad programada.

Los registros de auditoría de eventos del sistema se producen de forma predeterminada para las implementaciones configuradas con encriptación TLS y mTLS. No puedes configurarlos, excluirlos ni inhabilitarlos.

Para obtener más información sobre los eventos del sistema que generan estos registros, consulta Eventos del sistema.

Configura registros de auditoría de acceso a los datos

Para habilitar los registros de auditoría de acceso a los datos, configura la política de Identity and Access Management (IAM) para tu implementación con la CLI de Spanner Omni o la API. Puedes habilitar el registro para tipos de permisos específicos y eximir a usuarios específicos de que se registren.

Permisos necesarios

Para configurar los registros de auditoría de acceso a los datos, necesitas el spanner.instances.setIamPolicy permiso.

Para ver las configuraciones de los registros de auditoría de acceso a los datos, necesitas el spanner.instances.getIamPolicy permiso.

Tipos de permisos

Los métodos de la API verifican los permisos de IAM, y cada permiso tiene un tipo de permiso asociado. Cuando configuras los registros de auditoría de acceso a los datos, especifica qué tipos de permisos registrar. Los tipos de permisos se clasifican de la siguiente manera:

Tipos de permisos de acceso a los datos:

  • ADMIN_READ: Registra los métodos de la API que leen metadatos o información de configuración. Por ejemplo, describir una base de datos.
  • DATA_READ: Registra los métodos de la API que leen datos del usuario. Por ejemplo, ejecutar una consulta en SQL.
  • DATA_WRITE: Registra los métodos de la API que escriben datos del usuario. Por ejemplo, ejecutar una declaración DML.

Tipo de permiso de actividad del administrador:

  • ADMIN_WRITE: Se verifica para los métodos de la API que escriben metadatos o información de configuración (como crear una base de datos). Estos generan registros de auditoría de actividad del administrador y no se pueden configurar.

Para obtener una explicación detallada de los tipos de permisos, consulta Tipos de permisos en la documentación de Registros de auditoría de Cloud.

Configura con la CLI de Spanner Omni

Para configurar los registros de auditoría de acceso a los datos con la CLI de Spanner Omni, crea un archivo de política JSON que enumere los tipos de registros que se habilitarán y los miembros exentos, y, luego, aplica la política.

  1. Crea un archivo de política llamado policy.json:

    {
      "auditConfigs": [
        {
          "auditLogConfigs": [
            {
              "logType": "ADMIN_READ",
              "exemptedMembers": [
                "USER_NAME"
              ]
            },
            {
              "logType": "DATA_WRITE"
            },
            {
              "logType": "DATA_READ"
            }
          ],
          "service": "spanner.googleapis.com"
        }
      ]
    }
    
  2. Aplica la política con el comando spanner instances set-iam-policy:

    spanner instances set-iam-policy default policy.json
    

Para ver la configuración actual de los registros de auditoría de acceso a los datos, ejecuta el siguiente comando:

spanner instances get-iam-policy default

Para obtener más ejemplos de casos de uso de configuración comunes, consulta Configura registros de auditoría de acceso a los datos en la documentación de Registros de auditoría de Cloud.

Eventos del sistema

Spanner Omni genera registros de auditoría de eventos del sistema para la mayoría de los eventos del sistema compatibles con la versión administrada de Spanner. Para obtener más información, consulta Eventos del sistema en la documentación de Spanner.

Spanner Omni admite los eventos del sistema CreateScheduledBackup y OptimizeRestoredDatabase. Sin embargo, Spanner Omni no admite el evento del sistema AutoscaleInstance porque el ajuste de escala automático no está disponible en Spanner Omni.

Archivos de registro de auditoría y retención

Spanner Omni escribe registros de auditoría en el sistema de archivos local de tus servidores de Spanner Omni.

Encuentra los archivos de registro de auditoría con la siguiente ruta de acceso y convención de nombres: BASE_DIR/logs/PROCESS/audit.log.BUCKET.TIMESTAMP.PROCESS_ID

  • BASE_DIR: Es el directorio base especificado cuando se inicia la implementación de Spanner Omni. Para las implementaciones de Kubernetes, el valor predeterminado es /spanner.

  • PROCESS: Spanner Omni ejecuta varios procesos por servidor, como server, zone_services, zonal_zone_services, zonal_server y base_services. Los registros de auditoría se escriben en el directorio correspondiente al proceso que los generó.

  • BUCKET: Los registros de auditoría de actividad del administrador y de eventos del sistema se escriben en el bucket required, mientras que los registros de auditoría de acceso a los datos se escriben en el bucket default.

  • TIMESTAMP: Es la marca de tiempo en la que se creó el archivo.

  • PROCESS_ID: Es el ID del proceso que escribe el registro de auditoría.

Spanner Omni crea un archivo de registro de auditoría nuevo cuando el archivo actual supera los 50 MiB o cuando se reinicia un proceso del servidor. También mantiene automáticamente un vínculo simbólico de BASE_DIR/logs/PROCESS/audit.log.BUCKET al archivo de registro de auditoría que se está escribiendo.

El acceso a los archivos de registro de auditoría locales se controla mediante las listas de control de acceso (ACL) del sistema de archivos. Cualquier persona con permiso para acceder al servidor y acceder a estos archivos puede ver los registros de auditoría.

Te recomendamos que restrinjas el acceso a las VMs de Spanner Omni (por ejemplo, restringiendo el acceso SSH y configurando las ACL del sistema de archivos) para que solo el personal autorizado pueda ver los registros. Para el almacenamiento a largo plazo, la auditoría y el cumplimiento, usa un agente de Logging (como Fluentd) para recopilar y exportar los registros de auditoría a un sistema de Logging externo, como AWS CloudWatch, Grafana Loki, Elasticsearch, Datadog, Splunk o Cloud Monitoring.

Retención de archivos

Spanner Omni aplica políticas de retención basadas en el tamaño y la antigüedad para los archivos de registro de auditoría locales:

  • Límite de tamaño: Los archivos de registro de auditoría se retienen hasta que su uso total del disco supere 1 GB. Si se usa un disco independiente para el directorio de registros, los archivos de registro de auditoría reciben una cuota del 25% del espacio total en ese disco.

  • Límite de antigüedad: Los archivos de registro de auditoría se retienen hasta por 14 días, siempre que no se supere el límite de tamaño.

Cuando se alcanza cualquiera de los límites, Spanner Omni borra primero los archivos de registro más antiguos. Si necesitas retener los registros de auditoría durante más de 14 días, expórtalos a un sistema de Logging externo.

Estructura de entrada de registro de auditoría

Las entradas de registro de auditoría de Spanner Omni tienen formato JSON y usan la misma definición estructural que Spanner. Para obtener más información, consulta Estructura de entrada de registro auditoría en la documentación de Registros de auditoría de Cloud.

Nombre del registro

A diferencia de la versión administrada de Spanner para varios usuarios, Spanner Omni se ejecuta como una implementación de un solo usuario en servidores dedicados. Como no hay otros usuarios ni proyectos en estos servidores, todas las entradas de registro de auditoría usan el identificador de proyecto default.

projects/default/logs/cloudaudit.googleapis.com/activity
projects/default/logs/cloudaudit.googleapis.com/data_access
projects/default/logs/cloudaudit.googleapis.com/system_event

Identidades de los emisores

Los registros de auditoría registran la identidad del usuario que realizó la operación registrada. La identidad del emisor se almacena en el campo AuthenticationInfo del AuditLog.

En Spanner Omni, la identidad del emisor es el nombre de usuario del usuario autenticado que realizó la llamada a la API. Para obtener información sobre cómo crear y administrar usuarios, consulta Autenticación y autorización.

Dirección IP del emisor

Spanner Omni no admite el registro de la dirección IP del emisor en los registros de auditoría.

Métodos por tipo de permiso

Cuando llamas a un método de la API, Spanner Omni genera un registro de auditoría según el tipo de permiso necesario para realizar el método. Los métodos que requieren permisos ADMIN_READ, DATA_READ o DATA_WRITE generan registros de auditoría de acceso a los datos, mientras que los métodos que requieren permisos ADMIN_WRITE generan registros de auditoría de actividad del administrador.

Spanner Omni admite la mayoría de los métodos de la API de Cloud Spanner. Para obtener la clasificación de registro de auditoría de los métodos compartidos por Spanner y Spanner Omni, consulta Métodos por tipo de permiso en la documentación de Spanner.

Spanner Omni también presenta métodos de API únicos que generan registros de auditoría. Por lo general, los métodos marcados como operaciones de larga duración (LRO) generan dos entradas de registro de auditoría: una cuando comienza la operación y otra cuando finaliza. Para obtener más información, consulta Operaciones de larga duración en la documentación de Registros de auditoría de Cloud.

Tipo de permiso Métodos
ADMIN_READ google.spanner.omni.v1.OmniAdmin.GetLocation
google.spanner.omni.v1.OmniAdmin.ListLocation
google.spanner.omni.v1.OmniAdmin.GetLocationDistance
google.spanner.omni.v1.OmniAdmin.ListLocationDistance
google.spanner.omni.v1.OmniAdmin.GetZone
google.spanner.omni.v1.OmniAdmin.ListZones
google.spanner.omni.v1.OmniAdmin.GetServer
google.spanner.omni.v1.OmniAdmin.ListServers
google.spanner.omni.v1.OmniAdmin.GetDeployment
google.spanner.omni.v1.OmniAdmin.ListBackupDescriptors
google.spanner.omni.v1.OmniAdmin.GetExternalStorage
google.spanner.omni.v1.OmniAdmin.ListExternalStorages
google.spanner.omni.v1.OmniAdmin.GetIamPolicy
google.spanner.omni.v1.UsersService.GetUser
google.spanner.omni.v1.UsersService.ListUsers
google.spanner.omni.v1.UsersService.GetRole
google.spanner.omni.v1.UsersService.ListRoles
ADMIN_WRITE google.spanner.omni.v1.OmniAdmin.CreateLocation
google.spanner.omni.v1.OmniAdmin.DeleteLocation
google.spanner.omni.v1.OmniAdmin.CreateLocationDistance
google.spanner.omni.v1.OmniAdmin.UpdateLocationDistance
google.spanner.omni.v1.OmniAdmin.DeleteLocationDistance
google.spanner.omni.v1.OmniAdmin.CreateZone
google.spanner.omni.v1.OmniAdmin.DeleteZone
google.spanner.omni.v1.OmniAdmin.CreateServer
google.spanner.omni.v1.OmniAdmin.DeleteServer
google.spanner.omni.v1.OmniAdmin.CreateExternalStorage
google.spanner.omni.v1.OmniAdmin.DeleteExternalStorage
google.spanner.omni.v1.OmniAdmin.SetIamPolicy
google.spanner.omni.v1.OmniAdmin.ImportBackup (LRO)
google.spanner.omni.v1.UsersService.CreateUser
google.spanner.omni.v1.UsersService.DeleteUser
google.spanner.omni.v1.UsersService.UpdateUser
DATA_READ google.spanner.omni.v1.ImportExportService.ExportDatabase (LRO)
DATA_WRITE google.spanner.omni.v1.ImportExportService.ImportDatabase (LRO)

Métodos que no producen registros de auditoría

Spanner Omni excluye los mismos métodos del registro de auditoría que Spanner. Estos métodos se excluyen porque son métodos de gran volumen que implican costos significativos de generación y almacenamiento de registros, tienen un valor de auditoría bajo o porque otro registro de auditoría o de plataforma ya proporciona cobertura del método. Para obtener una lista completa de estos métodos excluidos, consulta Métodos exentos en la documentación de Spanner.

Además, el método google.spanner.omni.v1.LoginService.Login no produce registros de auditoría porque precede a las verificaciones de autenticación y autorización.

Duración del procesamiento

El campo de duración del procesamiento en un registro de auditoría registra la duración del procesamiento de la API, como la duración de la ejecución de una consulta en SQL, no la demora de la escritura del registro de auditoría. Para obtener más información, consulta Duración del procesamiento en la documentación de Spanner.

Comparación con la versión administrada de Spanner

Si bien el registro de auditoría en Spanner Omni comparte conceptos básicos y formato con Spanner, existen varias diferencias clave en la forma en que se almacenan, configuran y administran los registros.

Diferencias

  • Destino del registro: Spanner Omni escribe registros de auditoría directamente en el sistema de archivos local de tus servidores de Spanner Omni, en lugar de exportarlos a Cloud Logging.

  • Configuración: En Spanner, configuras los registros de auditoría de acceso a los datos a nivel del proyecto con la Google Cloud consola, la Google Cloud CLI o la API de Identity and Access Management. En Spanner Omni, configuras los registros de auditoría de acceso a los datos con la CLI de Spanner Omni o la API de Spanner Omni.

  • Encriptación TLS y mTLS: Spanner aplica la encriptación TLS de forma predeterminada y no se puede inhabilitar. En Spanner Omni, si eliges realizar la implementación sin encriptación TLS o mTLS, no se producen registros de auditoría.

  • Retención: Los registros de auditoría de Spanner se retienen en Logging según la configuración de retención de Logging. Spanner Omni retiene los archivos de registro de auditoría locales hasta por 14 días o hasta que se alcancen los límites de tamaño del disco, y depende de ti exportar los registros a un sistema externo para el almacenamiento a largo plazo.

Similitudes

  • Formato de registro: Ambos productos escriben registros de auditoría en formato JSON siguiendo la estructura Google Cloud AuditLog de AuditLog.

  • Configuración de acceso a los datos: Ambos productos te permiten habilitar los registros de auditoría de acceso a los datos de forma detallada por tipo de permiso (ADMIN_READ, DATA_READ, DATA_WRITE) y admiten la exención de usuarios específicos de que se registren.

¿Qué sigue?