Configurar registros de auditoría de acceso a los datos

En esta guía, se explica cómo habilitar o inhabilitar algunos o todos los registros de auditoría de acceso a los datos en los proyectos de Cloud, las cuentas de facturación, las carpetas y las organizaciones mediante Google Cloud Console o la API.

Antes de comenzar

Antes de continuar con la configuración de los registros de auditoría de acceso a los datos, comprende la siguiente información:

  • Los registros de auditoría de acceso a los datos se encuentran inhabilitados de forma predeterminada, excepto para BigQuery. Si deseas que se escriban los registros de auditoría de acceso a los datos para los servicios de Google Cloud que no sean BigQuery, debes habilitarlos de manera explícita.

  • Los registros de auditoría de acceso a los datos ayudan a Atención al cliente de Google a solucionar problemas con tu cuenta. Por lo tanto, recomendamos habilitar los registros de auditoría de acceso a los datos cuando sea posible.

Descripción general de la configuración

Puedes habilitar y configurar ciertos aspectos de los registros de auditoría de acceso a los datos de tus recursos y servicios de Google Cloud:

  • Organizaciones: Puedes habilitar y configurar los registros de auditoría de acceso a los datos en una organización, lo que se aplica a todos los proyectos y carpetas de Cloud existentes y existentes.

  • Carpetas: puedes habilitar y configurar los registros de auditoría de acceso a los datos en una carpeta, que se aplica a todos los proyectos de Cloud existentes y nuevos en la carpeta. No puedes inhabilitar un registro de auditoría de acceso a los datos que se habilitó en la organización superior del proyecto.

  • Proyectos: Puedes configurar los registros de auditoría de acceso a los datos para un proyecto de Cloud individual. No puedes inhabilitar un registro de auditoría de acceso a los datos que se habilitó en una organización o carpeta superior.

  • Cuentas de facturación: Para configurar los registros de auditoría de acceso a los datos de las cuentas de facturación, usa la CLI de Google Cloud. Para obtener más información sobre el uso de la CLI de gcloud con registros de auditoría de acceso a datos y cuentas de facturación, consulta la documentación de referencia de gcloud beta billing accounts set-iam-policy.

  • Configuraciones predeterminadas: puedes especificar una configuración de registro de auditoría de acceso a datos predeterminada en una organización, carpeta o proyecto de Cloud que se aplique a los servicios de Google Cloud futuros que comiencen a producir registros de auditoría de acceso a datos. Para obtener instrucciones, consulta Cómo establecer la configuración predeterminada.

  • Servicios: Puedes especificar los servicios cuyos registros de auditoría deseas recibir. Por ejemplo, es posible que desees obtener registros de auditoría de Compute Engine, pero no de Cloud SQL. Para obtener una lista de los servicios de Google Cloud que pueden generar registros de auditoría, consulta Servicios de Google con registros de auditoría.

  • Tipos de registros: Puedes configurar qué tipos de operaciones se registran en tus registros de auditoría de acceso a los datos. Existen tres tipos de registros de auditoría de acceso a los datos:

    • ADMIN_READ: Registra las operaciones que leen metadatos o información de configuración.

    • DATA_READ: Registra las operaciones que leen datos proporcionados por el usuario.

    • DATA_WRITE: Registra las operaciones que escriben datos que proporcionó el usuario.

    Por ejemplo, Cloud DNS escribe los tres tipos de registros de acceso a los datos, pero puedes configurar tus registros de auditoría de acceso a los datos para registrar solo las operaciones de DATA_WRITE.

  • Principales exentos: puedes eximir a los principales específicos de que no se registren sus accesos a datos. Por ejemplo, puedes eximir a tus cuentas de pruebas internas para que no se registren sus operaciones de Cloud Debugger. Para obtener una lista de principales válidas, incluidos los usuarios y los grupos, consulta la referencia del tipo Binding.

Puedes configurar los registros de auditoría de acceso a los datos mediante la consola de registros de auditoría de IAM o la API. Estos métodos se explican en las siguientes secciones.

Configuración específica del servicio

Si hay una configuración de todo el servicio de Google Cloud (allServices) y una configuración de un servicio específico de Google Cloud, la configuración resultante del servicio es la unión de las dos opciones de configuración. En otras palabras:

  • Puedes habilitar los registros de auditoría de acceso a los datos para servicios específicos de Google Cloud, pero no puedes inhabilitarlos en los servicios de Google Cloud habilitados en la configuración más amplia.

  • Puedes agregar tipos de información adicionales al registro de auditoría de acceso a los datos de un servicio de Google Cloud, pero no puedes quitar los tipos que se especifican en la configuración más amplia.

  • Puedes agregar principales a las listas de exención, pero no puedes quitarlas de las listas de exención en la configuración más amplia.

  • Para el Servicio de transferencia de datos de BigQuery, la configuración del registro de auditoría de acceso a los datos se hereda de tu configuración predeterminada de registro de auditoría.

Configuraciones de recursos de Google Cloud

Puedes configurar los registros de auditoría de acceso a los datos para proyectos de Cloud, cuentas de facturación, carpetas y organizaciones. Si hay una configuración para un servicio de Google Cloud de la jerarquía, la configuración resultante es la unión de las configuraciones. En otras palabras, a nivel de proyecto de Cloud:

  • Puedes habilitar los registros de un servicio de Google Cloud, pero no puedes inhabilitarlos en un servicio de Google Cloud habilitado en una organización o carpeta superior.

  • Puedes habilitar tipos de información, pero no puedes inhabilitar tipos de información habilitados en una organización o carpeta superior.

  • Puedes agregar principales a listas de exenciones, pero no puedes quitarlas de las listas de exenciones de una organización superior o carpeta.

  • A nivel de organización o de carpeta superior, puedes habilitar los registros de auditoría de acceso a los datos para un proyecto de Cloud dentro de esa organización o carpeta, incluso si los registros de auditoría de acceso a los datos no se configuraron en el proyecto de Cloud.

Control de acceso

Las funciones y los permisos de la administración de identidades y accesos rigen el acceso a los datos de Logging, incluida la visualización y la administración de las políticas de IAM subyacentes de las configuraciones de registro de auditoría de acceso a los datos.

Para ver o establecer las políticas asociadas con la configuración de acceso a los datos, necesitas una función con permisos en el nivel de recursos adecuado. Para obtener instrucciones sobre cómo otorgar estas funciones a nivel de recursos, consulta Administra el acceso a los proyectos de Cloud, las carpetas y las organizaciones.

  • Para establecer las políticas de IAM, necesitas una función con el permiso resourcemanager.RESOURCE_TYPE.setIamPolicy.

  • Para ver las políticas de IAM, necesitas una función con el permiso resourcemanager.RESOURCE_TYPE.getIamPolicy.

Si quieres ver la lista de permisos y funciones que necesitas para ver los registros de auditoría de acceso a los datos, consulta Control de acceso con IAM.

Configura registros de auditoría de acceso a los datos con la consola

En esta sección, se explica cómo usar la consola para configurar los registros de auditoría de acceso a los datos.

También puedes usar la API o la CLI de Google Cloud para realizar estas tareas de manera programática. Consulta Configura registros de auditoría de acceso a los datos con la API para obtener más detalles.

Para acceder a las opciones de configuración del registro de auditoría en la consola, sigue estos pasos:

  1. En la consola, selecciona IAM & Admin (Administrador de auditoría).

    Ir a Registros de auditoría

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

Habilita registros de auditoría

Para habilitar los registros de auditoría de acceso a los datos, haz lo siguiente:

  1. En la tabla Configuración de registros de auditoría de acceso a los datos, selecciona uno o más servicios de Google Cloud de la columna Servicio.

  2. En la pestaña Tipos de registro, selecciona los tipos de registros de auditoría de acceso a los datos que deseas habilitar para los servicios seleccionados.

  3. Haz clic en Guardar.

Si habilitaste correctamente los registros de auditoría, la tabla incluirá una marca de verificación .

En el siguiente ejemplo, verás que para el servicio de Aprobación de acceso, el tipo de registro de auditoría de lectura de datos está habilitado:

Configuración de registros de auditoría

También puedes habilitar los registros de auditoría para todos los servicios de Google Cloud que producen registros de auditoría de acceso a los datos. En la tabla Configuración de registros de auditoría de acceso a los datos, selecciona todos los servicios de Google Cloud.

Ten en cuenta que este método de configuración masiva se aplica solo a los servicios de Google Cloud que están disponibles actualmente para tu recurso. Si se agrega un nuevo servicio de Google Cloud, heredará tu configuración de auditoría predeterminada.

Inhabilita registros de auditoría de acceso a los datos

Para inhabilitar los registros de auditoría de acceso a los datos, haz lo siguiente:

  1. En la tabla Configuración de registros de auditoría de acceso a los datos, selecciona uno o más servicios de Google Cloud.

  2. En la pestaña Tipos de registro en el panel de información, selecciona los tipos de registros de auditoría de acceso a los datos que deseas inhabilitar para los servicios seleccionados.

  3. Haz clic en Guardar.

Si inhabilitaste correctamente los registros de auditoría de acceso a los datos, la tabla lo indicará con un guion. Todos los registros de auditoría de acceso a los datos habilitados se indican con una marca de verificación .

Configurar exenciones

Puedes establecer exenciones si deseas controlar qué principales generan registros de auditoría de acceso a los datos para servicios específicos. Cuando agregas una principal exenta, los registros de auditoría no se crean para los tipos de registros seleccionados.

Para establecer exenciones, haz lo siguiente:

  1. En la tabla Configuración de registros de auditoría de acceso a los datos, selecciona un servicio de Google Cloud de la columna Servicio.

  2. Selecciona la pestaña Principales exentos en el panel de información.

  3. En Agregar exención de principal, ingresa la principal que deseas eximir de generar los registros de auditoría de acceso a los datos para el servicio seleccionado.

    Puedes agregar varias principales si haces clic en el botón Agregar principal exento tantas veces como sea necesario.

    Para obtener una lista de principales válidas, incluidos los usuarios y los grupos, consulta la referencia del tipo Binding.

  4. En Tipos de registros de inhabilitación, selecciona los tipos de registros de auditoría de acceso a los datos que deseas inhabilitar.

  5. Haz clic en Guardar.

Cuando hayas agregado correctamente principales principales exentas a un servicio, la tabla de Configuración de registros de auditoría de acceso a los datos lo indicará con un número en la columna Principales exentas.

Para quitar una principal de tu lista de exención, haz lo siguiente:

  1. En la tabla Configuración de registros de auditoría de acceso a los datos, selecciona un servicio de Google Cloud de la columna Servicio.

  2. Selecciona la pestaña Principales exentos en el panel de información.

  3. Coloca el cursor sobre el nombre de una principal y, luego, selecciona el ícono de borrar que aparece.

  4. Después de que el nombre de la principal se muestre tachado, haz clic en Guardar.

A fin de editar la información de una principal exenta, haz lo siguiente:

  1. En la tabla Configuración de registros de auditoría de acceso a los datos, selecciona un servicio de Google Cloud de la columna Servicio.

  2. Selecciona la pestaña Principales exentos en el panel de información.

  3. Expande el nombre principal.

  4. Selecciona o desmarca los tipos de registros de auditoría de acceso a los datos según corresponda para la principal.

  5. Haz clic en Guardar.

Establece la configuración predeterminada

Puedes establecer una configuración que hereden todos los servicios nuevos y existentes de Google Cloud de tu proyecto de Cloud, organización o carpeta. Esta configuración predeterminada se aplica si hay un nuevo servicio de Google Cloud disponible y las principales de tu organización comienzan a usarlo: el servicio hereda la política de registro de auditoría que ya configuraste para otros servicios de Google Cloud y se asegura de que se capturen los registros de auditoría de acceso a los datos.

Para establecer o editar la configuración predeterminada, haz lo siguiente:

  1. Haga clic en Establecer configuración predeterminada.

  2. En la pestaña Tipos de registro en el panel de información, selecciona los tipos de registros de auditoría de acceso a los datos que deseas habilitar o inhabilitar.

  3. Haz clic en Guardar.

  4. Selecciona la pestaña Principales exentos en el panel de información.

  5. En Agregar exención de principal, ingresa la principal que deseas eximir de generar los registros de auditoría de acceso a los datos para el servicio seleccionado.

    Puedes agregar varias principales si haces clic en el botón Agregar principal exento tantas veces como sea necesario.

    Para obtener una lista de principales válidas, incluidos los usuarios y los grupos, consulta la referencia del tipo Binding.

  6. En Tipos de registros de inhabilitación, selecciona los tipos de registros de auditoría de acceso a los datos que deseas inhabilitar.

  7. Haz clic en Guardar.

Configura registros de auditoría de acceso a los datos con la API

En esta sección, se explica cómo usar la API y la CLI de gcloud para configurar los registros de auditoría de acceso a los datos de manera programática.

Muchas de estas tareas también se pueden realizar con la consola. Para obtener instrucciones, consulta Configura registros de auditoría de acceso a los datos con la consola en esta página.

Objetos de la política de IAM

Para configurar los registros de auditoría de acceso a datos mediante la API, debes editar la política de IAM relacionada con tu proyecto de Cloud, organización o carpeta. La configuración del registro de auditoría se encuentra en la sección auditConfigs de la política:

"auditConfigs": [
  {
    object(AuditConfig)
  }
]

Para obtener más detalles, consulta el tipo de Política de IAM.

En las siguientes secciones, se describe el objeto AuditConfig con más detalle. Para conocer los comandos de la API y de la CLI de gcloud que se utilizan para cambiar la configuración, consulta getIamPolicy y setIamPolicy

AuditConfig objetos

La configuración del registro de auditoría consta de una lista de objetos AuditConfig. Cada objeto configura los registros de un servicio o establece una configuración más amplia para todos los servicios. Cada objeto se ve de la siguiente manera:

{
  "service": SERVICE,
  "auditLogConfigs": [
    {
      "logType": "ADMIN_READ"
      "exemptedMembers": [ PRINCIPAL,]
    },
    {
      "logType": "DATA_READ"
      "exemptedMembers": [ PRINCIPAL,]
    },
    {
      "logType": "DATA_WRITE"
      "exemptedMembers": [ PRINCIPAL,]
    },
  ]
},

SERVICE[SERVICE] es el nombre del servicio, como "appengine.googleapis.com", o el valor especial, "allServices". Si una configuración no menciona un servicio en particular, entonces se usa la configuración más amplia para ese servicio. Si no hay ninguna configuración, los registros de auditoría de acceso a los datos no están habilitados para ese servicio. Para obtener una lista de los nombres de los servicios, consulta Servicios de registro.

La sección auditLogConfigs del objeto AuditConfig es una lista de 0 a 3 objetos, cada uno de los cuales configura un tipo de información de registro de auditoría. Si omites uno de los tipos de la lista, ese tipo de información no estará habilitado para el servicio.

PRINCIPAL es un usuario para el que no se recopilan registros de auditoría de acceso a los datos. En el tipo Binding, se describen diferentes tipos de principales, incluidos los usuarios y los grupos, pero no todos se pueden usar para configurar los registros de auditoría de acceso a los datos.

A continuación, se presenta un ejemplo de una configuración de auditoría en formatos JSON y YAML. El formato YAML es el predeterminado cuando se usa la CLI de Google Cloud.

JSON

"auditConfigs": [
  {
    "auditLogConfigs": [
      {
        "logType": "ADMIN_READ"
      },
      {
        "logType": "DATA_WRITE"
      },
      {
        "logType": "DATA_READ"
      }
    ],
    "service": "allServices"
  },
  {
    "auditLogConfigs": [
      {
        "exemptedMembers": [
          "499862534253-compute@developer.gserviceaccount.com"
        ],
        "logType": "ADMIN_READ"
      }
    ],
    "service": "cloudsql.googleapis.com"
  }
],

YAML

auditConfigs:
- auditLogConfigs:
  - logType: ADMIN_READ
  - logType: DATA_WRITE
  - logType: DATA_READ
  service: allServices
- auditLogConfigs:
  - exemptedMembers:
    - 499862534253-compute@developer.gserviceaccount.com
    logType: ADMIN_READ
  service: cloudsql.googleapis.com

Configuraciones comunes

A continuación, se presentan algunas configuraciones de registros de auditoría comunes para proyectos de Cloud.

Habilita todos los registros de auditoría de acceso a los datos

En la siguiente sección auditConfigs, se habilitan los registros de auditoría de acceso a los datos para todos los servicios y las principales:

JSON

"auditConfigs": [
      {
        "service": "allServices",
        "auditLogConfigs": [
          { "logType": "ADMIN_READ" },
          { "logType": "DATA_READ"  },
          { "logType": "DATA_WRITE" },
        ]
      },
    ]

YAML

auditConfigs:
- auditLogConfigs:
  - logType: ADMIN_READ
  - logType: DATA_WRITE
  - logType: DATA_READ
  service: allServices

Habilita un tipo de información y servicio

La siguiente configuración habilita los registros de auditoría de acceso a los datos de DATA_WRITE para Cloud SQL:

JSON

"auditConfigs": [
  {
    "service": "cloudsql.googleapis.com",
    "auditLogConfigs": [
      { "logType": "DATA_WRITE" },
    ]
  },
]

YAML

auditConfigs:
- auditLogConfigs:
  - logType: DATA_WRITE
  service: cloudsql.googleapis.com

Inhabilita todos los registros de auditoría de acceso a los datos

Para inhabilitar todos los registros de auditoría de acceso a los datos (excepto BigQuery) en un proyecto de Cloud, incluye una sección auditConfigs: vacía en la política de IAM nueva:

JSON

"auditConfigs": [],

YAML

auditConfigs:

Si quitas la sección auditConfigs por completo de tu política nueva, setIamPolicy no cambia la configuración existente de los registros de auditoría de acceso a los datos. Para obtener más información, consulta Máscara de actualización setIamPolicy.

No se pueden inhabilitar los registros de auditoría de acceso a los datos de BigQuery.

getIamPolicy y setIamPolicy

Usas los métodos getIamPolicy y setIamPolicy de la API de Resource Manager para leer y escribir tu política de IAM. Puedes elegir entre diferentes opciones para los métodos específicos que usarás:

  • La API de Resource Manager tiene los siguientes métodos:

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • La CLI de Google Cloud tiene los siguientes comandos de Resource Manager:

    gcloud projects get-iam-policy
    gcloud projects set-iam-policy
    gcloud resource-manager folders get-iam-policy
    gcloud resource-manager folders set-iam-policy
    gcloud organizations get-iam-policy
    gcloud organizations set-iam-policy
    gcloud beta billing accounts get-iam-policy
    gcloud beta billing accounts set-iam-policy
    

Independientemente de tu elección, sigue estos tres pasos:

  1. Lee la política actual mediante uno de los métodos getIamPolicy. Guarda la política en un archivo temporal.
  2. Edita la política en el archivo temporal. Cambia (o agrega) solo la sección auditConfigs.
  3. Escribe la política editada en el archivo temporal mediante uno de los métodos setIamPolicy.

setIamPolicy falla si Resource Manager detecta que otra persona cambió la política después de que la leíste en el primer paso. Si esto sucede, repite los tres pasos.

Examples

En los siguientes ejemplos, se muestra cómo configurar los registros de auditoría de acceso a los datos de tu proyecto mediante el comando de gcloud y la API de Resource Manager.

A fin de configurar los registros de auditoría de acceso a los datos de la organización, reemplaza la versión de “proyectos” de los métodos de la API y los comandos por la versión de “organizaciones”.

gcloud

Para configurar los registros de auditoría de acceso a datos con el comando gcloud projects, haz lo siguiente:

  1. Lee la política de IAM de tu proyecto y almacénala en un archivo.

    gcloud projects get-iam-policy PROJECT_ID > /tmp/policy.yaml
    

    La política que se muestra se detalla a continuación. Esta política aún no tiene una sección auditConfigs:

    bindings:
    - members:
      - user:colleague@example.com
      role: roles/editor
    - members:
      - user:myself@example.com
      role: roles/owner
    etag: BwVM-FDzeYM=
    version: 1
    
  2. Edita la política en /tmp/policy.yaml. Para ello, agrega o cambia solo la configuración de los registros de auditoría de acceso a datos.

    A continuación, se muestra un ejemplo de tu política editada, que habilita los registros de auditoría de acceso de datos de escritura de datos de Cloud SQL. Se agregaron cuatro líneas al principio:

    auditConfigs:
    - auditLogConfigs:
      - logType: DATA_WRITE
      service: cloudsql.googleapis.com
    bindings:
    - members:
      - user:colleague@example.com
      role: roles/editor
    - members:
      - user:myself@example.com
      role: roles/owner
    etag: BwVM-FDzeYM=
    version: 1
    
  3. Escribe tu nueva política de IAM:

    gcloud projects set-iam-policy PROJECT_ID /tmp/policy.yaml
    

    Si el comando anterior informa un conflicto con otro cambio, repite estos pasos y comienza con el primero.

JSON

Para trabajar con tu política de IAM en formato JSON en lugar de YAML, reemplaza los siguientes comandos gcloud en el ejemplo:

gcloud projects get-iam-policy PROJECT_ID --format=json >/tmp/policy.json
gcloud projects set-iam-policy PROJECT_ID /tmp/policy.json

API

Para configurar tus registros de auditoría de acceso a los datos mediante la API de Resource Manager, haz lo siguiente:

  1. Lee la política de IAM de tu proyecto en la que se especifican los siguientes parámetros del método de la API getIamPolicy:

    • Recurso: projects/PROJECT_ID
    • Cuerpo de la solicitud: vacío

    El método muestra el objeto de la política actual, que aparece a continuación. La política de este proyecto aún no tiene una sección auditConfigs:

    {
      "bindings": [
      {
        "members": [
          "user:colleague@example.com"
        ],
        "role": "roles/editor"
      },
      {
        "members": [
          "user:myself@example.com"
        ],
        "role": "roles/owner"
      }
    ],
    "etag": "BwUsv2gimRs=",
    "version": 1
    

    }

  2. Edita la política actual:

    • Cambia o agrega la sección auditConfigs.

      Si deseas inhabilitar tus registros de auditoría de acceso a los datos, incluye un valor vacío para la sección: auditConfigs:[].

    • Conserva el valor de etag.

    También puedes quitar toda la demás información del objeto de política nuevo, siempre y cuando tengas la precaución de configurar updateMask en el paso siguiente. La política editada, que habilita los registros de auditoría de escritura de datos de Cloud SQL, se muestra a continuación:

    {
      "auditConfigs": [
        {
          "auditLogConfigs": [
            {
              "logType": "DATA_WRITE"
            }
          ],
          "service": "cloudsql.googleapis.com"
        }
      ],
      "etag": "BwVM-FDzeYM="
    }
    
  3. Escribe la nueva política mediante el método de la API setIamPolicy y especifica los siguientes parámetros:

    • Recurso: projects/PROJECT_ID
    • Cuerpo de la solicitud:
      • updateMask: "auditConfigs,etag"
      • política: el objeto de tu política editada

La máscara de actualización setIamPolicy

En esta sección, se explica la importancia del parámetro updateMask en el método setIamPolicy y se explica por qué debes tener cuidado con el comando set-iam-policy de la CLI de gcloud para que no ocasiones daños accidentales a tu organización o proyecto de Cloud.

El setIamPolicy API method usa un parámetro updateMask para controlar qué campos de la política se actualizan. Por ejemplo, si la máscara no contiene bindings, no puedes cambiar esa sección de la política por error. Por otro lado, si la máscara contiene bindings, esa sección siempre se actualiza. Si no incluyes un valor actualizado para bindings, esa sección se quita por completo de la política.

El comando gcloud projects set-iam-policy, que llama a setIamPolicy, no te permite especificar el parámetro updateMask. En su lugar, el comando calcula un valor para updateMask de la siguiente manera:

  • La updateMask siempre contiene los campos bindings y etag.
  • Si el objeto de política proporcionado en set-iam-policy contiene algún otro campo de nivel superior, como auditConfigs, esos campos se agregan a updateMask.

Como consecuencia de estas reglas, el comando set-iam-policy tiene los siguientes comportamientos:

  • Si omites la sección auditConfigs en tu política nueva, el valor anterior de la sección auditConfigs (si existe) no se modifica porque esa sección no está en la máscara de actualización. Esto es inofensivo, pero puede ser confuso.

  • Si omites bindings en tu nuevo objeto de política, la sección bindings se quitará de tu política, ya que esta sección aparece en la máscara de actualización. Esto es muy perjudicial y hace que todas las principales pierdan el acceso a tu proyecto de Cloud.

  • Si omites etag en tu nuevo objeto de política, esto inhabilita la verificación de cambios simultáneos en tu política y podría dar como resultado cambios que reemplacen de manera accidental los cambios de otra persona.