列出內建的 InfoType 偵測工具

InfoType 是機密資料的類型。Sensitive Data Protection 支援內建和自訂 infoType。您可以在 infoType 參考資料中查看所有內建 infoType,也可以使用 DLP API 透過程式列出所有內建 infoType。

infoTypes.list 方法會列出 Sensitive Data Protection 目前支援的所有內建 infoType。每個 infoType 皆包含以下資訊:

  • infoType 識別碼 (ID),也就是 infoType 的內部名稱。
  • infoType 顯示名稱,也就是使用者可判讀的 infoType 名稱。
  • 檢查風險分析作業是否支援 infoType。

程式碼範例

如要列出所有內建的 infoType 偵測工具,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台中,開啟 Sensitive Data Protection。

    前往 Sensitive Data Protection UI

  2. 按一下「Configuration」(設定) 分頁標籤,然後點選「InfoTypes」(infoType)。

  3. 系統會顯示包含所有內建 infoType 偵測工具的表格。

C#

如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章

如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。


using System;
using Google.Cloud.Dlp.V2;

public class InfoTypesList
{
    public static ListInfoTypesResponse ListInfoTypes(string languageCode, string filter)
    {
        var dlp = DlpServiceClient.Create();
        var response = dlp.ListInfoTypes(
            new ListInfoTypesRequest
            {
                LanguageCode = languageCode,
                Filter = filter
            });

        // Uncomment to print infotypes
        // Console.WriteLine("Info Types:");
        // foreach (var InfoType in response.InfoTypes)
        // {
        //     Console.WriteLine($"\t{InfoType.Name} ({InfoType.DisplayName})");
        // }

        return response;
    }
}

Go

如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章

如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

import (
	"context"
	"fmt"
	"io"

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

// infoTypes returns the info types in the given language and matching the given filter.
func infoTypes(w io.Writer, languageCode, filter string) error {
	// languageCode := "en-US"
	// filter := "supported_by=INSPECT"
	ctx := context.Background()
	client, err := dlp.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("dlp.NewClient: %w", err)
	}
	defer client.Close()

	req := &dlppb.ListInfoTypesRequest{
		LanguageCode: languageCode,
		Filter:       filter,
	}
	resp, err := client.ListInfoTypes(ctx, req)
	if err != nil {
		return fmt.Errorf("ListInfoTypes: %w", err)
	}
	for _, it := range resp.GetInfoTypes() {
		fmt.Fprintln(w, it.GetName())
	}
	return nil
}

Java

如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章

如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。


import com.google.cloud.dlp.v2.DlpServiceClient;
import com.google.privacy.dlp.v2.InfoTypeDescription;
import com.google.privacy.dlp.v2.ListInfoTypesRequest;
import com.google.privacy.dlp.v2.ListInfoTypesResponse;
import java.io.IOException;

public class InfoTypesList {

  public static void main(String[] args) throws IOException {
    listInfoTypes();
  }

  // Lists the types of sensitive information the DLP API supports.
  public static void listInfoTypes() 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 dlpClient = DlpServiceClient.create()) {

      // Construct the request to be sent by the client
      ListInfoTypesRequest listInfoTypesRequest =
          ListInfoTypesRequest.newBuilder()
              // Only return infoTypes supported by certain parts of the API.
              // Supported filters are "supported_by=INSPECT" and "supported_by=RISK_ANALYSIS"
              // Defaults to "supported_by=INSPECT"
              .setFilter("supported_by=INSPECT")
              // BCP-47 language code for localized infoType friendly names.
              // Defaults to "en_US"
              .setLanguageCode("en-US")
              .build();

      // Use the client to send the API request.
      ListInfoTypesResponse response = dlpClient.listInfoTypes(listInfoTypesRequest);

      // Parse the response and process the results
      System.out.println("Infotypes found:");
      for (InfoTypeDescription infoTypeDescription : response.getInfoTypesList()) {
        System.out.println("Name : " + infoTypeDescription.getName());
        System.out.println("Display name : " + infoTypeDescription.getDisplayName());
      }
    }
  }
}

Node.js

如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章

如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

// 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 BCP-47 language code to use, e.g. 'en-US'
// const languageCode = 'en-US';

// The filter to use
// const filter = 'supported_by=INSPECT'

async function listInfoTypes() {
  const [response] = await dlp.listInfoTypes({
    languageCode: languageCode,
    filter: filter,
  });
  const infoTypes = response.infoTypes;
  console.log('Info types:');
  infoTypes.forEach(infoType => {
    console.log(`\t${infoType.name} (${infoType.displayName})`);
  });
}

listInfoTypes();

PHP

如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章

如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

use Google\Cloud\Dlp\V2\Client\DlpServiceClient;
use Google\Cloud\Dlp\V2\ListInfoTypesRequest;

/**
 * Lists all Info Types for the Data Loss Prevention (DLP) API.
 *
 * @param string $filter        (Optional) filter to use
 * @param string $languageCode  (Optional) language code, empty for 'en-US'
 */
function list_info_types(string $filter = '', string $languageCode = ''): void
{
    // Instantiate a client.
    $dlp = new DlpServiceClient();

    // Run request
    $listInfoTypesRequest = (new ListInfoTypesRequest())
        ->setLanguageCode($languageCode)
        ->setFilter($filter);
    $response = $dlp->listInfoTypes($listInfoTypesRequest);

    // Print the results
    print('Info Types:' . PHP_EOL);
    foreach ($response->getInfoTypes() as $infoType) {
        printf(
            '  %s (%s)' . PHP_EOL,
            $infoType->getDisplayName(),
            $infoType->getName()
        );
    }
}

Python

如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章

如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

from typing import Optional

import google.cloud.dlp


def list_info_types(
    language_code: Optional[str] = None, result_filter: Optional[str] = None
) -> None:
    """List types of sensitive information within a category.
    Args:
        language_code: The BCP-47 language code to use, e.g. 'en-US'.
        result_filter: An optional filter to only return info types supported by
                certain parts of the API. Defaults to "supported_by=INSPECT".
    Returns:
        None; the response from the API is printed to the terminal.
    """

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

    # Make the API call.
    response = dlp.list_info_types(
        request={"parent": language_code, "filter": result_filter}
    )

    # Print the results to the console.
    print("Info types:")
    for info_type in response.info_types:
        print(
            "{name}: {display_name}".format(
                name=info_type.name, display_name=info_type.display_name
            )
        )

REST

JSON 輸入:

GET https://dlp.googleapis.com/v2/infoTypes?key={YOUR_API_KEY}

將上述要求傳送至指定端點時,系統會傳回所有預先定義的偵測器清單,格式如下:

  • [INFOTYPE-NAME] 代表 infoType 偵測工具的名稱。
  • [INFOTYPE-DISPLAY-NAME] 代表偵測工具的顯示名稱
  • "supportedBy" 會設為 "INSPECT""RISK_ANALYSIS" 或兩者,視偵測器是否支援檢查風險分析作業而定
  • [INFOTYPE-DESCRIPTION] 代表偵測工具的說明。

JSON 輸出:

{
  "infoTypes":[
    {
      "name":"[INFOTYPE-NAME]",
      "displayName":"[INFOTYPE-DISPLAY-NAME]",
      "supportedBy":[
        "INSPECT"
      ],
      "description":"[INFOTYPE-DESCRIPTION]"
    },
    ...
  ]
}

APIs Explorer

您可以使用 APIs Explorer 列出 infoType 偵測工具:

  1. 前往 infoTypes.list 的 API 參考資料頁面,然後按一下下列按鈕,即可前往 API Explorer:

    Open APIs Explorer

  2. 取消勾選「Google OAuth 2.0」

  3. 按一下 [Execute] (執行)

API 探索工具會將要求傳送至機密資料保護服務,後者會傳回包含所有支援的 infoType 偵測工具的 JSON 物件。