Cloud Audit Logs con Cloud Storage

En esta página, se proporciona información adicional para el uso de Registros de auditoría de Cloud con Cloud Storage. Usa Registros de auditoría de Cloud si quieres generar registros para las operaciones de API que se realizan en Cloud Storage.

Descripción general

Los servicios de Google Cloud escriben registros de auditoría para ayudarte a responder las preguntas “¿Quién hizo qué, dónde y cuándo?”. dentro de tus recursos de Google Cloud. También puedes adjuntar información personalizada a los registros de auditoría para obtener información más detallada sobre cómo se accede a tus recursos.

Los proyectos de Google Cloud contienen solo los registros de auditoría de los recursos que están de forma directa dentro del proyecto de Google Cloud. Otros recursos de Google Cloud, como las carpetas, organizaciones y cuentas de facturación, contienen los registros de auditoría correspondientes a la entidad.

Consulta la descripción general de los Registros de auditoría de Cloud para conocer más al respecto. Para comprender mejor el formato del registro de auditoría, consulta Información de los registros de auditoría.

Registros de auditoría disponibles

Los siguientes tipos de registros de auditoría están disponibles para Cloud Storage:

  • Registros de auditoría de actividad del administrador: entradas para operaciones que modifican el acceso a los recursos de Cloud Storage y entradas para operaciones que crean, borran o modifican buckets, carpetas administradas o configuraciones de informes de inventario. No puedes inhabilitar los registros de auditoría de actividad del administrador.

  • Registros de auditoría de acceso a los datos: entradas para operaciones a las que no se les realiza un seguimiento en los registros de auditoría de actividad del administrador. Hay distintos subtipos de registros de auditoría de acceso a los datos:

    • ADMIN_READ: entradas para operaciones que leen configuraciones de acceso, leen metadatos de buckets o enumeran buckets dentro de un proyecto.

    • DATA_READ: entradas para operaciones que leen o enumeran recursos de Cloud Storage que no sean buckets.

    • DATA_WRITE: entradas para operaciones que crean, borran o modifican objetos y cargas multiparte de la API de XML.

    Para recibir registros de auditoría de acceso a los datos, debes habilitarlos de forma explícita.

Además de los registros de auditoría de Cloud Storage, los registros de auditoría de Cloud pueden crear registros de auditoría para Storage Insights. Los registros de auditoría de Storage Insights se generan cada vez que se crean, se actualizan y se recuperan las configuraciones de informes de inventario y cuando se recuperan los informes de inventario.

Para obtener descripciones más completas de los tipos de registros de auditoría, consulta Tipos de registros de auditoría.

Operaciones auditadas

En la siguiente tabla, se resumen las operaciones de Cloud Storage que corresponden a cada tipo de registro de auditoría:

Tipo de registro de auditoría Subtipo Operaciones de Cloud Storage
Actividad del administrador ADMIN_WRITE
  • Configurar/modificar políticas de IAM
  • Cambia los LCA de los objetos3
  • Crear buckets
  • Borrar buckets
  • Actualizar metadatos de depósitos
  • Crea carpetas administradas
  • Borra carpetas administradas
  • Crea configuraciones de informes de inventario
  • Actualiza configuraciones de informes de inventario
  • Borra configuraciones de informes de inventario
Acceso a los datos ADMIN_READ
  • Obtener políticas de IAM
  • Obtener LCA de objetos
  • Obtener metadatos de bucket
  • Enumerar buckets
Acceso a los datos DATA_READ
  • Obtener datos de objetos
  • Obtener metadatos de objetos
  • Enumerar objetos
  • Obtén metadatos de carpetas administradas
  • Enumera las carpetas administradas
  • Copia objetos1
  • Componer objetos1
  • Enumera las cargas multiparte de la API de XML en curso
  • Enumera las partes de carga multiparte de la API de XML
  • Obtén configuraciones de informes de inventario
  • Enumera configuraciones de informes de inventario
  • Obtén informes de inventario
  • Enumera informes de inventario
Acceso a los datos DATA_WRITE
  • Crear objetos
  • Borrar objetos2
  • Actualizar metadatos de objetos que no sean de LCA2
  • Copia objetos1
  • Componer objetos1
  • Inicia cargas de varias partes de la API de XML
  • Crea partes en una carga multiparte de la API de XML
  • Anula las cargas multiparte de la API de XML2
  • Completa las cargas multiparte de la API de XML

1 Estas operaciones implican lectura y escritura de datos. Como resultado, cada una de estas operaciones genera dos entradas de registro.

2 Registros de auditoría de Cloud no registra las acciones realizadas por las funciones de Administración del ciclo de vida de los objetos o Clase automática. Si quieres obtener alternativas que realicen un seguimiento de estas acciones, consulta Opciones para realizar un seguimiento de las acciones del ciclo de vida.

3 Los registros de auditoría de actividad del administrador no se generan si las LCA se configuran de forma inicial en la creación del objeto. Además, si una LCA de objeto se configura como pública, los registros de auditoría no se generan para lecturas o escrituras en ese objeto ni su LCA.

Formato de registro de auditoría

Las entradas del registro de auditoría incluyen los siguientes componentes:

  • La entrada de registro en sí, que es un objeto LogEntry. Los campos útiles incluyen los siguientes:

    • El campo logName contiene el ID del recurso y el tipo de registro de auditoría.
    • El campo resource contiene el objetivo de la operación auditada.
    • El campo timestamp contiene la hora de la operación auditada.
    • El campo protoPayload contiene la información auditada.
  • Los datos de registro de auditoría, que son un objeto AuditLog alojado en el campo protoPayload de la entrada de registro.

  • Información opcional de auditoría específica de Cloud Storage, que incluye información detallada de la solicitud y la respuesta. Para obtener más información, consulta Modo detallado del registro de auditoría. Ten en cuenta que no necesitas aplicar un registro de auditoría detallado para adjuntar información personalizada a los registros de auditoría.

Para obtener información de otros campos en estos objetos, además de cómo interpretarlos, consulta Información de los registros de auditoría.

Nombre del registro

Los nombres de registro de los Registros de auditoría de Cloud incluyen identificadores de recursos que indican el proyecto de Google Cloud u otra entidad de Google Cloud que posee los registros de auditoría, y si el registro contiene datos de registro de auditoría de acceso a los datos o de actividad del administrador.

A continuación, se muestran los nombres de los registros de auditoría, incluidas las variables para los identificadores de recursos:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

Nombre del servicio

Los registros de auditoría de Cloud Storage usan el nombre de servicio storage.googleapis.com.

Los registros de auditoría Storage Insights usan el nombre de servicio storageinsights.googleapis.com.

Para obtener una lista de los nombres de los servicios de la API de Cloud Logging y su tipo de recurso supervisado correspondiente, consulta Asigna servicios a recursos.

Tipos de recursos

Los registros de auditoría de Cloud Storage usan el tipo de recurso gcs_bucket.

Para obtener una lista de todos los tipos de recursos supervisados de Cloud Logging y la información descriptiva, consulta Tipos de recursos supervisados.

Habilita el registro de auditoría

Los registros de auditoría de actividad del administrador siempre están habilitados; no puedes inhabilitarlos.

Los registros de auditoría de acceso a los datos están inhabilitados de forma predeterminada y no se escriben, a menos que se habiliten de manera explícita.

Si deseas obtener más información para habilitar algunos o todos tus registros de auditoría de acceso a los datos, consulta Configura registros de auditoría de acceso a los datos.

Permisos y funciones

Los permisos y los roles de IAM determinan tu capacidad para acceder a los datos de registros de auditoría en los recursos de Google Cloud.

Cuando decidas qué roles y permisos específicos de Logging se aplican a tu caso de uso, considera lo siguiente:

  • El rol visor de registros (roles/logging.viewer) te otorga acceso de solo lectura a los registros de auditoría de la actividad del administrador, la política denegada y los eventos del sistema. Si solo tienes esta función, no podrás ver los registros de auditoría de acceso a los datos que se encuentran en los buckets _Required y _Default.

  • La función Visor de registros privados ((roles/logging.privateLogViewer) incluye los permisos que contiene roles/logging.viewer, además de la capacidad de leer registros de auditoría de acceso a los datos de los buckets _Required y _Default.

    Ten en cuenta que si estos registros privados se almacenan en buckets definidos por el usuario, cualquier usuario que tenga permisos para leer registros en esos buckets puede leer los registros privados. Para obtener más información de los buckets de registros, consulta Descripción general del enrutamiento y el almacenamiento.

Para obtener más información de los permisos y los roles de IAM que se aplican a los datos de registros de auditoría, consulta Control de acceso con IAM.

Visualiza los registros

Puedes consultar todos los registros de auditoría o puedes consultar los registros por su nombre de registro de auditoría. El nombre del registro de auditoría incluye el identificador de recursos del proyecto de Google Cloud, la carpeta, la cuenta de facturación o la organización cuya información de registro de auditoría deseas ver. Tus consultas pueden especificar los campos LogEntry indexados, y si usas la página Log Analytics, que admite consultas de SQL, puedes visualizar los resultados de consultas con un gráfico.

Para obtener más información para consultar tus registros, consulta las siguientes páginas:

Puedes ver los registros de auditoría en Cloud Logging a través de la consola de Google Cloud, Google Cloud CLI o la API de Logging.

Consola

En la consola de Google Cloud, puedes usar el Explorador de registros para recuperar las entradas de registro de auditoría de tu carpeta, organización o proyecto de Google Cloud:

  1. En el panel de navegación de la consola de Google Cloud, elige Logging y, luego, Explorador de registros:

    Ir al Explorador de registros

  2. Selecciona una organización, una carpeta o un proyecto existente de Google Cloud.

  3. Para mostrar todos los registros de auditoría, ingresa cualquiera de las siguientes consultas en el campo de editor de consultas y, luego, haz clic en Ejecutar consulta:

    logName:"cloudaudit.googleapis.com"
    
    protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
    
  4. Para mostrar los registros de auditoría de un recurso específico y un tipo de registro de auditoría, en el panel Compilador de consultas, haz lo siguiente:

    • En Tipo de recurso, selecciona el recurso de Google Cloud cuyos registros de auditoría deseas ver.

    • En Nombre del registro, selecciona el tipo de registro de auditoría que deseas ver:

      • En el caso de los registros de auditoría de la actividad del administrador, selecciona activity.
      • En los registros de auditoría de acceso a los datos, selecciona data_access.
      • En el caso de los registros de auditoría de eventos del sistema, selecciona system_event.
      • En el caso de los registros de auditoría de política denegada, selecciona policy.
    • Haz clic en Ejecutar consulta.

    Si no ves estas opciones, significa que no hay registros de auditoría de ese tipo disponibles en la carpeta, la organización o el proyecto de Google Cloud.

    Si tienes problemas cuando intentas ver registros en el Explorador de registros, consulta la información acerca de la solución de problemas.

    Para obtener más información de las consultas con el Explorador de registros, visita Compila consultas en el Explorador de registros. Para obtener información acerca de cómo resumir las entradas de registro en el Explorador de registros a través de Duet AI, consulta Resume entradas de registro con la asistencia de Duet AI.

gcloud

Google Cloud CLI proporciona una interfaz de línea de comandos para la API de Logging. Proporciona 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 del proyecto que proporciones debe hacer referencia al proyecto de Google Cloud que se encuentra seleccionado.

Para leer las entradas de 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 las carpetas, 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 la 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

Agrega la marca --freshness a tu comando para leer los registros que tienen más de 1 día de antigüedad.

Para obtener más información del uso de gcloud CLI, consulta gcloud logging read.

API

Cuando compiles tus consultas, proporciona 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 del proyecto que proporciones debe hacer referencia al proyecto de Google Cloud que se encuentra seleccionado.

Por ejemplo, si quieres usar la API de Logging para ver las entradas del registro de auditoría a nivel de proyecto, haz lo siguiente:

  1. Ve a la sección Probar esta API en la documentación del método entries.list.

  2. Ingresa lo siguiente en el cuerpo de la solicitud del formulario Prueba esta API. Si haces clic en este formulario prepropagado, se completará el cuerpo de la solicitud de manera automática, pero deberás proporcionar un PROJECT_ID válido para cada nombre de registro.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. Haz clic en Ejecutar.

Agrega información personalizada a los registros de auditoría

Puedes adjuntar información personalizada a los registros de auditoría a las solicitudes si incluyes el encabezado x-goog-custom-audit-KEY: VALUE en tu solicitud. Además, las solicitudes a la API de XML admiten el uso de un parámetro de consulta x-goog-custom-audit-KEY=VALUE. Se agrega información personalizada al campo metadata de protoPayload en la entrada de registro de auditoría.

Cuando agregues información de auditoría personalizada, ten en cuenta las siguientes consideraciones:

  • Cada KEY puede contener hasta 64 caracteres, mientras que cada VALUE puede contener hasta 1,200 caracteres.

  • Cada solicitud puede contener hasta 4 entradas de encabezado o parámetros combinadas.

Ejemplos de entradas de encabezado

En la siguiente lista, se muestran ejemplos de pares clave-valor que puedes incluir en las entradas de encabezado:

  • x-goog-custom-audit-job: test-job-id-here
  • x-goog-custom-audit-user: user ID test 1
  • x-goog-custom-audit-internal-user-id: MATR2022-11
  • x-goog-custom-audit-tracking-ticket: TT/1516512851
  • x-goog-custom-audit-justification: Removed customer identity record at customer request
  • x-goog-custom-audit-customer-id: USCU12315154

Solicitudes de ejemplo

Línea de comandos

gcloud storage hash gs://example_bucket/example_object.jpeg --additional-headers=x-goog-custom-audit-job="job name",x-goog-custom-audit-user="test user"

Bibliotecas cliente

C++

Para obtener información acerca de cómo agregar encabezados personalizados a las solicitudes, consulta Agrega encabezados personalizados.

C#

Para obtener información acerca de cómo agregar encabezados personalizados a las solicitudes, consulta Agrega encabezados personalizados.

Go

Para obtener información acerca de cómo agregar encabezados personalizados a las solicitudes, consulta Agrega encabezados personalizados.

Java

Para obtener información acerca de cómo agregar encabezados personalizados a las solicitudes, consulta Agrega encabezados personalizados.

Node.js

Para obtener información acerca de cómo agregar encabezados personalizados a las solicitudes, consulta Agrega encabezados personalizados.

PHP

Para obtener información acerca de cómo agregar encabezados personalizados a las solicitudes, consulta Agrega encabezados personalizados.

Python

Por el momento, no se admite agregar encabezados personalizados a las solicitudes realizadas por la biblioteca cliente de Python.

Ruby

Para obtener información acerca de cómo agregar encabezados personalizados a las solicitudes, consulta Agrega encabezados personalizados.

API de REST

API de JSON

curl -X GET "https://storage.googleapis.com/storage/v1/b/example_bucket/o/example_object" \
-H "Authorization: Bearer OAUTH2_TOKEN" \
-H "x-goog-custom-audit-job: job name" \
-H "x-goog-custom-audit-user: test user"

API de XML

curl -X GET "https://storage.googleapis.com/example_bucket/example_object" \
-H "Authorization: Bearer OAUTH2_TOKEN" \
-H "x-goog-custom-audit-job: job name" \
-H "x-goog-custom-audit-user: test user"

Solicitudes de URL firmadas

curl -X GET 'storage.googleapis.com/example_bucket?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T181309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host,x-goog-custom-audit-job,x-goog-custom-audit-user&X-Goog-Signature=247a2aa45f169edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa8496def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dcc1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c20580e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b133447032ea7abedc098d2eb14a7' \
-H "x-goog-custom-audit-job: job name" \
-H "x-goog-custom-audit-user: test user"

Ten en cuenta que los encabezados de auditoría personalizados también se deben incluir en X-Goog-SignedHeaders.

Para crear una solicitud de URL firmada que admita la adición de encabezados de auditoría personalizados, los encabezados de auditoría personalizados que deseas usar en la solicitud también se deben incluir cuando generas la URL firmada. Por ejemplo:

gcloud storage sign-url gs://example_bucket/example_object.jpeg --private-key-file=example-key.json --duration=10m --headers=x-goog-custom-audit-job:"job name",x-goog-custom-audit-user="test user"

También puedes usar bibliotecas cliente para generar la URL firmada cuando configuras encabezados personalizados.

Como alternativa al uso de encabezados firmados, puedes usar parámetros de búsqueda para pasar entradas de auditoría personalizadas.

curl -X GET 'storage.googleapis.com/example_bucket?X-Goog-Custom-Audit-Key=Value&X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T181309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f169edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa8496def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dcc1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c20580e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b133447032ea7abedc098d2eb14a7'

Estos parámetros de consulta se deben incluir cuando generas la URL firmada. Por ejemplo:

gcloud storage sign-url gs://example_bucket/example_object.jpeg --private-key-file=example-key.json --duration=10m --query-params=x-goog-custom-audit-job=job_name,x-goog-custom-audit-user=test_user

Ejemplo de una entrada de registro

protoPayload: {
  @type: "type.googleapis.com/google.cloud.audit.Auditlog",
  ...
  metadata: {
    audit_context: {
      app_context: "EXTERNAL",
      audit_info: {
        x-goog-custom-audit-job: "job name",
        x-goog-custom-audit-user: "test user"
      }
    }
  }
}

Para obtener más información de los campos incluidos en el objeto protoPayload con el tipo type.googleapis.com/google.cloud.audit.Auditlog, consulta la documentación de referencia de AuditLog.

Enruta registros de auditoría

Puedes enrutar registros de auditoría a destinos compatibles de la misma manera en la que enrutas otros tipos de registros. Estos son algunos de los motivos por los que es posible que quieras enrutar tus registros de auditoría:

  • Para mantener los registros de auditoría por un período más extenso o usar capacidades de búsqueda más potentes, puedes enrutar copias de tus registros de auditoría a Cloud Storage, BigQuery o Pub/Sub. Puedes enrutar a otras aplicaciones, otros repositorios y a terceros a través de Pub/Sub.
  • Para administrar los registros de auditoría en toda la organización, puedes crear receptores agregados que puedan exportar registros desde cualquier proyecto de Google Cloud de la organización o desde todos los proyectos.
  • Si tus registros de auditoría de acceso a los datos habilitados hacen que tus proyectos de Google Cloud superen la asignación gratuita, puedes crear receptores que excluyan los registros de auditoría de acceso a los datos de Logging.

Si deseas obtener instrucciones para enrutar los registros, consulta Configura y administra receptores.

Precios

Para obtener información sobre los precios de Cloud Logging, consulta Precios de observabilidad de Google Cloud: Cloud Logging.

Restricciones

Las siguientes restricciones se aplican a Registros de auditoría de Cloud con Cloud Storage:

¿Qué sigue?