Configura registros de acceso a los datos

En esta guía, se explica cómo habilitar y configurar aspectos de registros de auditoría de acceso a datos en tu organización o proyecto. Para conocer información general sobre los registros de auditoría, consulta Cloud Audit Logging.

Los registros de auditoría de actividad del administrador están habilitados para todos los servicios de Google Cloud Platform y no se los puede configurar.

Descripción general de la configuración

Los registros de auditoría de acceso a datos se encuentran inhabilitados de forma predeterminada, excepto para BigQuery. Puedes habilitar y configurar ciertos aspectos de los registros de auditoría de acceso a datos:

  • Organizaciones. Puedes habilitar y configurar registros de auditoría de acceso a datos en cualquier organización, lo que se aplica a proyectos y carpetas nuevas y existentes en la organización.

  • Carpetas. Puedes habilitar y configurar registros de auditoría de acceso a datos en una carpeta, lo que se aplica a todos los proyectos nuevos y existentes en la carpeta. Sin embargo, no puedes inhabilitar los registros de auditoría de acceso a datos que se habilitaron en la organización del proyecto.

  • Proyectos. Puedes configurar los registros de auditoría de acceso a datos para un proyecto individual, pero no puedes inhabilitar los registros de auditoría de acceso a datos que se habilitaron en la organización o carpeta del proyecto.

  • Configuración predeterminada. Puedes especificar una configuración predeterminada de registros de auditoría de acceso a datos en una organización, carpeta o proyecto, lo que se aplica a servicios de GCP futuros que comiencen a producir registros de auditoría de acceso a datos.

  • Servicios. Puedes especificar los servicios cuyos registros de auditoría deseas recibir. Por ejemplo, es posible que quieras registros de auditoría de Compute Engine, pero no de Cloud SQL. Para conocer una lista de todos los servicios de GCP que pueden generar registros de auditoría, consulta Servicios que generan registros de auditoría.

  • Tipos de información. Puedes controlar el tipo de información presente en los registros de auditoría. Existen tres tipos de información de registros de auditoría de acceso a datos:

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

      Los registros de auditoría de la actividad del administrador registran la escritura de información de configuración y metadatos. No se los puede inhabilitar.

    • 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, puedes registrar solo las operaciones de escritura de datos, pero registrar los tres tipos de información desde Cloud DNS.

  • Usuarios exentos. Puedes eximir a usuarios específicos o grupos para que sus accesos a datos no se registren. Por ejemplo, puedes eximir a tus cuentas de pruebas internas para que sus operaciones de Stackdriver Debug no se registren.

Puedes configurar los registros de auditoría de acceso a datos mediante la consola o la API de Logging. Estos métodos se explican en la próxima sección.

Configuraciones específicas del servicio

Si hay una configuración de todos los servicios de GCP (allServices) y una para un servicio específico de GCP, entonces la configuración que surja como resultado para el servicio será la unión de ambas. En otras palabras:

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

  • Puedes agregar otros tipos de información al registro de auditoría de acceso a datos del servicio de GCP, pero no puedes quitar tipos de información especificados en la configuración más amplia.

  • Puedes agregar usuarios a listas de exenciones, pero no puedes quitar usuarios de las listas de exenciones en la configuración más amplia.

Organización y configuración de carpetas y proyectos

Puedes configurar registros de auditoría de acceso a datos para organizaciones, carpetas y proyectos. Si hay una configuración para un servicio de GCP en toda la jerarquía, entonces la configuración que surja como resultado será la unión de ellas. En otras palabras, a nivel del proyecto puedes hacer lo siguiente:

  • Puedes habilitar registros para un servicio de GCP, pero no puedes inhabilitar registros para un servicio de GCP que esté habilitado en la organización o carpeta.

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

  • Puedes agregar usuarios a las listas de exención, pero no puedes quitar usuarios que estén en las listas de exención de la organización o la carpeta.

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

Control de acceso

Necesitas las funciones de IAM roles/resourcemanager.organizationAdmin para configurar los registros de auditoría de acceso a datos a nivel de la organización, roles/resourcemanager.folderAdmin a fin de configurar los registros de auditoría de acceso a datos a nivel de la carpeta y roles/owner a nivel del proyecto.

Configura registros de acceso de datos con GCP Console

En esta sección, se explica cómo utiliza GCP Console para configurar los registros de auditoría de acceso a datos.

Puedes utilizar la API o el SDK de Cloud para realizar estas tareas de manera programática; consulta Configura los registros de acceso de datos con la API para obtener más detalles.

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

  1. Desde GCP Console, selecciona IAM y administración > Registros de auditoría del menú ampliado en la esquina superior izquierda.

    Ir a la página Registros de auditoría

  2. Selecciona un proyecto de GCP, una organización o una carpeta en la parte superior de la página.

Habilita registros de auditoría

En los siguientes pasos, se muestra cómo habilitar los registros de acceso a datos:

  1. En la tabla principal de la página Registros de auditoría, selecciona uno o más servicios de GCP; para ello, haz clic en la casilla ubicada a la izquierda del nombre del servicio en la columna Título.

  2. En la pestaña Tipo de registro a la derecha de la tabla, selecciona las casillas de los tipos de registros de auditoría de acceso a datos que deseas habilitar y, a continuación, haz clic en Guardar.

  3. 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 API de Cloud Composer (Cloud Composer API), los registros de auditoría Lectura de administración (Admin Read) y Lectura de datos (Data Read) están habilitados

    Configuración de registros de auditoría

También puedes habilitar todos los registros de auditoría para todos los servicios de GCP que producen registros de auditoría de acceso a datos. En la tabla principal de la página Registros de auditoría, selecciona todos los servicios de GCP; para ello, haz clic en la casilla ubicada a la izquierda de Título.

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

Inhabilita registros de auditoría

En los siguientes pasos. se muestra cómo inhabilitar los registros de acceso a datos:

  1. En la tabla principal de la página Registros de auditoría, selecciona uno o más servicios de GCP; para ello, haz clic en la casilla ubicada a la izquierda del nombre del servicio en la columna Título.

  2. En la pestaña Tipo de registro a la derecha de la tabla, selecciona las casillas de los tipos de registros de auditoría de acceso a datos que deseas inhabilitar y, a continuación, haz clic en Guardar.

  3. Si inhabilitaste correctamente los registros de auditoría, la tabla lo indicará con un guion gris. Todos los registros de auditoría habilitados se indican con un símbolo de marca de verificación verde.

Configura exenciones de usuarios

Puedes configurar exenciones para controlar qué usuarios generan registros de auditoría. Cuando agregas un usuario exento, no se crean registros de auditoría para los tipos de registros que seleccionaste para él. Ten en cuenta que los registros de actividad de administradores se generan siempre, independientemente del estado de exención.

En los siguientes pasos, se muestra cómo configurar las exenciones:

  1. En la tabla principal de la página de configuración de Registros de auditoría, selecciona uno o más servicios de GCP; para ello, haz clic en la casilla ubicada a la izquierda del nombre del servicio en la columna Título.

  2. Selecciona la pestaña Usuarios exentos en el panel de información a la derecha de la tabla. Debajo de Agregar usuario exento, escribe la dirección de correo electrónico del usuario que deseas agregar a la lista de exención para los servicios seleccionados. Puedes agregar varios usuarios; para ello, selecciona el botón Agregar usuario exento tantas veces como sea necesario.

  3. En la dirección de correo electrónico, selecciona las casillas de los tipos de registros de auditoría de acceso a datos que deseas inhabilitar y, a continuación, haz clic en Guardar.

  4. Cuando hayas agregado correctamente usuarios exentos a un servicio, la tabla lo indicará con un número en la columna Exenciones.

Para quitar un usuario de la lista de exenciones, sigue estos pasos:

  1. Ve a la pestaña Usuarios exentos en el panel de información.

  2. Desplázate sobre el nombre de un usuario y selecciona el ícono de papelera que aparece.

  3. Una vez que el nombre del usuario aparezca en texto tachado, haz clic en Guardar.

Para editar la información de un usuario exento, sigue estos pasos:

  1. Ve a la pestaña Usuarios exentos en el panel de información.

  2. Haz clic en la flecha desplegable a la derecha del nombre de usuario.

  3. Selecciona o desmarca los tipos de registros de auditoría de acceso a datos según corresponda para el usuario y, a continuación, haz clic en Guardar.

Establece la configuración predeterminada

Puedes establecer una configuración que heredarán todos los servicios de GCP nuevos y existentes en tu proyecto, organización o carpeta. Esta configuración predeterminada se aplica si un nuevo servicio de GCP se vuelve disponible y los usuarios en tu organización comienzan a utilizarlo: el servicio hereda la política de registro de auditorías que ya configuraste para otros servicios de GCP y se garantiza que se capturen los registros de auditoría de acceso a datos.

  1. Haz clic en Establecer configuración predeterminada en la parte superior de la página.

  2. En la pestaña Tipo de registro, selecciona las casillas de los tipos de registros de auditoría de acceso a datos que deseas habilitar o inhabilitar y, a continuación, haz clic en Save.

  3. En la pestaña Usuarios exentos, escribe la dirección de correo electrónico de los usuarios que deseas agregar a la lista de exención y, a continuación, haz clic en Guardar. Sigue los pasos detallados en Configura exenciones de usuarios arriba.

Configura los registros de acceso de datos con la API

En esta sección, se explica cómo utilizar la interfaz de línea de comandos de la API y el SDK de Cloud para configurar los registros de auditoría de acceso a datos de manera programática.

Muchas de estas tareas también se pueden realizar mediante GCP Console; consulta Configura registros de acceso de datos con GCP Console para obtener más detalles.

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, organización o carpeta. La configuración de registro de auditoría está 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 en más detalle. A fin de conocer los comandos de la API y del SDK de Cloud que se utilizan para cambiar la configuración, consulta getIamPolicy y setIamPolicy

Objetos de AuditConfig

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": [ [MEMBER],]
    },
    {
      "logType": "DATA_READ"
      "exemptedMembers": [ [MEMBER],]
    },
    {
      "logType": "DATA_WRITE"
      "exemptedMembers": [ [MEMBER],]
    },
  ]
},

[SERVICE] es un nombre de servicio como "appengine.googleapis.com", o es el valor especial, "allServices". Si una configuración no menciona un servicio en particular, entonces se utiliza la configuración más amplia para ese. Si no hay una configuración, entonces los registros de accesos de datos no están habilitados para ese servicio. Para conocer 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, entonces ese tipo de información no estará habilitada para el servicio.

[MEMBER] es un usuario para el cual no se recopilan registros de auditoría de acceso de datos. Puedes especificar un usuario, un grupo o una única cuenta de servicio. El Tipo de vínculo describe diferentes tipos de miembros, pero no todos ellos se pueden utilizar para configurar registros de auditoría de acceso de 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 utilizan los comandos del SDK de 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.

Estas configuraciones no tienen en cuenta ninguna configuración de registro de auditoría en la organización o carpeta del proyecto. Para obtener más información, consulta Organización y configuración del proyecto.

Habilita todos los registros de acceso

La siguiente sección auditConfigs habilita los registros de acceso de datos para todos los servicios y usuarios:

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 de datos para Cloud SQL. Los registros solamente registran las escrituras de datos definidos por usuarios:

JSON

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

YAML

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

Inhabilita todos los registros

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

JSON

"auditConfigs": [],

YAML

auditConfigs:

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

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

getIamPolicy y setIamPolicy

Los métodos getIamPolicy y setIamPolicy de Cloud Resource Manager se utilizan para leer y escribir tu política de IAM. Puedes elegir entre diferentes opciones para los métodos específicos que utilizarás:

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

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • El SDK de Cloud tiene los siguientes comandos de Cloud Resource Manager:

    gcloud projects get-iam-policy
    gcloud projects set-iam-policy
    gcloud organizations get-iam-policy
    gcloud organizations 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) solamente la sección auditConfigs.
  3. Escribe la política editada en el archivo temporal mediante uno de los métodos setIamPolicy.

setIamPolicy arroja errores si Cloud Resource Manager detecta que alguien más cambió la política después de que la leíste en el primer paso. Si esto sucede, repite los tres pasos.

Ejemplos

Los siguientes ejemplos demuestran cómo configurar los registros de auditoría de acceso de datos de tu proyecto mediante el comando de gcloud y la API de Cloud Resource Manager.

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

SDK de Cloud

Para configurar tus registros de auditoría de acceso de datos mediante el comando gcloud projects, sigue estos pasos:

  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 todavía 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 /tmp/policy.yaml, agrega o cambia solamente la configuración de los registros de auditoría de acceso de 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 vez de YAML, sustituye los siguientes comandos de 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 de datos mediante la API de Cloud Resource Manager, sigue estos pasos:

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

    • recurso: projects/[PROJECT_ID]
    • Cuerpo del recurso: vacío

    El método muestra el objeto de la política actual, que aparece a continuación. La política de este proyecto todavía 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 de datos, incluye un valor vacío para la sección auditConfigs:[].

    • Conserva el valor de etag.

    Si lo deseas, puedes quitar toda la información del objeto de la nueva política, siempre y cuando recuerdes establecer updateMask en el próximo paso. 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 editado

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 por qué debemos tener cuidado con el comando set-iam-policy de SDK para no causar daños accidentales a tu organización o proyecto.

El método de la API setIamPolicy utiliza un parámetro updateMask para controlar los campos de la política que se actualizan. Por ejemplo, si la máscara no contiene bindings, entonces no podrás cambiar accidentalmente la sección de la política. Por otro lado, si la máscara sí contiene bindings, esta sección siempre está actualizada. Si no incluyes un valor actualizado para bindings, la sección se quitará completamente de la política.

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

  • La updateMask siempre contiene los campos bindings y etag.
  • Si el objeto de la política suministrado en set-iam-policy contiene cualquier otro campo de nivel superior, como auditConfigs, entonces 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 nueva política, el valor anterior de la sección auditConfigs (si existe) no cambia, ya que esa sección no está en la máscara de actualización. Esto es inofensivo, pero puede ser confuso.

  • Si omites bindings en el objeto de tu nueva política, entonces 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, ya que, como consecuencia, todos los usuarios pierden acceso a tu proyecto.

  • Si omites etag en el objeto de tu nuevo proyecto, se inhabilita la comprobación de cambios simultáneos en tu política, y podría llevar a que tus cambios reemplacen accidentalmente los de otra persona.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Stackdriver Logging
¿Necesitas ayuda? Visita nuestra página de asistencia.