Infotipos y detectores de Infotipos

La Protección de datos sensibles usa tipos de información, o Infotipos, para definir lo que busca. Un Infotipo es un tipo de dato sensible, como un nombre, una dirección de correo electrónico, un número de teléfono, un número de identificación, un número de tarjeta de crédito, etcétera. Un detector de Infotipo es el mecanismo de detección correspondiente que coincide con los criterios de coincidencia de un Infotipo.

Prácticas recomendadas para seleccionar infotipos

Comprender tus datos es uno de los primeros pasos fundamentales para protegerlos. Como práctica recomendada, debes recopilar, almacenar y procesar solo la información que necesites para tu empresa. Si identificas los datos que manejas, podrás tomar decisiones fundamentadas para tu empresa, los usuarios y la postura de seguridad y privacidad de los datos.

Es posible que algunos de tus casos de uso comerciales requieran cierta información sensible y que otros no. No hay una sola solución que admita todos los casos de uso. Por este motivo, Sensitive Data Protection ofrece un control flexible sobre los tipos de datos que se deben analizar. Si usas infotipos para la desidentificación o el enmascaramiento, también tienes control sobre cuándo y cómo se transforman los datos.

Lineamientos generales

Ten en cuenta los siguientes lineamientos generales cuando selecciones infoTypes.

Información sensible que no necesitas recopilar

Cada servicio de tu empresa debe recopilar solo los datos que necesita. Por ejemplo, ciertos servicios de tu empresa no necesitan recopilar información financiera. Para esos servicios, considera habilitar detectores de Infotipo, como CREDIT_CARD_NUMBER, FINANCIAL_ACCOUNT_NUMBER y otros Infotipos en la categoría de la industria FINANCE.

Información que necesitas recopilar, pero que no quieres compartir ampliamente con tu equipo

Puede haber casos de uso válidos para recopilar información personal, pero no debes compartirla ampliamente con tu equipo. Por ejemplo, un cliente que envía un ticket de asistencia puede brindarte información de contacto para que puedas comunicarte con él y resolver cualquier problema. No quieres que todos los miembros del equipo que vean el ticket vean la información de identificación personal (PII). Considera habilitar detectores de Infotipo como PHONE_NUMBER, EMAIL_ADDRESS y otros Infotipos en la categoría de tipo PII.

Categorías de datos sensibles que están bajo reglamentaciones de la industria, la privacidad de los datos o jurisdiccionales

Ciertos tipos de información se consideran sensibles debido a la forma en que se emiten o para lo que se pueden usar. En otros casos, la información contextual y demográfica se considera una categoría protegida. Estos tipos de información pueden tener restricciones adicionales sobre cómo se recopilan, usan y administran. Considera habilitar los detectores de Infotipo en las siguientes categorías:

Cómo elegir entre infotipos similares

Ten en cuenta lo siguiente cuando elijas entre detectores de Infotipo similares.

Pasaportes

Si no necesitas buscar identificadores de pasaportes de un país específico, elige el detector generalizado: PASSPORT.

Hay disponibles ciertos detectores de pasaportes específicos de cada país, como UK_PASSPORT. Sin embargo, algunos detectores de pasaportes específicos de un país solo pueden identificar pasaportes con formatos específicos o con la presencia de pistas contextuales.

Nombres de personas

Cuando busques nombres de personas, usa PERSON_NAME para la mayoría de los casos de uso en lugar de FIRST_NAME o LAST_NAME.

PERSON_NAME es un detector de nombres de personas. Incluye nombres de una sola palabra y nombres completos. Este detector intenta detectar, por ejemplo, nombres como Jane, Jane Smith y Jane Marie Smith con varias tecnologías, incluida la comprensión del lenguaje natural. FIRST_NAME y LAST_NAME son subconjuntos de este detector que intentan identificar partes de un nombre. Los resultados de estos detectores siempre son subconjuntos de los resultados de PERSON_NAME.

Fechas y horas

Si no necesitas buscar todas las fechas, considera usar un detector de fecha segmentada como DATE_OF_BIRTH. Este detector intenta identificar el contexto que indica que la fecha se relaciona con el momento en que nace una persona.

El detector DATE intenta encontrar todas las fechas sin importar el contexto. También marca las fechas relativas, como hoy o ayer. Del mismo modo, TIME intenta encontrar todas las marcas de tiempo.

Ubicaciones

Si no necesitas buscar todas las ubicaciones, considera usar STREET_ADDRESS en lugar del detector LOCATION. El detector STREET_ADDRESS intenta encontrar direcciones completamente calificadas, que suelen ser más precisas que las ubicaciones genéricas y se pueden considerar más sensibles.

El detector de infotipo LOCATION intenta encontrar cualquier ubicación, independientemente del contexto, por ejemplo, París o Canadá.

Detectores de Infotipo que requieren contexto

Muchos detectores de Infotipo requieren que haya pistas contextuales antes de identificar una coincidencia. Si un detector de Infotipo integrado no marca los elementos que esperas que se marquen, porque no hay pistas contextuales cerca de esos elementos, considera usar GENERIC_ID o un detector de Infotipo personalizado.

Tipos de información que no tienen una definición común de la industria

Algunos tipos de información no tienen una definición común de la industria. Algunos ejemplos son los números de historias clínicas, los números de cuenta, los PIN y los códigos de seguridad. Para estos tipos, considera usar infotipos como GENERIC_ID, FINANCIAL_ACCOUNT_NUMBER y MEDICAL_RECORD_NUMBER. Estos detectores usan una combinación de detección de entidades y contexto para encontrar elementos potencialmente sensibles.

Detectores de Infotipo de latencia más alta

  • Evita habilitar detectores de Infotipo que no necesites. Aunque los siguientes infoTypes son útiles en ciertas situaciones, pueden hacer que las solicitudes se ejecuten mucho más lentamente que las que no los incluyen:

    • PERSON_NAME
    • FEMALE_NAME
    • MALE_NAME
    • FIRST_NAME
    • LAST_NAME
    • DATE_OF_BIRTH
    • LOCATION
    • STREET_ADDRESS
    • ORGANIZATION_NAME
  • Especifica siempre los detectores de Infotipo de forma explícita. No uses una lista de infoTypes vacía.

Cómo usar Infotipos

Sensitive Data Protection usa los detectores de Infotipo en la configuración de sus análisis para determinar qué inspeccionar y cómo transformar los resultados. Los nombres de Infotipo también se usan cuando se muestran o informan resultados de análisis.

Por ejemplo, si deseas buscar direcciones de correo electrónico en un bloque de texto, debes especificar el detector de Infotipo EMAIL_ADDRESS en la configuración de inspección. Si deseas ocultar las direcciones de correo electrónico del bloque de texto, debes especificar EMAIL_ADDRESS en la configuración de inspección y en la de desidentificación para indicar cómo ocultar o transformar ese tipo.

Además, puedes usar una combinación de detectores de Infotipos integrados y personalizados para excluir un subconjunto de direcciones de correo electrónico de los resultados del análisis. Primero, crea un Infotipo personalizado llamado INTERNAL_EMAIL_ADDRESS y configúralo para que se excluyan las direcciones de correo electrónico de prueba internas. Luego, puedes configurar tu análisis con el fin de que incluya resultados para EMAIL_ADDRESS, pero incluye una regla de exclusión que omita cualquier resultado que coincida con INTERNAL_EMAIL_ADDRESS. Si deseas obtener más información sobre las reglas de exclusión y otras funciones de los detectores de Infotipos personalizados, consulta Crea detectores de Infotipos personalizados.

La Protección de datos sensibles proporciona un conjunto de detectores de Infotipo integrados que especificas por nombre, cada uno de los cuales aparece en la referencia del detector de Infotipos. Estos detectores usan una variedad de técnicas para encontrar y clasificar cada tipo. Por ejemplo, algunos tipos requerirán una coincidencia de patrones, algunos pueden tener sumas de verificación matemáticas, algunos tienen restricciones de dígitos especiales y otros pueden tener prefijos específicos o contexto alrededor de los resultados.

Ejemplos

Cuando configuras Sensitive Data Protection para que analice tu contenido, debes incluir los detectores de Infotipo que usarás en la configuración de análisis.

Por ejemplo, en los siguientes JSON y muestras de código, se muestra una solicitud de análisis simple a la API de DLP. Ten en cuenta que el detector PHONE_NUMBER se especifica en inspectConfig, lo que le indica a Sensitive Data Protection que analice la cadena dada en busca de un número de teléfono.

C#

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.

Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


using System;
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dlp.V2;

public class InspectPhoneNumber
{
    public static InspectContentResponse Inspect(
        string projectId,
        string text,
        Likelihood minLikelihood = Likelihood.Possible)
    {
        // Instantiate a client.
        var dlp = DlpServiceClient.Create();

        // Set content item.
        var contentItem = new ContentItem { Value = text };

        // Construct inspect config.
        var inspectConfig = new InspectConfig
        {
            InfoTypes = { new InfoType { Name = "PHONE_NUMBER" } },
            IncludeQuote = true,
            MinLikelihood = minLikelihood
        };

        // Construct a request.
        var request = new InspectContentRequest
        {
            ParentAsLocationName = new LocationName(projectId, "global"),
            InspectConfig = inspectConfig,
            Item = contentItem,
        };

        // Call the API.
        var response = dlp.InspectContent(request);

        // Inspect the results.
        var resultFindings = response.Result.Findings;

        Console.WriteLine($"Findings: {resultFindings.Count}");

        foreach (var f in resultFindings)
        {
            Console.WriteLine("\tQuote: " + f.Quote);
            Console.WriteLine("\tInfo type: " + f.InfoType.Name);
            Console.WriteLine("\tLikelihood: " + f.Likelihood);
        }

        return response;
    }
}

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.

Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"

	dlp "cloud.google.com/go/dlp/apiv2"
	"cloud.google.com/go/dlp/apiv2/dlppb"
)

// inspectPhoneNumber demonstrates a simple scan request to the Cloud DLP API.
// Notice that the PHONE_NUMBER detector is specified in inspectConfig,
// which instructs Cloud DLP to scan the given string for a phone number.
func inspectPhoneNumber(w io.Writer, projectID, textToInspect string) error {
	// projectID := "my-project-id"
	// textToInspect := "My phone number is (123) 555-6789"

	ctx := context.Background()

	// Initialize a client once and reuse it to send multiple requests. Clients
	// are safe to use across goroutines. When the client is no longer needed,
	// call the Close method to cleanup its resources.
	client, err := dlp.NewClient(ctx)
	if err != nil {
		return err
	}
	// Closing the client safely cleans up background resources.
	defer client.Close()

	// Create and send the request.
	req := &dlppb.InspectContentRequest{
		Parent: fmt.Sprintf("projects/%s/locations/global", projectID),
		Item: &dlppb.ContentItem{
			DataItem: &dlppb.ContentItem_Value{
				Value: textToInspect,
			},
		},
		InspectConfig: &dlppb.InspectConfig{
			// Specify the type of info the inspection will look for.
			// See https://cloud.google.com/dlp/docs/infotypes-reference
			// for complete list of info types
			InfoTypes: []*dlppb.InfoType{
				{Name: "PHONE_NUMBER"},
			},
			IncludeQuote: true,
		},
	}

	// Send the request.
	resp, err := client.InspectContent(ctx, req)
	if err != nil {
		fmt.Fprintf(w, "receive: %v", err)
		return err
	}

	// Process the results.
	result := resp.Result
	fmt.Fprintf(w, "Findings: %d\n", len(result.Findings))
	for _, f := range result.Findings {
		fmt.Fprintf(w, "\tQuote: %s\n", f.Quote)
		fmt.Fprintf(w, "\tInfo type: %s\n", f.InfoType.Name)
		fmt.Fprintf(w, "\tLikelihood: %s\n", f.Likelihood)
	}
	return nil
}

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.

Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


import com.google.cloud.dlp.v2.DlpServiceClient;
import com.google.privacy.dlp.v2.ContentItem;
import com.google.privacy.dlp.v2.Finding;
import com.google.privacy.dlp.v2.InfoType;
import com.google.privacy.dlp.v2.InspectConfig;
import com.google.privacy.dlp.v2.InspectContentRequest;
import com.google.privacy.dlp.v2.InspectContentResponse;
import com.google.privacy.dlp.v2.Likelihood;
import com.google.privacy.dlp.v2.LocationName;
import java.io.IOException;

public class InspectPhoneNumber {

  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String textToInspect = "My name is Gary and my email is gary@example.com";
    inspectString(projectId, textToInspect);
  }

  // Inspects the provided text.
  public static void inspectString(String projectId, String textToInspect) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (DlpServiceClient dlp = DlpServiceClient.create()) {
      // Specify the type and content to be inspected.
      ContentItem item = ContentItem.newBuilder().setValue(textToInspect).build();

      // Specify the type of info the inspection will look for.
      // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
      InfoType infoType = InfoType.newBuilder().setName("PHONE_NUMBER").build();

      // Construct the configuration for the Inspect request.
      InspectConfig config =
          InspectConfig.newBuilder()
              .setIncludeQuote(true)
              .setMinLikelihood(Likelihood.POSSIBLE)
              .addInfoTypes(infoType)
              .build();

      // Construct the Inspect request to be sent by the client.
      InspectContentRequest request =
          InspectContentRequest.newBuilder()
              .setParent(LocationName.of(projectId, "global").toString())
              .setItem(item)
              .setInspectConfig(config)
              .build();

      // Use the client to send the API request.
      InspectContentResponse response = dlp.inspectContent(request);

      // Parse the response and process results
      System.out.println("Findings: " + response.getResult().getFindingsCount());
      for (Finding f : response.getResult().getFindingsList()) {
        System.out.println("\tQuote: " + f.getQuote());
        System.out.println("\tInfo type: " + f.getInfoType().getName());
        System.out.println("\tLikelihood: " + f.getLikelihood());
      }
    }
  }
}

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.

Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

// Imports the Google Cloud Data Loss Prevention library
const DLP = require('@google-cloud/dlp');

// Instantiates a client
const dlp = new DLP.DlpServiceClient();

// The project ID to run the API call under
// const projectId = 'my-project';

// The string to inspect
// const string = 'My email is gary@example.com and my phone number is (223) 456-7890.';

// The minimum likelihood required before returning a match
// const minLikelihood = 'LIKELIHOOD_UNSPECIFIED';

// The maximum number of findings to report per request (0 = server maximum)
// const maxFindings = 0;

// The infoTypes of information to match
// See https://cloud.google.com/dlp/docs/concepts-infotypes for more information
// about supported infoTypes.
// const infoTypes = [{ name: 'PHONE_NUMBER' }];

// The customInfoTypes of information to match
// const customInfoTypes = [{ infoType: { name: 'DICT_TYPE' }, dictionary: { wordList: { words: ['foo', 'bar', 'baz']}}},
//   { infoType: { name: 'REGEX_TYPE' }, regex: {pattern: '\\(\\d{3}\\) \\d{3}-\\d{4}'}}];

// Whether to include the matching string
// const includeQuote = true;

async function inspectPhoneNumber() {
  // Construct item to inspect
  const item = {value: string};

  // Construct request
  const request = {
    parent: `projects/${projectId}/locations/global`,
    inspectConfig: {
      infoTypes: infoTypes,
      customInfoTypes: customInfoTypes,
      minLikelihood: minLikelihood,
      includeQuote: includeQuote,
      limits: {
        maxFindingsPerRequest: maxFindings,
      },
    },
    item: item,
  };

  // Run request
  const [response] = await dlp.inspectContent(request);
  const findings = response.result.findings;
  if (findings.length > 0) {
    console.log('Findings:');
    findings.forEach(finding => {
      if (includeQuote) {
        console.log(`\tQuote: ${finding.quote}`);
      }
      console.log(`\tInfo type: ${finding.infoType.name}`);
      console.log(`\tLikelihood: ${finding.likelihood}`);
    });
  } else {
    console.log('No findings.');
  }
}
inspectPhoneNumber();

PHP

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.

Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

use Google\Cloud\Dlp\V2\Client\DlpServiceClient;
use Google\Cloud\Dlp\V2\ContentItem;
use Google\Cloud\Dlp\V2\InfoType;
use Google\Cloud\Dlp\V2\InspectConfig;
use Google\Cloud\Dlp\V2\InspectContentRequest;
use Google\Cloud\Dlp\V2\Likelihood;

/**
 * Inspect data for phone numbers
 * Demonstrates a simple scan request to the Cloud DLP API. Notice that the PHONE_NUMBER detector is specified in inspectConfig, which instructs Cloud DLP to scan the given string for a phone number.
 *
 * @param string $projectId         The Google Cloud project id to use as a parent resource.
 * @param string $textToInspect     The string to inspect.
 */
function inspect_phone_number(
    // TODO(developer): Replace sample parameters before running the code.
    string $projectId,
    string $textToInspect = 'My name is Gary and my phone number is (415) 555-0890'
): void {
    // Instantiate a client.
    $dlp = new DlpServiceClient();

    $parent = "projects/$projectId/locations/global";

    // Specify what content you want the service to Inspect.
    $item = (new ContentItem())
        ->setValue($textToInspect);

    $inspectConfig = (new InspectConfig())
        // The infoTypes of information to match
        ->setInfoTypes([
            (new InfoType())->setName('PHONE_NUMBER'),
        ])
        // Whether to include the matching string
        ->setIncludeQuote(true)
        ->setMinLikelihood(Likelihood::POSSIBLE);

    // Run request
    $inspectContentRequest = (new InspectContentRequest())
        ->setParent($parent)
        ->setInspectConfig($inspectConfig)
        ->setItem($item);
    $response = $dlp->inspectContent($inspectContentRequest);

    // Print the results
    $findings = $response->getResult()->getFindings();
    if (count($findings) == 0) {
        printf('No findings.' . PHP_EOL);
    } else {
        printf('Findings:' . PHP_EOL);
        foreach ($findings as $finding) {
            printf('  Quote: %s' . PHP_EOL, $finding->getQuote());
            printf('  Info type: %s' . PHP_EOL, $finding->getInfoType()->getName());
            printf('  Likelihood: %s' . PHP_EOL, Likelihood::name($finding->getLikelihood()));
        }
    }
}

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.

Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import google.cloud.dlp


def inspect_phone_number(
    project: str,
    content_string: str,
) -> None:
    """Uses the Data Loss Prevention API to analyze strings for protected data.
    Args:
        project: The Google Cloud project id to use as a parent resource.
        content_string: The string to inspect phone number from.
    """

    # Instantiate a client.
    dlp = google.cloud.dlp_v2.DlpServiceClient()

    # Prepare info_types by converting the list of strings into a list of
    # dictionaries (protos are also accepted).
    info_types = [{"name": "PHONE_NUMBER"}]

    # Construct the configuration dictionary.
    inspect_config = {
        "info_types": info_types,
        "include_quote": True,
    }

    # Construct the `item`.
    item = {"value": content_string}

    # Convert the project id into a full resource id.
    parent = f"projects/{project}"

    # Call the API.
    response = dlp.inspect_content(
        request={"parent": parent, "inspect_config": inspect_config, "item": item}
    )

    # Print out the results.
    if response.result.findings:
        for finding in response.result.findings:
            print(f"Quote: {finding.quote}")
            print(f"Info type: {finding.info_type.name}")
            print(f"Likelihood: {finding.likelihood}")
    else:
        print("No findings.")

REST

Entrada de JSON:

POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/content:inspect?key={YOUR_API_KEY}

{
  "item":{
    "value":"My phone number is (415) 555-0890"
  },
  "inspectConfig":{
    "includeQuote":true,
    "minLikelihood":"POSSIBLE",
    "infoTypes":{
      "name":"PHONE_NUMBER"
    }
  }
}

Cuando envías la solicitud anterior al extremo especificado, Sensitive Data Protection muestra lo siguiente:

Resultado de JSON:

{
  "result":{
    "findings":[
      {
        "quote":"(415) 555-0890",
        "infoType":{
          "name":"PHONE_NUMBER"
        },
        "likelihood":"VERY_LIKELY",
        "location":{
          "byteRange":{
            "start":"19",
            "end":"33"
          },
          "codepointRange":{
            "start":"19",
            "end":"33"
          }
        },
        "createTime":"2018-10-29T23:46:34.535Z"
      }
    ]
  }
}

Debes especificar infoTypes específicos que se enumeran en la referencia en la configuración de inspección. Si no especificas ningún infotipo, Sensitive Data Protection usa una lista de infotipos predeterminada que se diseñó solo para pruebas. Es posible que la lista predeterminada no sea adecuada para tus casos de uso.

Si quieres obtener más información sobre cómo usar los detectores de Infotipos para analizar tu contenido, consulta uno de los temas prácticos sobre análisis, ocultamiento o desidentificación.

Certeza y pruebas

Los resultados se informan con una puntuación de certeza llamada probabilidad. La puntuación de probabilidad indica la probabilidad de que un resultado coincida con el tipo correspondiente. Por ejemplo, un tipo puede mostrar una probabilidad más baja si solo coincide con el patrón y una más alta si coincide con el patrón y tiene un contexto positivo a su alrededor. Por este motivo, es posible que observes que un solo resultado puede coincidir con varios tipos con menor probabilidad. Además, es posible que un resultado no aparezca o tenga una certeza más baja si no coincide de forma correcta o si tiene un contexto negativo. Por ejemplo, es posible que un resultado no se informe si coincide con la estructura del Infotipo especificado, pero falla la suma de verificación del Infotipo. O un resultado podría coincidir con más de un Infotipo, pero tener contexto que esté a favor de uno de ellos y, por lo tanto, solo se informe para ese tipo.

Si estás probando varios detectores, es posible que notes que los datos falsos o de muestra no se informan porque esos datos no pasan suficientes verificaciones para informarse.

Tipos de detectores de Infotipos

Sensitive Data Protection incluye varios tipos de detectores de Infotipo, los cuales se resumen a continuación:

  • Los detectores de Infotipo incorporados están integrados en la Protección de datos sensibles. Incluyen detectores para tipos de datos sensibles específicos de un país o región, así como tipos de datos aplicables a nivel mundial.
  • Los detectores de Infotipos personalizados son detectores que creas tú mismo. Existen tres tipos de detectores de Infotipos personalizados:
    • Los detectores de diccionarios personalizados pequeños son listas de palabras simples con las que la Protección de datos sensibles genera coincidencias. Usa los detectores de diccionarios personalizados pequeños cuando tengas una lista de al menos varias decenas de miles de palabras o frases. Se prefieren los detectores de diccionarios personalizados pequeños si esperas que la lista de palabras no cambie de forma significativa.
    • Sensitive Data Protection genera detectores de diccionarios personalizados grandes con listas grandes de palabras o frases almacenadas en Cloud Storage o BigQuery. Usa los detectores de diccionarios personalizados grandes cuando tengas una gran lista de palabras o frases (hasta decenas de millones).
    • Los detectores de expresiones regulares (regex) permiten que la Protección de datos sensibles detecte coincidencias basadas en un patrón de expresión regular.

Además, la Protección de datos sensibles incluye el concepto de reglas de inspección, que te permiten ajustar con precisión los resultados del análisis mediante las siguientes reglas:

  • Las reglas de exclusión te permiten reducir el número de resultados que se muestran mediante la adición de reglas a un detector de Infotipo incorporado o personalizado.
  • Las reglas de palabra clave te permiten aumentar la cantidad o cambiar el valor de probabilidad de los resultados que se muestran si agregas reglas a un detector de Infotipos integrado o personalizado.

Detectores de Infotipos incorporados

Los detectores de Infotipo incorporados están integrados en la Protección de datos sensibles y también incluyen detectores para tipos de datos sensibles específicos de un país o región, como el Numéro d'Inscription au Répertoire (NIR) (FRANCE_NIR) francés, el número de licencia de conducir del Reino Unido (UK_DRIVERS_LICENSE_NUMBER) y el número de identificación personal de EE.UU. (US_SOCIAL_SECURITY_NUMBER). También incluyen tipos de datos aplicables a nivel mundial, como el nombre de una persona (PERSON_NAME), números de teléfono (PHONE_NUMBER), direcciones de correo electrónico (EMAIL_ADDRESS) y números de tarjetas de crédito (CREDIT_CARD_NUMBER). Para detectar contenido que corresponda a infotipos, la Protección de datos sensibles aprovecha varias técnicas, como la coincidencia de patrones, las sumas de comprobación, el aprendizaje automático, el análisis de contexto y otras.

La lista de detectores de Infotipo incorporados siempre se actualiza. Para obtener una lista completa de los detectores de Infotipos integrados que se admiten por el momento, consulta la Referencia del detector de Infotipos.

También puedes ver una lista completa de todos los detectores de Infotipo integrados si llamas al método infoTypes.list de Sensitive Data Protection.

Idiomas admitidos

Los infoTypes específicos de cada país admiten el idioma inglés y los idiomas del país correspondiente. La mayoría de los infotipos globales funcionan con varios idiomas. Prueba la Protección de datos sensibles con tus datos para verificar que cumpla con tus requisitos.

Detectores de Infotipo personalizados

Existen tres tipos de detectores de Infotipos personalizados:

Además, Sensitive Data Protection incluye reglas de inspección que te permiten ajustar de manera precisa los resultados del análisis mediante la adición de las siguientes reglas a los detectores existentes:

Detectores de diccionarios personalizados pequeños

Usa los detectores de diccionarios personalizados pequeños (también conocidos como “detectores de diccionario personalizados normales”) para hacer coincidir una lista corta (hasta varias decenas de miles) de palabras o frases. Un diccionario personalizado pequeño puede funcionar como su propio detector único.

Los detectores de diccionarios personalizados son útiles cuando deseas analizar en busca de una lista de palabras o frases que no se pueden combinar con facilidad mediante una expresión regular ni un detector incorporado. Por ejemplo, supongamos que deseas analizar en busca de salas de conferencias a las que se suele hacer referencia por los nombres que tienen asignadas en lugar de los números de las salas, como los nombres de estados o regiones, puntos de referencia, personajes de ficción, etcétera. Puedes crear un detector de diccionario personalizado pequeño que contenga una lista de estos nombres de salas. La Protección de datos sensibles puede analizar tu contenido para cada uno de los nombres de salas y mostrar una coincidencia cuando encuentre uno de ellos en contexto. Obtén más información sobre cómo la Protección de datos sensibles hace coincidir las palabras y frases del diccionario en la sección “Detalles de coincidencias en el diccionario” de Crea un detector de diccionario personalizado normal.

Para obtener más detalles sobre cómo funcionan los detectores de Infotipos personalizados de diccionarios pequeños, así como ejemplos prácticos, consulta Crea un detector de diccionario personalizado normal.

Detectores de diccionarios personalizados grandes

Usa los detectores de diccionarios personalizados grandes (también conocidos como “detectores de diccionarios personalizados almacenados”) cuando tengas más que unas pocas palabras o frases para buscar, o si tu lista de palabras o frases cambia con frecuencia. Los detectores de diccionario personalizados grandes pueden detectar coincidencias con hasta decenas de millones de palabras o frases.

Los detectores de diccionarios personalizados grandes se crean de manera diferente a los detectores de expresiones regulares y los detectores de diccionarios personalizados pequeños. Cada diccionario personalizado grande tiene dos componentes:

  • Una lista de frases que creas y defines. La lista se almacena como un archivo de texto dentro de Cloud Storage o como una columna en una tabla de BigQuery.
  • Los archivos de diccionario generados, que la Protección de datos sensibles compila según tu lista de frases. Los archivos del diccionario se almacenan en Cloud Storage y se componen de una copia de los datos de la frase fuente más los filtros de Bloom que ayudan en la búsqueda y en la detección de coincidencias. No puedes editar estos archivos directamente.

Una vez que creaste una lista de palabras y usaste Sensitive Data Protection para generar un diccionario personalizado, puedes iniciar o programar un análisis mediante un detector de diccionario personalizado grande de manera similar a otros detectores de Infotipo.

Para obtener más detalles sobre cómo funcionan los detectores de diccionarios personalizados grandes y ejemplos prácticos, consulta Crea un detector de diccionario personalizado almacenado.

Expresiones regulares

Un detector de Infotipo personalizado de expresiones regulares (regex) te permite crear tus propios detectores de Infotipo que hacen posible que la Protección de datos sensibles detecte coincidencias basadas en un patrón de regex. Por ejemplo, supongamos que tienes números de historias clínicas en el formato ###-#-#####. Podrías definir un patrón de regex como el siguiente:

[1-9]{3}-[1-9]{1}-[1-9]{5}

La Protección de datos sensibles detectaría coincidencias con elementos como los siguientes:

123-4-56789

También puedes especificar una probabilidad para asignar a cada coincidencia de Infotipo personalizada. Es decir, cuando la Protección de datos sensibles detecte coincidencias con la secuencia que especifiques, asignará la probabilidad que indicaste. Esto es útil, ya que si tu regex personalizada define una secuencia que es bastante común como para coincidir con facilidad con otra secuencia aleatoria, no querrás que la Protección de datos sensibles etiquete cada coincidencia como VERY_LIKELY. Si eso sucediera, la confianza en los resultados del análisis se vería afectada y podría causar la desidentificación de la información incorrecta.

Para obtener más información sobre los detectores de Infotipos personalizados de expresiones regulares y ver ejemplos prácticos, consulta Crea un detector de regex personalizado.

Reglas de inspección

Usa las reglas de inspección para definir mejor los resultados que muestran los detectores de Infotipos existentes, ya sean incorporados o personalizados. Las reglas de inspección pueden ser útiles para los momentos en que los resultados que muestra la Protección de datos sensibles deben mejorarse de alguna manera, ya sea mediante la adición al detector de Infotipo existente o la exclusión desde este.

Los dos tipos de reglas de inspección son los siguientes:

  • Reglas de exclusión
  • Reglas de palabra clave

Si quieres obtener más información sobre las reglas de inspección, consulta Modifica los detectores de Infotipos para definir mejor los resultados del análisis.

Reglas de exclusión

Las reglas de exclusión te permiten disminuir la cantidad o precisión de los resultados que se muestran si agregas reglas a un detector de Infotipo incorporado o personalizado. Las reglas de exclusión pueden ayudarte a que un detector de Infotipos no muestre ruido ni otros resultados no deseados.

Por ejemplo, si analizas una base de datos en busca de direcciones de correo electrónico, puedes agregar una regla de exclusión con el formato de una regex personalizada que le indique a la Protección de datos sensibles que excluya cualquier resultado terminado en “@example.com”.

Si quieres obtener más información sobre las reglas de exclusión, consulta Modifica los detectores de Infotipos para definir mejor los resultados del análisis.

Reglas de palabra clave

Las reglas de palabra clave te permiten aumentar la cantidad o precisión de los resultados que se muestran si agregas reglas a un detector de Infotipos integrado o personalizado. Las reglas de palabra clave pueden ayudarte a disminuir la rigurosidad de las reglas de un detector de Infotipos existente.

Por ejemplo, supongamos que deseas analizar una base de datos médica en busca de nombres de pacientes. Puedes usar el detector de Infotipo integrado PERSON_NAME de Sensitive Data Protection, pero eso hará que Sensitive Data Protection arroje coincidencias con todos los nombres de personas, y no solo con los nombres de los pacientes. Para corregir esto, puedes incluir una regla de palabra clave con formato de Infotipo personalizado de regex que busque la palabra “paciente” dentro de una cierta proximidad de caracteres del primer carácter de coincidencias posibles. Luego, puedes asignar a los resultados que coincidan con este patrón una probabilidad de “muy probable”, ya que corresponden a esos criterios especiales.

Si quieres obtener más información sobre las reglas de palabra clave, consulta Modifica los detectores de Infotipos para definir mejor los resultados del análisis.

Ejemplos

Si deseas tener una mejor idea de cómo los Infotipos encuentran coincidencias con los resultados, consulta los siguientes ejemplos de coincidencias en una serie de dígitos para determinar si constituye un número de identificación personal de EE.UU o un número de identificación de contribuyente de EE.UU. Ten en cuenta que estos ejemplos son para detectores de Infotipos integrados. Cuando creas un detector de Infotipos personalizado, especificas los criterios que determinan la probabilidad de una coincidencia de análisis.

Ejemplo 1

"SSN 222-22-2222"

Informa una puntuación de probabilidad alta de VERY_LIKELY para un US_SOCIAL_SECURITY_NUMBER debido a lo siguiente:

  • Está en el formato de número de identificación personal estándar, lo que aumenta la certeza.
  • Tiene contexto cercano (“NSS”) que indica US_SOCIAL_SECURITY_NUMBER.

Ejemplo 2

"999-99-9999"

Informa una puntuación de probabilidad baja de VERY_UNLIKELY para un US_SOCIAL_SECURITY_NUMBER debido a lo siguiente:

  • Está en el formato estándar, lo que aumenta la certeza.
  • Comienza con un 9, lo que no está permitido en los números de identificación personal, por lo que disminuye la certeza.
  • No tiene contexto, lo que disminuye la certeza.

Ejemplo 3

"999-98-9999"

Informa una puntuación de probabilidad POSSIBLE para un US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER y VERY_UNLIKELY para un US_SOCIAL_SECURITY_NUMBER debido a lo siguiente:

  • Tiene el formato estándar de US_SOCIAL_SECURITY_NUMBER y US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER.
  • Comienza con un 9 y tiene otra verificación de dígitos, lo que aumenta la certeza de US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER.
  • Carece de contexto, lo que disminuye la certeza de ambos.

¿Qué sigue?

El equipo de Protección de datos sensibles lanza detectores de Infotipo nuevos y los agrupa de forma periódica. Para obtener información sobre cómo obtener la lista más reciente de Infotipos integrados, consulta “Enumera los detectores de Infotipos integrados”.