Controlar el acceso de IAM en función de la sensibilidad de los datos

En esta página se describe cómo conceder o denegar automáticamente el acceso de Gestión de Identidades y Accesos (IAM) a los recursos en función de la sensibilidad de los datos de esos recursos.

Puede configurar el servicio de descubrimiento de Protección de Datos Sensibles para que asigne automáticamente etiquetas a los recursos en función de los niveles de sensibilidad calculados de esos recursos. Después, puede usar condiciones de IAM para conceder o denegar el acceso a un recurso en función de si hay o no una clave o un valor de etiqueta de nivel de sensibilidad.

Supongamos que quieres que el equipo de datos de tu organización pueda copiar y compartir libremente datos de BigQuery en sus operaciones diarias. Sin embargo, no sabes si alguno de esos datos contiene información personal identificable (IPI) de tus clientes. Puedes ejecutar una detección para clasificar los niveles de sensibilidad de tus datos de BigQuery. A continuación, concede acceso condicional al equipo de datos para que solo pueda acceder a las tablas de BigQuery que contengan datos de baja sensibilidad.

Para obtener más información sobre cómo calcula la sensibilidad de los datos la protección de datos sensibles, consulta Niveles de riesgo y sensibilidad de los datos.

Para obtener más información sobre cómo usar etiquetas para controlar el acceso a los recursos, consulta Etiquetas y acceso condicional en la documentación de gestión de identidades y accesos. Para obtener información general sobre las etiquetas, consulta la descripción general de las etiquetas en la documentación de Resource Manager.

Etiqueta de nivel de sensibilidad

En este documento, se usa el término etiqueta de nivel de sensibilidad para hacer referencia a una etiqueta que se adjunta automáticamente a un recurso para indicar el nivel de sensibilidad calculado de los datos de ese recurso.

Ventajas

Esta función te permite hacer lo siguiente:

  • Automatiza el control de acceso en varios recursos admitidos en función de los atributos y las clasificaciones de los datos de esos recursos. La automatización te ayuda a estar al día de los cambios y el crecimiento de los datos de tu organización, carpetas y proyectos.
  • Restringe el acceso a los recursos admitidos hasta que Protección de Datos Sensibles cree un perfil de esos recursos y los clasifique. Esta práctica se ajusta al principio de seguridad predeterminada.
  • Configura el descubrimiento para que actualice el valor de la etiqueta de nivel de sensibilidad cada vez que cree un perfil de tus datos. Por lo tanto, el acceso de una entidad a un recurso cambia automáticamente a medida que cambia el nivel de sensibilidad de los datos calculado para ese recurso.
  • Configura el descubrimiento para reducir el nivel de riesgo de los datos calculado en un recurso si el descubrimiento detecta que hay una etiqueta de nivel de sensibilidad en ese recurso. Esta opción te ayuda a medir la mejora de la seguridad y la privacidad de tus datos.

Recursos compatibles

Con esta función, Protección de Datos Sensibles etiqueta automáticamente los datos en los siguientes niveles:

  • Tablas de BigQuery
  • Instancias de Cloud SQL
  • Segmentos de Cloud Storage

Cómo funciona

A continuación, se muestra un flujo de trabajo general para controlar el acceso a los recursos en función de la sensibilidad de los datos. No es necesario que las realice la misma persona.

  1. Crear una etiqueta de nivel de sensibilidad
  2. Conceder acceso condicional a los recursos en función del valor de la etiqueta de nivel de confidencialidad
  3. Habilitar el etiquetado automático en la configuración de Discovery
  4. Concede al agente de servicio permiso para adjuntar la etiqueta de nivel de sensibilidad a los recursos

Permisos obligatorios

Los permisos que necesitas dependen de la acción que quieras realizar.

Para obtener estos permisos, pide a tu administrador que te conceda el rol sugerido en el nivel adecuado de la jerarquía de recursos.

Permisos para administrar etiquetas

Consulta Administrar etiquetas en la documentación de Resource Manager.

Permisos para conceder acceso condicional a los recursos

Consulta las funciones obligatorias en la documentación de gestión de identidades y accesos.

Permisos para configurar el descubrimiento

Consulte los roles necesarios para configurar y ver perfiles de datos.

Crear una etiqueta de nivel de sensibilidad

En esta tarea, creará una clave de etiqueta con valores de etiqueta que se asignen a los niveles de sensibilidad de los datos que usa Protección de Datos Sensibles para clasificar sus datos. Por ejemplo, puedes usar la siguiente clave de etiqueta y los siguientes valores de etiqueta.

  1. Asigna el valor sensitivity-level a la clave de la etiqueta.
  2. Defina los siguientes valores de etiqueta:

    low
    Valor de la etiqueta que se va a adjuntar a los datos de baja sensibilidad.
    moderate
    Valor de la etiqueta que se va a adjuntar a los datos de sensibilidad moderada
    high
    Valor de la etiqueta que se va a adjuntar a los datos de alta sensibilidad

    También puede crear un valor de etiqueta para los recursos que tengan un nivel de sensibilidad desconocido. También puede reutilizar cualquiera de los valores de las etiquetas low, medium o high en esos recursos.

  3. Ten en cuenta lo siguiente. Necesitarás estos datos en la siguiente tarea:

    • ID de clave de etiqueta, por ejemplo, tagKeys/281478077849901
    • Pares clave-valor de la etiqueta, como tagValues/281479490918432
    • Rutas de valor de etiqueta, como example-project/tag-key/tag-value1

Para simplificar, en este ejemplo se establece una asignación individual entre un valor de etiqueta y un nivel de sensibilidad. En la práctica, puede personalizar los valores de las etiquetas para adaptarlos a las necesidades de su empresa. Por ejemplo, puede usar valores como confidential, PII o SPII (información personal identificable sensible).

El descubrimiento de datos sensibles se puede configurar a nivel de organización, carpeta y proyecto. Si quieres usar esta etiqueta de nivel de sensibilidad para la detección a nivel de organización o de carpeta, te recomendamos que la crees a nivel de organización.

Para obtener información sobre cómo crear una etiqueta, consulta el artículo Crear y gestionar etiquetas de la documentación de Gestor de recursos.

Conceder acceso condicional a los recursos en función del valor de la etiqueta de nivel de confidencialidad

En esta tarea, asignas un rol a una entidad principal solo si la etiqueta de nivel de sensibilidad asociada al recurso tiene un valor específico. Por ejemplo, puedes conceder a un principal acceso solo a los datos con los valores de etiqueta moderate y low.

En esta sección se proporcionan ejemplos de condiciones con el formato adecuado para usarse con el editor de condiciones. El editor de condiciones proporciona una interfaz basada en texto para introducir manualmente una expresión mediante la sintaxis de CEL. Para obtener información sobre cómo adjuntar condiciones de gestión de identidades y accesos a las vinculaciones de roles, consulta el artículo sobre cómo gestionar vinculaciones de roles condicionales de la documentación de gestión de identidades y accesos.

Estos ejemplos siguen el modelo de etiquetado definido en la sección Crear una etiqueta de nivel de sensibilidad de esta página.

Conceder a las principales acceso solo a datos de baja sensibilidad

En este ejemplo, se concede acceso a un recurso si este solo contiene datos de baja sensibilidad. También puedes usar este ejemplo para restringir todo el acceso al recurso hasta que se haya ejecutado la detección de datos sensibles en él.

resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY",
"tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY")

Haz los cambios siguientes:

  • SENSITIVITY_LEVEL_TAG_KEY: el ID numérico de la clave de etiqueta del nivel de sensibilidad que has creado
  • TAG_VALUE_FOR_LOW_SENSITIVITY: el ID numérico del valor de etiqueta que ha creado para los datos de baja sensibilidad.

Conceder a las entidades acceso solo a datos de sensibilidad moderada y baja

En este ejemplo, se concede acceso a un recurso si este contiene solo datos de sensibilidad moderada o baja. Ten en cuenta que hay un operador OR entre las dos condiciones.

resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY") ||
resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY")

Haz los cambios siguientes:

  • SENSITIVITY_LEVEL_TAG_KEY: el ID numérico de la clave de etiqueta del nivel de sensibilidad que has creado
  • TAG_VALUE_FOR_LOW_SENSITIVITY: el ID numérico del valor de etiqueta que ha creado para los datos de baja sensibilidad.
  • TAG_VALUE_FOR_MODERATE_SENSITIVITY: el ID numérico del valor de la etiqueta que ha creado para los datos de sensibilidad moderada.

Conceder acceso a las entidades solo si está presente la etiqueta de nivel de sensibilidad

Esto resulta útil, por ejemplo, si quieres definir una política de organización que requiera que todo el acceso de IAM sea condicional en función de la presencia de una etiqueta de nivel de sensibilidad. También puedes usar este ejemplo para restringir todo el acceso al recurso hasta que se haya ejecutado la detección de datos sensibles en él.

resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")

Sustituye SENSITIVITY_LEVEL_TAG_KEY por el ID numérico de la clave de etiqueta de nivel de sensibilidad que has creado.

Ejemplos de políticas de denegación

Para obtener información sobre cómo crear una política de denegación para usarla con una etiqueta de recurso, consulta Estructura de una política de denegación. Para ver una lista de los permisos admitidos, consulta Permisos admitidos por las políticas de denegación.

Denegar el acceso si no hay ninguna etiqueta de nivel de sensibilidad

El siguiente fragmento de una política de denegación deniega el permiso bigquery.googleapis.com/tables.get si el recurso no tiene la etiqueta de nivel de sensibilidad.

  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principalSet://goog/group/data-team@example.com"
        ],
        "deniedPermissions": [
          "bigquery.googleapis.com/tables.get"
        ],
        "denialCondition": {
          "title": "Resource has no key",
          "expression": "!resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")"
        }
      }
    }
  ]

Sustituye SENSITIVITY_LEVEL_TAG_KEY por el ID numérico de la clave de etiqueta de nivel de sensibilidad que has creado.

Denegar el acceso si hay datos de sensibilidad moderada o alta

El siguiente fragmento de una política de denegación deniega el permiso bigquery.googleapis.com/tables.get si el recurso tiene datos de sensibilidad moderada o alta.

  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principalSet://goog/group/data-team@example.com"
        ],
        "deniedPermissions": [
          "bigquery.googleapis.com/tables.get"
        ],
        "denialCondition": {
          "title": "Resource has moderate or high data sensitivity",
          "expression": "resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY") || resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_HIGH_SENSITIVITY")"
        }
      }
    }
  ]

Haz los cambios siguientes:

  • SENSITIVITY_LEVEL_TAG_KEY: el ID numérico de la clave de etiqueta del nivel de sensibilidad que has creado
  • TAG_VALUE_FOR_MODERATE_SENSITIVITY: el ID numérico del valor de la etiqueta que ha creado para los datos de sensibilidad moderada.
  • TAG_VALUE_FOR_HIGH_SENSITIVITY: el ID numérico del valor de la etiqueta que has creado para los datos de alta sensibilidad

Habilita el etiquetado automático en la configuración de descubrimiento

En esta tarea, habilitarás la acción Etiquetar recursos. Esta acción indica a Protección de Datos Sensibles que etiquete automáticamente sus datos según el nivel de sensibilidad calculado. Esta tarea se realiza cuando crea o edita una configuración de análisis de descubrimiento.

Para etiquetar automáticamente un recurso según su nivel de sensibilidad calculado, sigue estos pasos:

  1. Activa la opción Etiquetar recursos.
  2. En cada nivel de sensibilidad (alto, moderado, bajo y desconocido), introduzca la ruta del valor de la etiqueta que haya creado para ese nivel.

    Si omite un nivel de sensibilidad, no se adjuntará ninguna etiqueta.

  3. Para reducir automáticamente el nivel de riesgo de datos de un recurso cuando se incluya la etiqueta de nivel de sensibilidad, selecciona Cuando se aplique una etiqueta a un recurso, reduce el riesgo de datos de su perfil a BAJO. Esta opción te ayuda a medir la mejora de la seguridad y la privacidad de tus datos.

  4. Selecciona una o ambas de las siguientes opciones:

    • Etiqueta un recurso cuando se cree un perfil de él por primera vez.
    • Etiqueta un recurso cuando se actualice su perfil. Seleccione esta opción si quiere que Protección de Datos Sensibles sobrescriba el valor de la etiqueta de nivel de sensibilidad en las ejecuciones de descubrimiento posteriores. Por lo tanto, el acceso de un principal a un recurso cambia automáticamente a medida que aumenta o disminuye el nivel de sensibilidad de los datos calculado para ese recurso.

      No selecciones esta opción si tienes previsto actualizar manualmente los valores de las etiquetas de nivel de sensibilidad que el servicio de detección ha asociado a tus recursos. Si selecciona esta opción, Protección de Datos Sensibles puede sobrescribir sus actualizaciones manuales.

El descubrimiento de datos sensibles se puede configurar a nivel de organización, carpeta y proyecto. Si tienes intención de usar esta etiqueta de nivel de sensibilidad para la detección a nivel de organización y no quieres que las operaciones de detección a nivel de proyecto sobrescriban los valores de la etiqueta definidos por la detección a nivel de organización, asegúrate de que solo el agente de servicio de la configuración de detección a nivel de organización pueda adjuntar esta etiqueta a los recursos. Para obtener información sobre cómo conceder un rol a nivel de etiqueta, consulta el artículo Gestionar el acceso a etiquetas de la documentación de Resource Manager.

Solución de errores

En esta sección se describen los errores que pueden surgir al usar esta función y cómo solucionarlos.

Se ha superado el número máximo de etiquetas

Cada recurso puede tener un máximo de 50 pares clave-valor asociados. Si intentas etiquetar un recurso que ya tiene el número máximo de etiquetas, se producirá un error al generar el perfil. Aparece el siguiente error:

The resource RESOURCE_NAME cannot be tagged because there are
too many existing tags bound to the resource. You can either disable automatic
tagging or delete at least one tag binding from the resource.

Para solucionar este problema, desasocie una etiqueta del recurso. Para obtener más información, consulta lo siguiente:

También puedes inhabilitar la acción Etiquetar recursos en la configuración de tu análisis de descubrimiento.

Se ha eliminado o cambiado el nombre de un valor de etiqueta y Discovery ha intentado asociarlo a un recurso

Si se elimina o se cambia el nombre de un valor de etiqueta de nivel de sensibilidad y Sensitive Data Protection intenta asociar ese valor de etiqueta a un recurso perfilado, se produce el siguiente error:

Tag value TAG_VALUE not found, it has possibly been either deleted or renamed.

Para solucionar este problema, haz una de las siguientes acciones:

  • Si la etiqueta se ha eliminado, vuelva a crear el valor de etiqueta eliminado. Asegúrate de que el valor de la etiqueta recreada coincida con el valor de la etiqueta al que se hace referencia en la configuración de la exploración de descubrimiento. Para obtener más información, consulta la sección Crear una etiqueta de nivel de sensibilidad de esta página.
  • Si se ha cambiado el nombre del valor de la etiqueta, actualice la configuración del análisis de descubrimiento para usar el nuevo nombre del valor de la etiqueta.

Al agente de servicio le faltan permisos

Si el agente de servicio no tiene los permisos necesarios para adjuntar la etiqueta de nivel de sensibilidad a los recursos perfilados, se mostrará el siguiente error:

The DLP service account SERVICE_AGENT_NAME is missing
permissions needed for attaching tags to resources. Check that the role
'resourcemanager.tagUser' is granted to the DLP service account.

Para solucionar este problema, sigue estos pasos:

  1. Obtén el ID del agente de servicio asociado a la configuración de tu análisis de descubrimiento:

    1. Ve a la lista de configuraciones de análisis de descubrimiento.

      Ir a las configuraciones de análisis de detección

    2. En la barra de herramientas, selecciona tu organización.
    3. Selecciona la configuración de análisis.
    4. En la página Scan configuration details (Detalles de la configuración del análisis), copia el valor del campo Service agent (Agente de servicio). El ID de agente de servicio tiene el formato de una dirección de correo electrónico.
  2. Asigna al agente de servicio el rol Usuario de etiquetas (roles/resourcemanager.tagUser) en la etiqueta de nivel de sensibilidad.

    También puedes conceder un rol personalizado en la etiqueta de nivel de sensibilidad. El rol personalizado debe tener el permiso resourcemanager.tagValues.get y permisos específicos de recursos para gestionar las vinculaciones de etiquetas. Necesitas los permisos createTagBinding, deleteTagBinding y listEffectiveTags específicos del recurso. Por ejemplo, en el caso de las tablas de BigQuery, necesitas lo siguiente:

    • resourcemanager.tagValues.get
    • bigquery.tables.createTagBinding
    • bigquery.tables.deleteTagBinding
    • bigquery.tables.listEffectiveTags

    Para obtener información sobre cómo asignar un rol a nivel de etiqueta, consulta el artículo Gestionar el acceso a las etiquetas de la documentación de Resource Manager.

Siguientes pasos

  • Crea o edita una configuración de análisis.