En esta página se describen en detalle las entradas de registro de los registros de auditoría de Cloud: su estructura, cómo leerlas y cómo interpretarlas.
Cloud Audit Logs proporciona los siguientes registros de auditoría para cada Google Cloud proyecto, carpeta y organización:
- Registros de auditoría de la actividad administrativa
- Registros de auditoría de acceso a los datos
- Registros de auditoría de los eventos del sistema
- Registros de auditoría de denegación de acceso por infracción de las políticas
Para obtener una descripción general de los registros de auditoría de Cloud, consulta Registros de auditoría de Cloud.
Formato de las entradas del registro de auditoría
Una entrada de registro de auditoría es un tipo de entrada de registro de Cloud Logging. Al igual que todas las entradas de registro de Logging, las entradas de registro de auditoría se almacenan en un objeto LogEntry
. Lo que distingue una entrada de 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 del registro contiene un objeto AuditLog
que almacena los datos del registro de auditoría.
En resumen, cada entrada de registro de auditoría se caracteriza por la siguiente información:
- El proyecto, la carpeta o la organización que posee la entrada de registro.
- El recurso al que se aplica la entrada de registro. Esta información consta de un tipo de recurso de la lista de recursos supervisados y de valores adicionales que denotan una instancia específica. Por ejemplo, puede ver las entradas de registro de auditoría de una sola instancia de VM de Compute Engine o de todas las instancias de VM.
- Una marca de tiempo.
Un servicio: los servicios son productos individuales, como Compute Engine, Cloud SQL o Pub/Sub. Google Cloud Cada servicio se identifica por su nombre: Compute Engine es
compute.googleapis.com
, Cloud SQL escloudsql.googleapis.com
, etc. Esta información se indica en el campoprotoPayload.serviceName
de la entrada del registro de auditoría.Los tipos de recursos pertenecen a un solo servicio, pero un servicio puede tener varios tipos de recursos. Para ver una lista de servicios y recursos, consulta Asignar servicios a recursos.
Una carga útil, que es del tipo
protoPayload
. La carga útil de cada entrada de registro de auditoría es un objeto de tipoAuditLog
, que define un conjunto de campos específicos de Cloud Audit Logs, comoserviceName
yauthenticationInfo
. También tiene un campo opcional,metadata
, que los servicios Google Cloud usan para enumerar información específica del servicio en la entrada del registro de auditoría. Algunos Google Cloud servicios siguen usando el camposerviceData
antiguo para mostrar información específica de cada servicio. Para ver una lista de los servicios que usan el camposerviceData
, consulta Datos de auditoría específicos del servicio.Nombre de un registro: las entradas del registro de auditoría pertenecen a registros de cuentas de facturación, proyectos, carpetas y organizaciones. En la siguiente tabla se enumeran los nombres de los registros:
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy
En una cuenta de facturación, un proyecto, una carpeta o una organización, estos nombres de registro suelen abreviarse como activity, data_access, system_event y policy.
Entrada de registro de auditoría de ejemplo
En esta sección se usa una entrada de registro de auditoría de ejemplo para explicar cómo encontrar la información más importante en las entradas de registro de auditoría.
El siguiente ejemplo es una entrada de registro de auditoría de actividad de administrador escrita por App Engine para registrar un cambio en una política de gestión de identidades y accesos (IAM) con PROJECT_ID my-gcp-project-id
.
Para mayor brevedad, se han omitido algunas partes de la entrada de registro y se han destacado algunos campos:
{ protoPayload: { @type: "type.googleapis.com/google.cloud.audit.AuditLog", status: {}, authenticationInfo: { principalEmail: "user@example.com" }, serviceName: "appengine.googleapis.com", methodName: "SetIamPolicy", authorizationInfo: [...], serviceData: { @type: "type.googleapis.com/google.appengine.legacy.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: "gae_app", labels: { project_id: "my-gcp-project-id" } }, timestamp: "2019-05-27T16:24:56.135Z", severity: "NOTICE", logName: "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity", }
Esta es la consulta que se ha usado para seleccionar la muestra de entrada de registro de auditoría anterior. La consulta se puede usar en el Explorador de registros, la API Logging o la CLI de Google Cloud. El identificador del proyecto se encuentra en el nombre del registro:
resource.type = "gae_app" logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
Si buscas registros de auditoría de una sola instancia de un tipo de recurso, como gce_instance
, añade un calificador de instancia:
resource.type = "gce_instance" resource.instance_id = "INSTANCE_ID" logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
Interpretar la entrada de registro de auditoría de ejemplo
En el ejemplo de entrada de registro de auditoría anterior, los campos protoPayload
, insertId
, resource
, timestamp
, severity
y logName
que se muestran forman parte del objeto LogEntry
. El valor del campo protoPayload
es un objeto AuditLog
. Encapsula los datos de registro de auditoría.
Al examinar el ejemplo de entrada del registro de auditoría, puede que te surjan algunas dudas:
¿Es una entrada del registro de auditoría? Sí, y puedes comprobarlo de dos formas:
El campo
protoPayload.@type
estype.googleapis.com/google.cloud.audit.AuditLog
.El campo
logName
incluye el dominiocloudaudit.googleapis.com
.
¿Qué servicio escribió el registro de auditoría? App Engine ha escrito el registro. Esta información se indica en el campo
protoPayload.serviceName
de la entrada del registro de auditoría.¿Qué operación se está auditando? Se está auditando
SetIamPolicy
, tal como se especifica en el campoprotoPayload.methodName
. Puede consultar más información sobre la operación auditada en el objetoAuditData
deprotoPayload.serviceData
.¿Qué recurso se está auditando? Se está auditando una aplicación que se ejecuta en App Engine y que está asociada a un Google Cloud proyecto
my-gcp-project-id
. Puedes determinarlo a partir del camporesource
, que especifica el tipo de recursogae_app
y el identificador del proyectomy-gcp-project-id
. En este ejemplo, encontrarás detalles sobre el tipo de recurso en la lista de tipos de recursos supervisados.
Para obtener más información, consulta el tipo LogEntry
, el tipo AuditLog
y el tipo IAM AuditData
.
Registros de auditoría de operaciones de larga duración
Las APIs que son operaciones de larga duración emiten dos registros de auditoría: uno cuando se llama a la API y se inicia la operación, y otro cuando se completa la operación.
En este caso, el objeto LogEntry
contiene un campo operation
.
Las entradas de registro de la misma operación tienen el mismo valor para LogEntry.operation.id
y LogEntry.operation.producer
.
La primera entrada de registro que se escribió tiene LogEntry.operation.first=true
y la entrada de registro de finalización tiene LogEntry.operation.last=true
.
En los casos en los que la operación se completa inmediatamente o falla, solo hay una entrada de registro que contiene tanto LogEntry.operation.first=true
como LogEntry.operation.last=true
.
Algunos servicios no rellenan el campo LogEntry.operation
cuando falla la operación. Sin embargo, puedes determinar qué operaciones son de larga duración consultando la documentación de registro de auditoría del servicio.
Estas APIs implementan el servicio Operations.
Este servicio suele emitir entradas de registro de auditoría cuando se llama. En función de las APIs a las que se llame, protoPayload.methodName
será una de las siguientes:
google.longrunning.Operations.ListOperations
google.longrunning.Operations.GetOperation
google.longrunning.Operations.CancelOperation
google.longrunning.Operations.WaitOperation
google.longrunning.Operations.DeleteOperation
En este caso, no se especifica LogEntry.operation
, ya que esta API devuelve metadatos sobre operaciones de larga duración, pero no es una operación de larga duración en sí.
Consulta los Google Cloud servicios con registros de auditoría para obtener más información sobre las APIs auditadas, ya que puede variar según el servicio.
Registros de auditoría de las APIs de streaming
Al igual que las operaciones de larga duración, las APIs de streaming emiten dos entradas de registro de auditoría: una cuando se llama a la API por primera vez y otra cuando finaliza la conexión de streaming.
En este caso, el objeto LogEntry
contiene un campo operation
y las entradas de registro de la misma operación tienen el mismo valor para LogEntry.operation.id
y LogEntry.operation.producer
.
El primer registro escrito tiene LogEntry.operation.first=true
y el registro de finalización tendrá LogEntry.operation.last=true
.
Esta API también puede emitir entradas de registro de continuación sin que se haya definido LogEntry.operation.first
ni LogEntry.operation.last
para indicar que el flujo sigue abierto.
Datos de auditoría específicos del servicio
Algunos servicios amplían la información almacenada en su AuditLog
colocando una estructura de datos complementaria en el campo serviceData
de la entrada del registro de auditoría. En la siguiente tabla se enumeran los servicios que usan el campo serviceData
y se proporciona un enlace a su tipo AuditData
.
Ver registros de auditoría
Puede consultar todos los registros de auditoría o buscar registros por su nombre. El nombre del registro de auditoría incluye el identificador de recurso del Google Cloud proyecto, la carpeta, la cuenta de facturación o la organización de los que quieras ver la información del registro de auditoría.
En tus consultas puedes especificar campos LogEntry
indexados.
Para obtener más información sobre cómo consultar tus registros, consulta el artículo Crear consultas en el Explorador de registros.
Explorador de registros te permite ver y filtrar entradas de registro concretas. Si quieres usar SQL para analizar grupos de entradas de registro, utiliza la página Analíticas de registros. Para obtener más información, consulta estos artículos:
- Consultar y ver registros en Analíticas de registros
- Consultas de ejemplo para obtener información valiosa sobre seguridad
- Resultados de la consulta del gráfico.
La mayoría de los registros de auditoría se pueden ver en Cloud Logging mediante laGoogle Cloud consola, la CLI de Google Cloud o la API de Logging. Sin embargo, para los registros de auditoría relacionados con la facturación, solo puedes usar la CLI de Google Cloud o la API Logging.
Consola
En la Google Cloud consola, puedes usar el Explorador de registros para obtener las entradas del registro de auditoría de tu Google Cloud proyecto, carpeta u organización:
-
En la Google Cloud consola, ve a la página Explorador de registros:
Ve al Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Registro.
Selecciona un proyecto, una carpeta o una organización Google Cloud .
Para mostrar todos los registros de auditoría, introduce una de las siguientes consultas en el campo del editor de consultas y haz clic en Ejecutar consulta:
logName:"cloudaudit.googleapis.com"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
Para mostrar los registros de auditoría de un recurso y un tipo de registro de auditoría específicos, haz lo siguiente en el panel Generador de consultas:
En Tipo de recurso, selecciona el Google Cloud recurso cuyos registros de auditoría quieras ver.
En Nombre del registro, selecciona el tipo de registro de auditoría que quieras ver:
- En el caso de los registros de auditoría de actividad de administración, selecciona activity.
- En el caso de los registros de auditoría de acceso a datos, selecciona data_access.
- En el caso de los registros de auditoría de los eventos del sistema, selecciona system_event.
- En Registros de auditoría de denegación de acceso por infracción de las políticas, selecciona policy.
Haz clic en Realizar una consulta.
Si no ves estas opciones, significa que no hay registros de auditoría de ese tipo disponibles en el proyecto, la carpeta o la organización. Google Cloud
Si tienes problemas para ver los registros en el Explorador de registros, consulta la información sobre solución de problemas.
Para obtener más información sobre cómo hacer consultas con el Explorador de registros, consulta el artículo Crear consultas en el Explorador de registros.
gcloud
La CLI de Google Cloud proporciona una interfaz de línea de comandos a la API Logging. Indica un identificador de recurso válido en cada uno de los nombres de registro. Por ejemplo, si tu consulta incluye un PROJECT_ID, el identificador de proyecto que proporciones debe hacer referencia al proyectoGoogle Cloud seleccionado.
Para leer las entradas del registro de auditoría a nivel de proyecto de Google Cloud , ejecuta el siguiente comando:
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \ --project=PROJECT_ID
Para leer las entradas del registro de auditoría a nivel de carpeta, ejecuta el siguiente comando:
gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \ --folder=FOLDER_ID
Para leer las entradas del registro de auditoría a nivel de organización, ejecuta el siguiente comando:
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \ --organization=ORGANIZATION_ID
Para leer las entradas del registro de auditoría a nivel de cuenta de Facturación de Cloud, ejecuta el siguiente comando:
gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \ --billing-account=BILLING_ACCOUNT_ID
Añade la marca --freshness
al comando para leer los registros que tengan más de un día.
Para obtener más información sobre el uso de la herramienta de línea de comandos gcloud, consulta gcloud logging read
.
REST
Cuando cree sus consultas, proporcione un identificador de recurso válido en cada uno de los nombres de registro. Por ejemplo, si tu consulta incluye un PROJECT_ID, el identificador de proyecto que proporciones debe hacer referencia al proyectoGoogle Cloud seleccionado.
Por ejemplo, para usar la API Logging y ver las entradas de registro de auditoría de tu proyecto, haz lo siguiente:
Ve a la sección Probar esta API de la documentación del método
entries.list
.Incluye lo siguiente en la parte Cuerpo de la solicitud del formulario Probar esta API. Si haces clic en este formulario rellenado automáticamente, se rellenará automáticamente el cuerpo de la solicitud, pero debes proporcionar un PROJECT_ID válido en cada uno de los nombres de registro.
{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Haz clic en la opción para ejecutar.