Pendeteksi InfoType dan infoType

Perlindungan Data Sensitif menggunakan jenis informasi—atau infoTypes—untuk menentukan apa yang dipindainya. infoType adalah jenis data sensitif, seperti nama, alamat email, nomor telepon, nomor identifikasi, nomor kartu kredit, dan sebagainya. Pendeteksi infoType adalah mekanisme deteksi yang sesuai dan cocok dengan kriteria pencocokan infoType.

Cara menggunakan infoTypes

Perlindungan Data Sensitif menggunakan detektor infoType dalam konfigurasi untuk pemindaiannya guna menentukan apa yang harus diperiksa dan cara mengubah temuan. Nama InfoType juga digunakan saat menampilkan atau melaporkan hasil pemindaian.

Misalnya, jika ingin mencari alamat email di blok teks, Anda akan menentukan detektor infoType EMAIL_ADDRESS dalam konfigurasi pemeriksaan. Jika ingin menyamarkan alamat email dari blok teks, Anda perlu menentukan EMAIL_ADDRESS dalam konfigurasi pemeriksaan dan konfigurasi de-identifikasi untuk menunjukkan cara menyamarkan atau mengubah jenis tersebut.

Selain itu, Anda dapat menggunakan kombinasi detektor infoType bawaan dan kustom untuk mengecualikan subset alamat email dari temuan pemindaian. Pertama, buat infoType kustom yang disebut INTERNAL_EMAIL_ADDRESS, lalu konfigurasikan untuk mengecualikan alamat email pengujian internal. Kemudian, Anda dapat menyiapkan pemindaian untuk menyertakan temuan EMAIL_ADDRESS, tetapi menyertakan aturan pengecualian yang mengecualikan temuan apa pun yang cocok dengan INTERNAL_EMAIL_ADDRESS. Untuk mengetahui informasi selengkapnya tentang aturan pengecualian dan fitur lain dari detektor infoType kustom, lihat Membuat detektor infoType kustom.

Perlindungan Data Sensitif menyediakan kumpulan detektor infoType bawaan yang Anda tentukan berdasarkan nama, yang masing-masing tercantum dalam referensi detektor InfoType. Detektor ini menggunakan berbagai teknik untuk menemukan dan mengklasifikasikan setiap jenis detektor. Misalnya, beberapa jenis akan memerlukan pencocokan pola, sebagian mungkin memiliki checksum matematika, sebagian memiliki batasan digit khusus, dan jenis lainnya mungkin memiliki awalan atau konteks tertentu seputar temuan tersebut.

Contoh

Saat menyiapkan Perlindungan Data Sensitif untuk memindai konten, Anda menyertakan detektor infoType untuk digunakan dalam konfigurasi pemindaian.

Misalnya, contoh kode dan JSON berikut menunjukkan permintaan pemindaian sederhana ke DLP API. Perhatikan bahwa pendeteksi PHONE_NUMBER ditentukan dalam inspectConfig, yang menginstruksikan Perlindungan Data Sensitif untuk memindai string yang diberikan untuk nomor telepon.

C#

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat Library klien Perlindungan Data Sensitif.

Untuk mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat Library klien Perlindungan Data Sensitif.

Untuk mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat Library klien Perlindungan Data Sensitif.

Untuk mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat Library klien Perlindungan Data Sensitif.

Untuk mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

// 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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat Library klien Perlindungan Data Sensitif.

Untuk mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat Library klien Perlindungan Data Sensitif.

Untuk mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Input 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"
    }
  }
}

Saat Anda mengirim permintaan sebelumnya ke endpoint yang ditentukan, Perlindungan Data Sensitif akan menampilkan hal berikut:

Output 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"
      }
    ]
  }
}

Jika memerlukan kontrol dan prediktabilitas yang akurat terkait pendeteksi yang dijalankan, Anda harus menentukan infoTypes tertentu yang tercantum dalam referensi. Jika tidak, Perlindungan Data Sensitif akan menggunakan daftar default, yang dapat berubah dari waktu ke waktu. Bergantung pada jumlah konten yang akan dipindai, pemindaian infoType default dapat sangat memakan waktu atau mahal.

Untuk informasi selengkapnya tentang cara menggunakan detektor infoType untuk memindai konten, lihat salah satu topik petunjuk tentang pemeriksaan, penyamaran, atau de-identifikasi.

Kepastian dan pengujian

Temuan dilaporkan dengan skor kepastian yang disebut kemungkinan. Skor kemungkinan menunjukkan seberapa besar kemungkinan sebuah temuan cocok dengan jenis yang sesuai. Misalnya, suatu jenis dapat menampilkan kemungkinan yang lebih rendah jika hanya cocok dengan pola dan menampilkan kemungkinan yang lebih tinggi jika cocok dengan pola dan memiliki konteks positif. Karena alasan ini, Anda mungkin melihat bahwa satu temuan dapat cocok dengan beberapa jenis dengan kemungkinan yang lebih rendah. Selain itu, temuan mungkin tidak muncul atau mungkin memiliki kepastian yang lebih rendah jika tidak cocok dengan tepat, atau jika memiliki konteks negatif. Misalnya, temuan mungkin tidak dilaporkan jika cocok dengan struktur untuk infoType yang ditentukan, tetapi gagal dengan checksum infoType. Atau, temuan dapat cocok dengan lebih dari satu infoType tetapi memiliki konteks yang meningkatkan salah satunya, sehingga hanya dilaporkan untuk jenis tersebut.

Jika Anda menguji berbagai detektor, Anda mungkin melihat bahwa data sampel atau palsu tidak dilaporkan karena data sampel atau palsu tidak lulus pemeriksaan yang cukup untuk dilaporkan.

Jenis pendeteksi infoType

Perlindungan Data Sensitif mencakup beberapa jenis detektor infoType, yang semuanya dirangkum di sini:

  • Pendeteksi infoType bawaan disertakan dalam Perlindungan Data Sensitif. Alat tersebut mencakup detektor untuk jenis data sensitif khusus negara atau wilayah serta jenis data yang berlaku secara global.
  • Pendeteksi infoType kustom adalah pendeteksi yang Anda buat sendiri. Ada tiga jenis pendeteksi infoType kustom:
    • Pendeteksi kamus kustom kecil adalah daftar kata sederhana yang cocok dengan Perlindungan Data Sensitif. Gunakan pendeteksi kamus kustom kecil saat Anda memiliki daftar yang berisi hingga beberapa puluhan ribu kata atau frasa. Pendeteksi kamus kustom berukuran kecil akan lebih diutamakan jika Anda tidak mengantisipasi perubahan daftar kata secara signifikan.
    • Pendeteksi kamus kustom berukuran besar dihasilkan oleh Perlindungan Data Sensitif menggunakan daftar besar kata atau frasa yang disimpan di Cloud Storage atau BigQuery. Gunakan pendeteksi kamus kustom yang besar saat Anda memiliki daftar kata atau frasa dalam jumlah besar—hingga puluhan juta.
    • Pendeteksi ekspresi reguler (regex) memungkinkan Perlindungan Data Sensitif untuk mendeteksi kecocokan berdasarkan pola ekspresi reguler.

Selain itu, Perlindungan Data Sensitif menyertakan konsep aturan pemeriksaan, yang memungkinkan Anda menyempurnakan hasil pemindaian menggunakan hal berikut:

  • Aturan pengecualian memungkinkan Anda mengurangi jumlah temuan yang ditampilkan dengan menambahkan aturan ke detektor infoType bawaan atau kustom.
  • Aturan frasa pengaktif memungkinkan Anda meningkatkan kuantitas atau mengubah nilai kemungkinan temuan yang ditampilkan dengan menambahkan aturan ke detektor infoType bawaan atau kustom.

Pendeteksi infoType bawaan

Detektor infoType bawaan disertakan dalam Perlindungan Data Sensitif, dan menyertakan pendeteksi untuk jenis data sensitif khusus negara atau wilayah tertentu seperti teknik Numéro d'Inscription au Répertoire (NIR) Prancis, nomor surat izin mengemudi (UK_DRIVERS_LICENSE_NUMBER) Inggris, dan nomor Jaminan Sosial AS (US_SOCIAL_SECURITY_NUMBER). Detektor ini juga mencakup nomor konteks dan info yang sesuai secara global (PERSON_NAME), jenis data yang sesuai dan data yang sesuai secara global (PERSON_NAME).FRANCE_NIRPHONE_NUMBEREMAIL_ADDRESSCREDIT_CARD_NUMBER

Daftar pendeteksi infoType bawaan selalu diperbarui. Untuk mengetahui daftar lengkap detektor infoType bawaan yang saat ini didukung, lihat Referensi detektor InfoType.

Anda juga dapat melihat daftar lengkap semua detektor infoType bawaan dengan memanggil metode infoTypes.list Perlindungan Data Sensitif.

Detektor infoType bawaan bukan metode deteksi yang 100% akurat. Misalnya, mereka tidak dapat menjamin kepatuhan terhadap persyaratan peraturan. Anda harus memutuskan data mana yang sensitif dan cara terbaik untuk melindunginya. Google merekomendasikan agar Anda menguji setelan untuk memastikan konfigurasi memenuhi persyaratan.

Dukungan bahasa

InfoType spesifik per negara mendukung bahasa Inggris dan bahasa negara masing-masing. Sebagian besar infoType global berfungsi dengan beberapa bahasa. Uji Perlindungan Data Sensitif dengan data Anda untuk memverifikasi bahwa data tersebut memenuhi persyaratan Anda.

Pendeteksi infoType kustom

Ada tiga jenis pendeteksi infoType kustom:

Selain itu, Perlindungan Data Sensitif menyertakan aturan pemeriksaan, yang memungkinkan Anda meningkatkan hasil pemindaian dengan menambahkan hal berikut ke pendeteksi yang ada:

Pendeteksi kamus kustom kecil

Gunakan pendeteksi kamus kecil kustom (juga disebut sebagai "pendeteksi kamus kustom reguler") untuk mencocokkan daftar singkat (hingga beberapa puluhan ribu) kata atau frasa. Kamus khusus berukuran kecil dapat bertindak sebagai pendeteksi uniknya sendiri.

Pendeteksi kamus kustom berguna saat Anda ingin memindai daftar kata atau frasa yang tidak mudah dicocokkan dengan ekspresi reguler atau detektor bawaan. Misalnya, Anda ingin memindai ruang konferensi yang biasanya disebut berdasarkan nama ruangan yang ditetapkan, bukan nomor kamarnya, seperti nama negara bagian atau wilayah, tempat terkenal, karakter fiksi, dan sebagainya. Anda dapat membuat detektor kamus kustom kecil yang berisi daftar nama ruangan ini. Perlindungan Data Sensitif dapat memindai konten Anda untuk setiap nama kamar dan menampilkan kecocokan jika menemukan salah satunya dalam konteks. Pelajari lebih lanjut cara Perlindungan Data Sensitif mencocokkan kata dan frasa kamus di bagian "Khusus pencocokan kamu" dalam Membuat pendeteksi kamus khusus reguler.

Untuk detail selengkapnya tentang cara kerja detektor infoType kustom kamus kecil, serta contoh cara kerjanya, lihat Membuat pendeteksi kamus kustom reguler.

Pendeteksi kamus kustom yang besar

Gunakan pendeteksi kamus kustom yang besar (juga disebut sebagai "pendeteksi kamus kustom yang disimpan") saat Anda memiliki lebih dari beberapa kata atau frasa untuk dipindai, atau jika daftar kata atau frasa Anda sering berubah. Pendeteksi kamus kustom yang besar dapat mencocokkan hingga puluhan juta kata atau frasa.

Pendeteksi kamus kustom berukuran besar dibuat secara berbeda dengan pendeteksi kustom ekspresi reguler dan detektor kamus kustom yang kecil. Setiap kamus kustom berukuran besar memiliki dua komponen:

  • Daftar frasa yang Anda buat dan definisikan. Daftar ini disimpan sebagai file teks dalam Cloud Storage atau kolom dalam tabel BigQuery.
  • File kamus yang dihasilkan, yang dibuat oleh Perlindungan Data Sensitif berdasarkan daftar frasa Anda. File kamus disimpan di Cloud Storage, dan terdiri dari salinan data frasa sumber ditambah filter mekar, yang membantu dalam penelusuran dan pencocokan. Anda tidak dapat mengedit file-file ini secara langsung.

Setelah membuat daftar kata dan menggunakan Perlindungan Data Sensitif untuk membuat kamus kustom, Anda akan memulai atau menjadwalkan pemindaian menggunakan detektor kamus kustom besar dengan cara serupa seperti detektor infoType lainnya.

Untuk detail selengkapnya tentang cara kerja detektor kamus khusus besar, serta contoh cara kerjanya, lihat Membuat pendeteksi kamus khusus tersimpan.

Ekspresi reguler

Detektor infoType kustom ekspresi reguler (regex) memungkinkan Anda membuat detektor infoType Anda sendiri yang memungkinkan Perlindungan Data Sensitif mendeteksi kecocokan berdasarkan pola ekspresi reguler. Misalnya, anggaplah Anda memiliki nomor rekam medis dalam bentuk ###-#-#####. Anda dapat menentukan pola ekspresi reguler seperti berikut:

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

Perlindungan Data Sensitif kemudian akan mencocokkan item seperti ini:

123-4-56789

Anda juga dapat menentukan kemungkinan untuk ditetapkan ke setiap kecocokan infoType kustom. Artinya, jika Perlindungan Data Sensitif cocok dengan urutan yang Anda tentukan, Perlindungan Data Sensitif akan menetapkan kemungkinan yang telah Anda tunjukkan. Hal ini berguna karena jika ekspresi reguler kustom Anda menentukan urutan yang cukup umum, ekspresi reguler tersebut dapat dengan mudah mencocokkan beberapa urutan acak lainnya, Anda tidak ingin Perlindungan Data Sensitif memberi label pada setiap kecocokan sebagai VERY_LIKELY. Melakukannya akan mengikis kepercayaan hasil pemindaian dan berpotensi menyebabkan informasi yang salah dicocokkan atau dide-identifikasi.

Untuk informasi selengkapnya tentang detektor infoType kustom ekspresi reguler, dan untuk melihat cara kerjanya, lihat Membuat deteksi ekspresi reguler kustom.

Aturan inspeksi

Anda menggunakan aturan pemeriksaan untuk menyaring hasil yang ditampilkan oleh pendeteksi infoType yang ada—baik bawaan maupun kustom. Aturan inspeksi dapat berguna saat hasil yang ditampilkan Perlindungan Data Sensitif perlu ditingkatkan dengan cara tertentu, baik dengan menambahkan ke dan mengecualikan dari pendeteksi infoType yang ada.

Dua jenis aturan inspeksi adalah:

  • Aturan pengecualian
  • Aturan frasa pengaktif

Untuk mengetahui informasi selengkapnya tentang aturan pemeriksaan, lihat Mengubah detektor infoType untuk meningkatkan kualitas hasil pemindaian.

Aturan pengecualian

Aturan pengecualian memungkinkan Anda mengurangi kuantitas atau presisi temuan yang ditampilkan dengan menambahkan aturan ke detektor infoType bawaan atau kustom. Aturan pengecualian dapat membantu Anda mengurangi derau atau temuan yang tidak diinginkan lainnya agar tidak ditampilkan oleh detektor infoType.

Misalnya, jika memindai database untuk alamat email, Anda dapat menambahkan aturan pengecualian dalam bentuk ekspresi reguler kustom yang menginstruksikan Perlindungan Data Sensitif untuk mengecualikan temuan apa pun yang diakhiri dengan "@example.com".

Untuk mengetahui informasi selengkapnya tentang aturan pengecualian, lihat Mengubah detektor infoType untuk menyaring hasil pemindaian.

Aturan frasa pengaktif

Aturan frasa pengaktif memungkinkan Anda meningkatkan kuantitas atau akurasi temuan yang ditampilkan dengan menambahkan aturan ke detektor infoType bawaan atau kustom. Aturan frasa pengaktif dapat secara efektif membantu Anda melonggarkan aturan detektor infoType yang ada.

Misalnya, Anda ingin memindai database medis untuk mencari nama pasien. Anda dapat menggunakan pendeteksi infoType PERSON_NAME bawaan Perlindungan Data Sensitif, tetapi deteksi Perlindungan Data Sensitif akan cocok dengan semua nama orang, bukan hanya nama pasien. Untuk memperbaikinya, Anda dapat menyertakan aturan frasa pengaktif dalam bentuk infoType kustom ekspresi reguler yang mencari kata "patient" dalam jarak karakter tertentu dari karakter pertama pada potensi kecocokan. Anda kemudian dapat menetapkan temuan yang cocok dengan pola ini sebagai kemungkinan "sangat mungkin", karena temuan tersebut sesuai dengan kriteria khusus Anda.

Untuk mengetahui informasi selengkapnya tentang aturan frasa pengaktif, lihat Mengubah detektor infoType untuk menyaring hasil pemindaian.

Contoh

Untuk mendapatkan gambaran yang lebih baik tentang kecocokan infoTypes dengan temuan, lihat contoh pencocokan berikut pada serangkaian digit untuk menentukan apakah angka tersebut merupakan nomor Jaminan Sosial AS atau Nomor Identifikasi Wajib Pajak Pribadi AS. Perlu diingat bahwa contoh ini ditujukan untuk detektor infoType bawaan. Saat membuat detektor infoType kustom, Anda menentukan kriteria yang menentukan kemungkinan kecocokan pemindaian.

Contoh 1

"SSN 222-22-2222"

Melaporkan skor kemungkinan tinggi sebesar VERY_LIKELY untuk US_SOCIAL_SECURITY_NUMBER karena:

  • Nomor ini menggunakan format nomor Jaminan Sosial standar, yang meningkatkan kepastian.
  • Memiliki konteks terdekat ("SSN") yang mengarah ke US_SOCIAL_SECURITY_NUMBER.

Contoh 2

"999-99-9999"

Melaporkan skor kemungkinan rendah sebesar VERY_UNLIKELY untuk US_SOCIAL_SECURITY_NUMBER karena:

  • Ini adalah format standar, yang meningkatkan kepastiannya.
  • Dimulai dengan angka 9, yang tidak diizinkan dalam angka Jaminan Sosial, sehingga menurunkan kepastian.
  • Tidak memiliki konteks, sehingga menurunkan kepastian.

Contoh 3

"999-98-9999"

Melaporkan skor kemungkinan POSSIBLE untuk US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER dan VERY_UNLIKELY untuk US_SOCIAL_SECURITY_NUMBER karena:

  • Class ini memiliki format standar untuk US_SOCIAL_SECURITY_NUMBER dan US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER.
  • Dimulai dengan 9 dan memiliki pemeriksaan digit lain, yang meningkatkan kepastian untuk US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER.
  • Tidak memiliki konteks apa pun, sehingga menurunkan kepastian keduanya.

Langkah selanjutnya

Tim Perlindungan Data Sensitif merilis detektor dan grup infoType baru secara berkala. Untuk mempelajari cara mendapatkan daftar terbaru infoType bawaan, lihat Mencantumkan detektor infoType bawaan.