Habilitar registros de auditoría de acceso a 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 de tusGoogle Cloud proyectos, cuentas de facturación, carpetas y organizaciones mediante la consola o la API. Google Cloud

Antes de empezar

Antes de configurar los registros de auditoría de acceso a datos, debes tener en cuenta la siguiente información:

  • Los registros de auditoría de acceso a los datos (excepto los de BigQuery) están inhabilitados de forma predeterminada. Si quieres que se escriban registros de auditoría de acceso a los datos deGoogle Cloud servicios distintos de BigQuery, debes habilitarlos explícitamente.

  • Los registros de auditoría de acceso a los datos se almacenan en el segmento _Default, a menos que los hayas dirigido a otro lugar. Para obtener más información, consulta el artículo sobre cómo almacenar y enrutar registros de auditoría.

  • Los registros de auditoría de acceso a datos ayudan al equipo de Asistencia de Google a solucionar problemas con tu cuenta. Por lo tanto, recomendamos habilitar los registros de auditoría de acceso a datos siempre que sea posible.

  • Para obtener los permisos que necesitas para acceder a todos los registros de los segmentos _Required y _Default, incluidos los registros de acceso a datos, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Lector de registros privados (roles/logging.privateLogViewer) en tu proyecto.

    El rol Visualizador de registros privados (roles/logging.privateLogViewer) incluye los permisos del rol Visualizador de registros (roles/logging.viewer) y los necesarios para leer los registros de auditoría de acceso a los datos en el contenedor _Default.

    El rol Editor (roles/editor) no incluye los permisos necesarios para ver los registros de acceso a datos.

    Para obtener más información sobre los permisos y roles de gestión de identidades y accesos que se aplican a los datos de los registros de auditoría, consulta el artículo sobre el control de acceso con gestión de identidades y accesos.

Descripción general de la configuración

Puedes configurar cómo se habilitan los registros de auditoría de acceso a datos en tusGoogle Cloud recursos y servicios:

  • Organizaciones: puede habilitar y configurar los registros de auditoría de acceso a datos en una organización, lo que se aplica a todos los proyectos y carpetas de la organización, tanto los que ya existen como los nuevos.Google Cloud

  • Carpetas: puedes habilitar y configurar los registros de auditoría de acceso a datos en una carpeta, lo que se aplica a todos los proyectos que ya haya en la carpeta y a los que se creen en ella. Google Cloud No puedes inhabilitar un registro de auditoría de acceso a datos que se haya habilitado en la organización superior del proyecto.

  • Proyectos: puedes configurar registros de auditoría de acceso a datos para unGoogle Cloud proyecto concreto. No puedes inhabilitar un registro de auditoría de acceso a datos que se haya habilitado en una organización o carpeta de nivel superior.

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

  • Configuraciones predeterminadas: puedes especificar una configuración predeterminada de registros de auditoría de acceso a datos en una organización, una carpeta o un Google Cloud proyecto que se aplique a los servicios Google Cloud que empiecen a generar registros de auditoría de acceso a datos. Para obtener instrucciones, consulta Definir la configuración predeterminada.

  • Tipos de permisos: puedes especificar que las APIs que solo comprueban un determinado tipo de permiso emitan un registro de auditoría. Google Cloud Para obtener más información, consulta la sección Tipos de permisos de esta página.

  • Principales exentos: puede eximir a principales específicos de que se registren sus accesos a datos. Por ejemplo, puedes eximir a tus cuentas de pruebas internas de que se registren sus operaciones de Cloud Monitoring. Para ver una lista de las entidades de seguridad 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 en la página Registros de auditoría de gestión de identidades y accesos de la Google Cloud consola o mediante la API. Estos métodos se explican en las secciones siguientes.

Tipos de permisos

Los métodos de la API comprueban los permisos de gestión de identidades y accesos. Cada permiso de gestión de identidades y accesos tiene un tipo de permiso, que se define mediante la propiedad type. Los tipos de permisos se clasifican como permisos de acceso a datos o como permisos de actividad de administrador:

  • Tipos de permisos de acceso a datos:

    • ADMIN_READ: los permisos de IAM de este tipo se comprueban en los métodos de la APIGoogle Cloud que leen metadatos o información de configuración. Normalmente, los registros de auditoría ADMIN_READ están inhabilitados de forma predeterminada y deben habilitarse.

    • DATA_READ: los permisos de gestión de identidades y accesos de este tipo se comprueban en los métodos de la APIGoogle Cloud que leen los datos proporcionados por el usuario. Por lo general, los DATA_READ registros de auditoría están inhabilitados de forma predeterminada y deben habilitarse.

    • DATA_WRITE: se comprueban los permisos de gestión de identidades y accesos de este tipo en los métodos de la APIGoogle Cloud que escriben datos proporcionados por el usuario. Por lo general, los DATA_WRITE registros de auditoría están inhabilitados de forma predeterminada y deben habilitarse.

  • Tipo de permiso de actividad de administrador:

    • ADMIN_WRITE: los permisos de IAM de este tipo se comprueban en los métodos de la APIGoogle Cloud que escriben metadatos o información de configuración. Los registros de auditoría asociados a este tipo, los registros de auditoría de actividad de administración, están activados de forma predeterminada y no se pueden inhabilitar.

Puedes habilitar o inhabilitar tipos de permisos para servicios mediante la consolaGoogle Cloud o invocando la API.

La mayoría de las APIs solo comprueban si el llamador tiene un único permiso de gestión de identidades y accesos. Google Cloud Si el tipo de permiso asociado a ese permiso está habilitado para el servicio cuya API se está llamando, la API genera un registro de auditoría.

En las siguientes secciones se describen de forma general otras formas en las que los métodos de la API Google Cloudcomprueban los permisos de IAM. Para obtener información específica del servicio sobre qué métodos se comprueban para qué tipos de permisos, consulta la documentación de registro de auditoría del servicio.

Comprobación de permisos de gestión de identidades y accesos para tipos de permisos de acceso a datos

Algunos métodos de la API Google Cloud comprueban si el llamante tiene varios permisos de gestión de identidades y accesos con diferentes tipos de permisos de acceso a datos. Se escribe un registro de auditoría cuando se habilita uno de esos tipos de permiso de acceso a datos en el proyecto.

Por ejemplo, un método de API puede comprobar que la entidad que emite una solicitud de API tiene los permisos example.resource.get (DATA_READ) y example.resource.write (DATA_WRITE). El proyecto solo necesita que se habilite DATA_WRITE o DATA_READ para que el servicio emita el registro de auditoría al emitir la llamada.

Tipos de permisos de gestión de identidades y accesos de actividad de administrador y acceso a datos comprobados

Algunos métodos de la API Google Cloud comprueban si se tiene un permiso de gestión de identidades y accesos con el tipo de permiso ADMIN_WRITE y uno o varios permisos con el tipo de permiso de acceso a datos.

Estos tipos de llamadas a la API emiten registros de auditoría de actividad de administración, que están activados de forma predeterminada y no se pueden inhabilitar.

El método de API comprueba los permisos de gestión de identidades y accesos que no son propiedad del servicio

Algunos Google Cloud servicios tienen métodos de API que generan un registro de auditoría solo cuando se habilita un tipo de permiso específico para otro servicio.

Por ejemplo, la Facturación de Cloud tiene un método de API que comprueba si hay un ADMIN_READ tipo de permiso propiedad de Resource Manager. ADMIN_READ debe estar habilitado para el servicio cloudresourcemanager.googleapis.com para habilitar el registro de auditoría asociado a la API Cloud Billing.

El mismo método de API comprueba diferentes permisos de gestión de identidades y accesos

En algunas APIs, la forma en que se llama al método determina qué tipo(s) de permiso de gestión de identidades y accesos se deben habilitar en el proyecto para que se genere un registro de auditoría. Google Cloud

Por ejemplo, Spanner tiene un método de API que a veces comprueba un permiso de gestión de identidades y accesos (IAM) de tipo DATA_WRITE y otras veces comprueba un permiso de IAM de tipo DATA_READ, en función de cómo se llame al método. En este caso, si habilitas DATA_WRITE en Spanner en el proyecto, la llamada a la API solo habilitará el registro de auditoría asociado a la API cuando se compruebe el permiso de gestión de identidades y accesos con el tipo DATA_WRITE.

Configuraciones específicas de los servicios

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

  • Puedes habilitar los registros de auditoría de acceso a datos para servicios Google Cloud específicos, pero no puedes inhabilitarlos para los serviciosGoogle Cloud que estén habilitados en la configuración general.

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

  • Puedes añadir principales a las listas de excepciones, pero no puedes quitarlos de las listas de excepciones en la configuración general.

  • En BigQuery Data Transfer Service, la configuración de los registros de auditoría de acceso a los datos se hereda de la configuración predeterminada de los registros de auditoría.

Google Cloud configuraciones de recursos

Puede configurar los registros de auditoría de acceso a datos en Google Cloud proyectos, cuentas de facturación, carpetas y organizaciones. Si hay una configuración para un servicioGoogle Cloud en toda la jerarquía, la configuración resultante es la unión de las configuraciones. Es decir, a nivel de proyecto:Google Cloud

  • Puedes habilitar los registros de un servicio Google Cloud , pero no puedes inhabilitar los registros de un servicio Google Cloud que esté habilitado en una organización o carpeta principal.

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

  • Puedes añadir principales a las listas de excepciones, pero no puedes quitarlos de las listas de excepciones de una organización o carpeta superior.

  • A nivel de organización o carpeta principal, puedes habilitar los registros de auditoría de acceso a los datos de un proyecto Google Cloud de esa organización o carpeta, aunque no se hayan configurado en el proyectoGoogle Cloud .

Control de acceso

Los roles y permisos de Gestión de Identidades y Accesos rigen el acceso a los datos de registro, incluido el acceso para ver y gestionar las políticas de Gestión de Identidades y Accesos subyacentes a las configuraciones de registro de auditoría de acceso a datos.

Para ver o definir las políticas asociadas a la configuración de acceso a los datos, necesitas un rol con permisos en el nivel de recurso adecuado. Para obtener instrucciones sobre cómo asignar estos roles a nivel de recurso, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones. Google Cloud

  • Para definir políticas de gestión de identidades y accesos, necesitas un rol con el permiso resourcemanager.RESOURCE_TYPE.setIamPolicy.

  • Para ver las políticas de gestión de identidades y accesos, necesitas un rol con el permiso resourcemanager.RESOURCE_TYPE.getIamPolicy.

Para ver la lista de permisos y roles que necesitas para ver los registros de auditoría de acceso a los datos, consulta Control de acceso con gestión de identidades y accesos.

Configurar registros de auditoría de acceso a datos con la Google Cloud consola

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

También puedes usar la API o la CLI de Google Cloud para realizar estas tareas de forma programática. Consulta Configurar registros de auditoría de acceso a datos con la API para obtener más información.

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

  1. En la Google Cloud consola, ve a la página Registros de auditoría:

    Ve a Registros de auditoría.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo sea IAM y administrador.

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

Habilitar registros de auditoría

Para habilitar los registros de auditoría de acceso a datos, sigue estos pasos:

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

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

  3. Haz clic en Guardar.

Si has habilitado los registros de auditoría correctamente, la tabla incluirá el icono de marca de verificación.

En el siguiente ejemplo, se muestra que el tipo de registro de auditoría Lectura de datos está habilitado para el servicio de aprobación de acceso:

Configuración de registros de auditoría

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

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

Inhabilitar registros de auditoría de acceso a datos

Para inhabilitar los registros de auditoría de acceso a datos, sigue estos pasos:

  1. En la tabla Configuración de registros de auditoría de acceso a datos, selecciona uno o variosGoogle Cloud servicios.

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

  3. Haz clic en Guardar.

Si has inhabilitado correctamente los registros de auditoría de acceso a datos, la tabla lo indicará con un guion. Los registros de auditoría de acceso a datos habilitados se indican con un icono de marca de verificación.

Definir exenciones

Puedes definir exenciones para controlar qué principales generan registros de auditoría de acceso a datos de servicios concretos. Cuando añades un principal exento, no se crean registros de auditoría para él en los tipos de registro seleccionados.

Para definir exenciones, siga estos pasos:

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

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

  3. En Añadir principal exento, introduce el principal que quieras eximir de generar registros de auditoría de acceso a datos para el servicio seleccionado.

    Puedes añadir varios principales haciendo clic en el botón Añadir principal exento tantas veces como sea necesario.

    Para ver una lista de las entidades de seguridad válidas, incluidos los usuarios y los grupos, consulta la referencia del tipo Binding.

  4. En Tipos de registros inhabilitados, selecciona los tipos de registros de auditoría de acceso a datos que quieras inhabilitar.

  5. Haz clic en Guardar.

Si has añadido correctamente principales exentos a un servicio, la tabla Configuración de registros de auditoría de acceso a datos lo indica con un número en la columna Principales exentos.

Para quitar un principal de tu lista de excepciones, sigue estos pasos:

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

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

  3. Coloca el cursor sobre el nombre de un principal y selecciona Eliminar.

  4. Cuando el nombre del director aparezca tachado, haz clic en Guardar.

Para editar la información de un administrador principal exento, siga estos pasos:

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

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

  3. Busca el principal y selecciona Mostrar más.

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

  5. Haz clic en Guardar.

Definir la configuración predeterminada

Puedes definir una configuración que hereden todos los servicios Google Cloud nuevos y actuales de tu Google Cloud proyecto, carpeta u organización. Si se aplica esta configuración predeterminada, cuando esté disponible un nuevo Google Cloud servicio y los principales de tu organización empiecen a usarlo, el servicio heredará la política de registro de auditoría que ya hayas definido para otros Google Cloud servicios, lo que garantiza que se registren los registros de auditoría de acceso a datos.

Para definir o editar la configuración predeterminada, sigue estos pasos:

  1. Haz clic en Definir configuración predeterminada.

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

  3. Haz clic en Guardar.

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

  5. En Añadir principal exento, introduce el principal que quieras eximir de generar registros de auditoría de acceso a datos para el servicio seleccionado.

    Puedes añadir varios principales haciendo clic en el botón Añadir principal exento tantas veces como sea necesario.

    Para ver una lista de las entidades de seguridad válidas, incluidos los usuarios y los grupos, consulta la referencia del tipo Binding.

  6. En Tipos de registros inhabilitados, selecciona los tipos de registros de auditoría de acceso a datos que quieras inhabilitar.

  7. Haz clic en Guardar.

Configurar registros de auditoría de acceso a 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 datos de forma programática.

Muchas de estas tareas también se pueden realizar mediante la consola Google Cloud . Para obtener instrucciones, consulta la sección Configurar registros de auditoría de acceso a datos con la consola Google Cloud de esta página.

Objetos de política de gestión de identidades y accesos

Para configurar los registros de auditoría de acceso a los datos mediante la API, debes editar la política de gestión de identidades y accesos asociada a tu Google Cloud proyecto, carpeta u organización. 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 información, consulta el tipo Policy de gestión de identidades y accesos.

En las secciones siguientes se describe el objeto AuditConfig con más detalle. Para ver los comandos de la API y de gcloud CLI que se usan para cambiar la configuración, consulta la sección 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 tiene el siguiente aspecto:

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

SERVICE_NAME tiene un valor como "appengine.googleapis.com" o el valor especial "allServices". Si una configuración no menciona un servicio concreto, se utiliza la configuración más general para ese servicio. Si no hay ninguna configuración, los registros de auditoría de acceso a datos no estarán habilitados para ese servicio. Para ver una lista de los nombres de los servicios, consulta Servicios de registro.

La sección auditLogConfigs del objeto AuditConfig es una lista de entre 0 y 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 se habilitará en el servicio.

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

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

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 habituales

A continuación, se muestran algunas configuraciones habituales de registros de auditoría para proyectos de Google Cloud .

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

En la sección auditConfigs siguiente, se habilitan los registros de auditoría de acceso a datos para todos los servicios y 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

Habilitar un servicio y un tipo de información

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

JSON

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

YAML

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

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

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

JSON

"auditConfigs": [],

YAML

auditConfigs:

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

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

getIamPolicy y setIamPolicy

Para leer y escribir tu política de IAM, utiliza los métodos getIamPolicy y setIamPolicy de la API Cloud Resource Manager. Tienes varias opciones para elegir los métodos específicos que quieras usar:

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

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • La interfaz de línea de comandos 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 la opción que elijas, sigue estos tres pasos:

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

setIamPolicy falla si Resource Manager detecta que otra persona ha cambiado la política después de que la hayas leído en el primer paso. Si esto ocurre, repite los tres pasos.

.

Ejemplos

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

Para configurar los registros de auditoría de acceso a datos de una organización, sustituye la versión "projects" de los comandos y métodos de la API por la versión "organizations".

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 gestión de identidades y accesos de tu proyecto y guárdala en un archivo:

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

    A continuación se muestra la política devuelta. Esta política 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 tu política en /tmp/policy.yaml. Añade o cambia solo la configuración de los registros de auditoría de acceso a datos.

    Un ejemplo de la política editada, que habilita los registros de auditoría de acceso a datos de escritura de datos de Cloud SQL:

    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
    

    Como se muestra en el ejemplo anterior, se han añadido cuatro líneas al principio de la política.

  3. Escribe tu nueva política de gestión de identidades y accesos:

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

    Si el comando anterior informa de un conflicto con otro cambio, repite estos pasos, empezando por el primero.

JSON

Para trabajar con tu política de IAM en formato JSON en lugar de YAML, sustituye 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 los registros de auditoría de acceso a datos con la API Cloud Resource Manager, sigue estos pasos:

  1. Lee la política de gestión de identidades y accesos de tu proyecto. Para ello, especifica los siguientes parámetros en el método de la API getIamPolicy:

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

    El método devuelve el objeto de política actual:

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

    En el ejemplo anterior se muestra que la política del proyecto no tiene una sección auditConfigs.

  2. Edita la política actual:

    • Cambia o añade la sección auditConfigs.

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

    • Conserva el valor de etag.

    También puedes eliminar toda la demás información del nuevo objeto de política, siempre que tengas cuidado de definir updateMask en el siguiente paso. A continuación, se muestra la política editada, que habilita los registros de auditoría de Cloud SQL DATA_WRITE:

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

    • recurso: projects/PROJECT_ID
    • Cuerpo de la solicitud: incluye la política editada.
.

Máscara de actualización de setIamPolicy

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

El método de la API setIamPolicy 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 podrá cambiar esa sección de la política por error. Por otro lado, si la máscara contiene bindings, esa sección se actualiza siempre. Si no incluye un valor actualizado para bindings, esa sección se eliminará por completo de la política.

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

  • El updateMask siempre contiene los campos bindings y etag.
  • Si el objeto de política proporcionado en set-iam-policy contiene otros campos de nivel superior, como auditConfigs, esos campos se añadirán a updateMask.

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

  • Si omite la sección auditConfigs en su nueva política, el valor anterior de la sección auditConfigs (si lo hay) no se modificará, ya que esa sección no está en la máscara de actualización. No es perjudicial, pero puede resultar confuso.

  • Si omite bindings en su nuevo objeto de política, la sección bindings se eliminará de su política, ya que aparece en la máscara de actualización. Esto es muy perjudicial y provoca que todas las entidades de seguridad pierdan el acceso a tu proyecto Google Cloud .

  • Si omite etag en su nuevo objeto de política, se inhabilitará la comprobación de los cambios simultáneos en su política y es posible que sus cambios sobrescriban accidentalmente los de otra persona.