Información sobre los registros de auditoría

En esta página, se describen en detalle las entradas del registro de auditoría: su estructura, cómo leerlas y cómo interpretarlas.

Cloud Audit Logging mantiene tres registros de auditoría por cada proyecto, carpeta y organización de GCP:

  • Registros de auditoría de eventos del sistema
  • Registros de auditoría de actividad del administrador
  • Registros de auditoría de acceso a los datos

Para ver una descripción general de Cloud Audit Logging, consulta Cloud Audit Logging.

Visualiza los registros de auditoría

Tienes varias opciones para ver las entradas del registro de auditoría:

Visor básico

Para mostrar las entradas de los registros de auditoría, puedes usar la interfaz básica del visor de registros de GCP Console. Sigue estos pasos:

  1. Dirígete a la página Stackdriver Logging > Registros (Visor de registros) en GCP Console:

    Ir a la página Visor de registros

  2. Selecciona un proyecto de GCP existente en la parte superior de la página o crea un proyecto nuevo.

  3. En el primer menú desplegable, selecciona el tipo de recurso para ver sus registros de auditoría. Puedes seleccionar un recurso específico o Global para ver todos los recursos.

  4. En el segundo menú desplegable, selecciona el tipo de registro que deseas ver: activity en el caso de los registros de auditoría de actividad del administrador, data_access en el caso de los registros de auditoría de acceso a los datos y system_events en el caso de los registros de eventos del sistema.

    Si no ves ninguna de estas opciones, entonces no hay registros de auditoría de ese tipo disponibles en el proyecto.

Visor avanzado

Para mostrar las entradas de los registros de auditoría, puedes usar la interfaz avanzada del visor de registros de GCP Console. Sigue estos pasos:

  1. Dirígete a la página Stackdriver Logging > Registros (Visor de registros) en GCP Console:

    Ir a la página Visor de registros

  2. Selecciona un proyecto de GCP existente en la parte superior de la página o crea un proyecto nuevo.

  3. En el primer menú desplegable, selecciona el tipo de recurso para ver sus registros de auditoría. Puedes seleccionar un recurso específico o Global para ver todos los recursos.

  4. Haz clic en la flecha desplegable (⯆) en el extremo derecho del cuadro de filtro de búsqueda y selecciona Convertir en filtro avanzado.

  5. Crea un filtro que especifique aún más las entradas de registro que deseas ver. Para recuperar todos los registros de auditoría de tu proyecto, agrega el siguiente filtro. Suministra un [PRODUCT_ID] válido en cada uno de los nombres de registro.

      logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events"
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access")
    

    Para obtener más detalles sobre los filtros, consulta Filtros avanzados de registros.

API

Realiza los siguientes pasos para ver las entradas del registro de auditoría a través de la API de Stackdriver Logging:

  1. Dirígete a la sección Prueba esta API en la documentación del método entries.list.

  2. Ingresa el siguiente fragmento en el Cuerpo de la solicitud del formulario Prueba esta API. Si haces clic en este formulario propagado con anterioridad, se completará el cuerpo de la solicitud de manera automática, pero deberás proporcionar un [PRODUCT_ID] válido para cada uno de los nombres de registro.

      {
        "resourceNames": [
          "projects/[PROJECT_ID]"
        ],
        "pageSize": 5,
        "filter": "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
      }
    
  3. Haz clic en Ejecutar.

Para obtener más detalles sobre los filtros, consulta Filtros avanzados de registros.

SDK

Para leer tus entradas de registro con el SDK de Cloud, ejecuta el siguiente comando. Suministra un [PRODUCT_ID] válido en cada uno de los nombres de registro.

gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)

Para obtener más información sobre el uso del SDK de Cloud, consulta Lee entradas de registro.

Formato de las entradas del registro de auditoría

Una entrada del registro de auditoría es un tipo de entrada de registro de Stackdriver Logging. Como todas las entradas de registro de Logging, una entrada del registro de auditoría se almacena en un objeto LogEntry. Lo que distingue a una entrada del registro de auditoría de otras entradas de registro es el campo protoPayload. En las entradas del registro de auditoría, el campo protoPayload de la entrada de registro contiene un objeto AuditLog que almacena los datos de registro de auditoría.

El tipo AuditLog define un conjunto de campos específicos para auditar el registro, como serviceName y authenticationInfo. También tiene un campo opcional, serviceData, que algunos servicios de Google Cloud Platform usan para hacer listas de información específica del servicio en la entrada del registro de auditoría. Consulta Datos de auditoría específicos del servicio para obtener una lista de los servicios de GCP que usan este campo.

Ejemplo de entrada del registro de auditoría

En esta sección, se usa una entrada de muestra del registro de auditoría para explicar cómo encontrar la información más importante en las entradas del registro de auditoría.

La siguiente muestra es una entrada del registro de auditoría de la actividad del administrador escrita por el Administrador de recursos a fin de registrar un cambio en la política de Cloud Identity and Access Management en un proyecto de Google Cloud Platform llamado my-gcp-project-id. Por cuestiones de brevedad, algunas partes de la entrada del registro se omitieron y algunos campos se resaltaron:

    {
      protoPayload: {
        @type: "type.googleapis.com/google.cloud.audit.AuditLog",
        status: {},
        authenticationInfo: {
          principalEmail: "user@example.com"
        },
        serviceName: "cloudresourcemanager.googleapis.com",
        methodName: "SetIamPolicy",
        authorizationInfo: [...],
        serviceData: {
          @type: "type.googleapis.com/google.iam.v1.logging.AuditData",
          policyDelta: { bindingDeltas: [
              action: "ADD",
              role: "roles/logging.privateLogViewer",
              member: "user:user@example.com"
          ], }
        },
        request: {
          resource: "my-gcp-project-id",
          policy: { bindings: [...], }
        },
        response: {
          bindings: [
            {
              role: "roles/logging.privateLogViewer",
              members: [ "user:user@example.com" ]
            }
          ],
        }
      },
      insertId: "53179D9A9B559.AD6ACC7.B40604EF",
      resource: {
        type: "project",
        labels: { project_id: "my-gcp-project-id" }
      },
      timestamp: "2016-04-27T16:24:56.135Z",
      severity: "NOTICE",
      logName: "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity",
    }

Aquí está el filtro usado para seleccionar la muestra de entrada del registro de auditoría de arriba. Se puede usar en el lector avanzado, la API de Stackdriver Logging o el SDK de Cloud. El identificador de proyecto está en el nombre del registro y el filtro es rápido debido a que el campo logName está indexado:

resource.type = "project"
logName = "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity"

Si buscas registro de auditoría desde una sola instancia de un tipo de recurso, como gce_instance, agrega un calificador de instancia:

resource.type = "gce_instance"
resource.instance_id = "12345678901234567890"
logName = "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity"

Interpreta el ejemplo de la entrada del registro de auditoría

En el ejemplo de entrada del registro de auditoría de arriba, los campos mostrados protoPayload, insertId, resource, timestamp, severity y logName son parte del objeto LogEntry. El valor del campo protoPayload es un objeto AuditLog. Encapsula los datos de registro de auditoría.

Si observas el ejemplo de entrada del registro de auditoría anterior, podrías tener algunas preguntas:

  • ¿Esta es una entrada del registro de auditoría? Sí lo es; puedes distinguirla de estas dos formas:

    • El campo protoPayload.@type es type.googleapis.com/google.cloud.audit.AuditLog.

    • El campo logName incluye el dominio cloudaudit.googleapis.com.

  • ¿Qué servicio escribió el registro de auditoría? El Administrador de recursos escribió el registro. Esta información está en el campo protoPayload.serviceName de la entrada del registro de auditoría.

  • ¿Qué operación se audita? Se audita SetIamPolicy, como se especifica en el campo protoPayload.methodName. Puedes obtener más información sobre la operación auditada en el objeto AuditData en protoPayload.serviceData.

  • ¿Qué recurso se audita? Se audita un proyecto de Google Cloud Platform, my-gcp-project-id. El campo resource especifica el tipo de recurso project y el identificador de proyecto my-gcp-project-id. Encuentra project en la lista de tipos de recursos supervisados y verás que es un “proyecto de Google”.

Para obtener más información, consulta el tipo de LogEntry, el tipo de AuditLog y el tipo de AuditData de IAM.

Entradas del registro de auditoría grandes o de larga duración

Una sola operación auditada se divide en varias entradas del registro si la operación se ejecuta de forma asíncrona o si genera un registro AuditLog grande. Cuando hay más de una entrada de registro para la misma operación, el objeto LogEntry contendrá un campo operation y las entradas para la misma operación tendrán el mismo valor para LogEntry.operation.id y LogEntry.operation.producer.

En el ejemplo de entrada del registro de auditoría anterior, el campo operation no está presente, lo que significa que toda la información de auditoría está contenida en una entrada de registro única.

Datos de auditoría específicos del servicio

Algunos servicios extienden la información almacenada en sus AuditLog con el reemplazo de una estructura de datos suplementaria en el campo serviceData del registro de auditoría. En la tabla a continuación, se enumeran los servicios que usan el campo serviceData y se proporciona un vínculo a su tipo de AuditData.

Servicio Tipo de datos de servicio
App Engine type.googleapis.com/google.appengine.v1.AuditData
App Engine (heredado) type.googleapis.com/google.appengine.legacy.AuditData
BigQuery type.googleapis.com/google.cloud.bigquery.logging.v1.AuditData
Cloud Identity and Access Management type.googleapis.com/google.iam.v1.logging.AuditData
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Stackdriver Logging
Si necesitas ayuda, visita nuestra página de asistencia.