민감한 정보 보호 익명화 템플릿 만들기

템플릿을 사용하여 민감한 정보 보호에 사용할 구성 정보를 만들고 유지할 수 있습니다. 템플릿은 검사 대상 및 익명화 방법과 같은 구성을 요청 구현에서 분리하는 데 유용합니다. 템플릿은 구성을 재사용할 수 있는 강력한 방법을 제공하며 사용자와 데이터세트 전반에서 일관성을 유지할 수 있게 해줍니다.

민감한 정보 보호는 두 가지 유형의 템플릿을 지원합니다.

  • 익명화 템플릿: infoType 및 레코드(구조화된 데이터세트) 변환을 포함한 익명화 작업의 구성 정보를 저장하는 템플릿
  • 검사 템플릿: 사용할 사전 정의 또는 커스텀 감지기를 포함한 검사 스캔 작업의 구성 정보를 저장하는 템플릿. 검사 템플릿에 대한 자세한 내용은 민감한 정보 보호 검사 템플릿 만들기를 참조하세요.

민감한 정보 보호 템플릿에 대한 개념 정보는 템플릿을 참조하세요.

이 주제의 나머지 부분에서는 민감한 정보 보호 기능에서 사용할 익명화 템플릿을 만드는 방법을 보여줍니다.

익명화 템플릿 만들기

콘솔

Google Cloud 콘솔에서 템플릿 만들기 페이지로 이동합니다.

템플릿 만들기로 이동

다음 섹션에서는 템플릿 만들기 페이지를 작성하는 방법을 설명합니다.

템플릿 정의

템플릿 정의 섹션에서 다음과 같이 필드를 작성합니다.

  1. 템플릿 유형에서 익명화(민감한 정보 삭제)를 선택합니다.
  2. 데이터 변환 유형에서 적용할 변환 유형을 선택합니다.

    • InfoType. 민감한 정보 보호는 각 변환을 특정 infoType으로 식별된 값에만 적용합니다. 이 변환 유형은 구조화되지 않은 텍스트에 유용합니다.

    • 레코드. 민감한 정보 보호는 변환을 적용할 때 데이터의 구조화된 형식을 고려합니다. 이 변환 유형은 테이블 형식 데이터에 유용합니다.

    • Image. 민감한 정보 보호는 이미지에서 감지된 모든 텍스트 또는 특정 infoType과 일치하는 텍스트만 수정합니다.

  3. 템플릿 ID에 템플릿의 고유 식별자를 입력합니다.

  4. 표시 이름에 템플릿 이름을 입력합니다.

  5. 설명에는 템플릿을 설명합니다.

  6. 리소스 위치에서 전역 또는 익명화할 데이터의 위치를 선택합니다.

  7. 계속을 클릭합니다.

익명화 구성

익명화 구성에 표시되는 필드 선택은 선택한 데이터 변환 유형을 기반으로 합니다.

InfoType

데이터 변환 유형으로 InfoType을 선택한 경우 다음을 수행합니다.

  1. 변환 필드에서 발견 항목에 적용할 변환 방법을 선택합니다.

    선택에 따라 더 많은 필드가 나타납니다. 필요에 따라 필드를 작성합니다. 자세한 내용은 변환 참조를 확인하세요.

  2. 변환할 infoType 섹션에서 검사 구성에 정의된 모든 감지된 infoType에 변환을 적용할지 여부를 지정합니다.

    infoType 지정을 선택할 경우 변환 메서드를 적용할 infoType을 선택합니다.

  3. 변환 규칙에 포함되지 않는 infoType의 변환 규칙을 추가하려면 변환 규칙 추가를 클릭합니다. 그런 다음 필요에 따라 필드를 작성합니다. 변환하려는 모든 infoType에 대해 변환 규칙을 구성할 때까지 이 단계를 반복합니다.

  4. 만들기를 클릭합니다.

레코드

데이터 변환 유형으로 레코드를 선택한 경우 다음을 수행합니다.

  1. 변환할 필드 또는 열에 변환하려는 데이터가 포함된 테이블 열의 이름을 입력합니다. 그런 다음 ENTER를 누릅니다. 변환하려는 데이터가 포함된 각 열에 대해 이 단계를 반복합니다.
  2. 변환 유형을 지정합니다.

    • infoType 일치. 민감한 정보 보호는 각 셀을 구조화되지 않은 텍스트로 취급하고 셀에 있는 infoType에만 변환을 적용합니다. 민감한 정보 보호는 infoType 관련 데이터를 변환하지 않습니다.

      이 옵션을 선택할 경우 다음을 수행합니다.

      1. 변환 추가를 클릭합니다. 변환 필드에서 발견 항목에 적용할 변환 방법을 선택합니다.
      2. 검사 구성에 정의된 모든 감지된 infoType에 변환을 적용할지 여부를 지정합니다.

        infoType 지정을 선택할 경우 변환 규칙을 적용할 infoType을 선택합니다.

      특정 infoType에 특정 변환 규칙을 할당하려는 경우 필요에 따라 변환을 더 추가할 수 있습니다.

    • 기본 필드 변환. 민감한 정보 보호는 항상 개발자가 선택한 변환 방법에 따라 전체 셀을 변환합니다. 이 옵션은 해당 열의 셀에 infoType이 감지되었는지 여부와 관계없이 전체 데이터 열을 변환하려는 경우에 유용합니다.

      이 옵션을 선택하면 변환 필드에서 지정한 열에 적용할 변환 방법을 선택합니다.

    두 경우 모두 선택한 변환 방법에 따라 더 많은 필드가 나타납니다. 필요에 따라 필드를 작성합니다. 자세한 내용은 변환 참조를 확인하세요.

  3. 만들기를 클릭합니다.

이미지

데이터 변환 유형으로 이미지를 선택한 경우 다음을 수행합니다.

  1. 선택사항: 수정된 텍스트를 덮는 상자의 색상을 변경하려면 수정 색상 필드에서 검은색 상자를 클릭하고 다른 색상을 선택합니다.

  2. 변환할 infoType 섹션에서 모든 감지된 텍스트, 검사 구성에 정의된 모든 infoType, 특정 infoType만과 같이 수정할 항목을 지정합니다.

    infoType 지정을 선택할 경우 변환 규칙을 적용할 infoType을 선택합니다.

  3. 변환 규칙에 포함되지 않는 infoType의 변환 규칙을 추가하려면 변환 규칙 추가를 클릭합니다. 그런 다음 필요에 따라 필드를 작성합니다. 변환하려는 모든 infoType에 대해 변환 규칙을 구성할 때까지 이 단계를 반복합니다.

  4. 만들기를 클릭합니다.

프로토콜

익명화 템플릿은 재사용 가능한 익명화 구성에 일부 메타데이터를 더한 것일 뿐입니다. API 용어에서 DeidentifyTemplate 객체는 사실상 표시 이름 및 설명과 같은 몇 가지 추가 메타데이터 필드가 포함된 DeidentifyConfig 객체입니다. 따라서 새 익명화 템플릿을 만드는 기본 단계는 다음과 같습니다.

  1. DeidentifyConfig 객체로 시작합니다.
  2. projects.deidentifyTemplates 리소스의 create 메서드를 호출하거나 게시하며, 이때 요청에 표시 이름, 설명, DeidentifyConfig 객체가 있는 DeidentifyTemplate 객체를 포함합니다.

반환되는 DeidentifyTemplate은 즉시 사용 가능합니다. 다른 호출 또는 작업에서 name으로 참조할 수 있습니다. *.deidentifyTemplates.list 메서드를 호출하여 기존 템플릿을 나열할 수 있습니다. 특정 템플릿을 보려면 *.deidentifyTemplates.get 메서드를 호출합니다. 만들 수 있는 템플릿 수의 한도는 1000개입니다.

이미 민감한 정보 보호를 사용하여 텍스트, 이미지 또는 구조화된 콘텐츠에서 민감한 정보를 익명화한 적이 있으면 DeidentifyConfig 객체가 이미 생성되었습니다. 작업을 한 단계만 더 수행하면 이 객체가 DeidentifyTemplate 객체로 바뀝니다.

REST 예시

다음 JSON은 projects.deidentifyTemplates.create 메서드에 전송할 수 있는 항목의 예시입니다. 이 JSON은 주어진 표시 이름과 설명으로 새 템플릿을 만들고 infoType EMAIL_ADDRESSGENERIC_ID의 일치 항목을 스캔합니다. 이러한 infoType과 일치하는 콘텐츠를 발견하는 경우 처음 3개의 문자를 별표(*) 문자로 가립니다.

HTTP 메서드 및 URL

POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/deidentifyTemplates

PROJECT_ID프로젝트 ID로 바꿉니다.

JSON 입력

{
  "deidentifyTemplate":{
    "displayName":"Email and id masker",
    "description":"De-identifies emails and ids with a series of asterisks.",
    "deidentifyConfig":{
      "infoTypeTransformations":{
        "transformations":[
          {
            "infoTypes":[
              {
                "name":"GENERIC_ID"
              }
            ],
            "primitiveTransformation":{
              "replaceWithInfoTypeConfig":{

              }
            }
          },
          {
            "infoTypes":[
              {
                "name":"EMAIL_ADDRESS"
              }
            ],
            "primitiveTransformation":{
              "characterMaskConfig":{
                "charactersToIgnore":[
                  {
                    "charactersToSkip":"@"
                  }
                ],
                "maskingCharacter":"*"
              }
            }
          }
        ]
      }
    }
  }
}

JSON 출력

    {
      "name":"projects/PROJECT_ID/deidentifyTemplates/JOB-ID",
      "displayName":"Email and id masker",
      "description":"De-identifies emails and ids with a series of asterisks.",
      "createTime":"2018-11-30T07:17:59.536022Z",
      "updateTime":"2018-11-30T07:17:59.536022Z",
      "deidentifyConfig":{
        "infoTypeTransformations":{
          "transformations":[
            {
              "infoTypes":[
                {
                  "name":"GENERIC_ID"
                }
              ],
              "primitiveTransformation":{
                "replaceWithInfoTypeConfig":{

                }
              }
            },
            {
              "infoTypes":[
                {
                  "name":"EMAIL_ADDRESS"
                }
              ],
              "primitiveTransformation":{
                "characterMaskConfig":{
                  "maskingCharacter":"*",
                  "charactersToIgnore":[
                    {
                      "charactersToSkip":"@"
                    }
                  ]
                }
              }
            }
          ]
        }
      }
    }

이를 빠르게 시도하려면 아래에 포함된 API 탐색기를 사용할 수 있습니다. JSON을 사용하여 DLP API로 요청을 전송하는 데 대한 일반적인 정보는 JSON 빠른 시작을 참조하세요.

익명화 템플릿 사용

새 템플릿을 만들었으면 다음과 같이 deidentifyTemplateName이 수락되는 모든 곳에서 name 식별자를 사용할 수 있습니다.

  • projects.content.deidentify: 템플릿을 구성으로 사용하여 콘텐츠의 잠재적인 민감한 정보를 익명화합니다. 이 메서드는 검사 템플릿 또는 익명화 템플릿을 사용할 수 있음을 유의하세요.

익명화 템플릿 나열

생성된 모든 익명화 템플릿을 나열하려면 *.*.list 메서드 중 하나를 사용합니다.

이 섹션에서는 민감한 정보 보호를 사용하여 검사 템플릿을 나열하는 방법을 보여줍니다. 프로세스는 익명화 템플릿을 나열하는 프로세스와 동일합니다.

C#

Sensitive Data Protection의 클라이언트 라이브러리를 설치하고 사용하는 방법은 Sensitive Data Protection 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.


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

public class InspectTemplateList
{
    public static PagedEnumerable<ListInspectTemplatesResponse, InspectTemplate> List(string projectId)
    {
        var client = DlpServiceClient.Create();

        var response = client.ListInspectTemplates(
            new ListInspectTemplatesRequest
            {
                Parent = new LocationName(projectId, "global").ToString(),
            }
        );

        // Uncomment to list templates
        //PrintTemplates(response);

        return response;
    }

    public static void PrintTemplates(PagedEnumerable<ListInspectTemplatesResponse, InspectTemplate> response)
    {
        foreach (var template in response)
        {
            Console.WriteLine($"Template {template.Name}:");
            Console.WriteLine($"\tDisplay Name: {template.DisplayName}");
            Console.WriteLine($"\tDescription: {template.Description}");
            Console.WriteLine($"\tCreated: {template.CreateTime}");
            Console.WriteLine($"\tUpdated: {template.UpdateTime}");
            Console.WriteLine("Configuration:");
            Console.WriteLine($"\tMin Likelihood: {template.InspectConfig?.MinLikelihood}");
            Console.WriteLine($"\tInclude quotes: {template.InspectConfig?.IncludeQuote}");
            Console.WriteLine($"\tMax findings per request: {template.InspectConfig?.Limits.MaxFindingsPerRequest}");
        }
    }
}

Go

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

import (
	"context"
	"fmt"
	"io"
	"time"

	dlp "cloud.google.com/go/dlp/apiv2"
	"cloud.google.com/go/dlp/apiv2/dlppb"
	"github.com/golang/protobuf/ptypes"
	"google.golang.org/api/iterator"
)

// listInspectTemplates lists the inspect templates in the project.
func listInspectTemplates(w io.Writer, projectID string) error {
	// projectID := "my-project-id"

	ctx := context.Background()

	client, err := dlp.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("dlp.NewClient: %w", err)
	}
	defer client.Close()

	// Create a configured request.
	req := &dlppb.ListInspectTemplatesRequest{
		Parent: fmt.Sprintf("projects/%s/locations/global", projectID),
	}

	// Send the request and iterate over the results.
	it := client.ListInspectTemplates(ctx, req)
	for {
		t, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("Next: %w", err)
		}
		fmt.Fprintf(w, "Inspect template %v\n", t.GetName())
		c, err := ptypes.Timestamp(t.GetCreateTime())
		if err != nil {
			return fmt.Errorf("CreateTime Timestamp: %w", err)
		}
		fmt.Fprintf(w, "  Created: %v\n", c.Format(time.RFC1123))
		u, err := ptypes.Timestamp(t.GetUpdateTime())
		if err != nil {
			return fmt.Errorf("UpdateTime Timestamp: %w", err)
		}
		fmt.Fprintf(w, "  Updated: %v\n", u.Format(time.RFC1123))
		fmt.Fprintf(w, "  Display Name: %q\n", t.GetDisplayName())
		fmt.Fprintf(w, "  Description: %q\n", t.GetDescription())
	}

	return nil
}

Java

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.


import com.google.cloud.dlp.v2.DlpServiceClient;
import com.google.cloud.dlp.v2.DlpServiceClient.ListInspectTemplatesPagedResponse;
import com.google.privacy.dlp.v2.InfoType;
import com.google.privacy.dlp.v2.InspectConfig;
import com.google.privacy.dlp.v2.InspectTemplate;
import com.google.privacy.dlp.v2.ListInspectTemplatesRequest;
import com.google.privacy.dlp.v2.LocationName;
import java.io.IOException;

class TemplatesList {

  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    listInspectTemplates(projectId);
  }

  // Lists all templates associated with a given project
  public static void listInspectTemplates(String projectId) 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 dlpServiceClient = DlpServiceClient.create()) {

      // Create the request to be sent by the client
      ListInspectTemplatesRequest request =
          ListInspectTemplatesRequest.newBuilder()
              .setParent(LocationName.of(projectId, "global").toString())
              .setPageSize(1)
              .build();

      // Send the request
      ListInspectTemplatesPagedResponse response = dlpServiceClient.listInspectTemplates(request);

      // Parse through and process the response
      System.out.println("Templates found:");
      for (InspectTemplate template : response.getPage().getResponse().getInspectTemplatesList()) {
        System.out.printf("Template name: %s\n", template.getName());
        if (template.getDisplayName() != null) {
          System.out.printf("\tDisplay name: %s \n", template.getDisplayName());
          System.out.printf("\tCreate time: %s \n", template.getCreateTime());
          System.out.printf("\tUpdate time: %s \n", template.getUpdateTime());

          // print inspection config
          InspectConfig inspectConfig = template.getInspectConfig();
          for (InfoType infoType : inspectConfig.getInfoTypesList()) {
            System.out.printf("\tInfoType: %s\n", infoType.getName());
          }
          System.out.printf("\tMin likelihood: %s\n", inspectConfig.getMinLikelihood());
          System.out.printf("\tLimits: %s\n", inspectConfig.getLimits().getMaxFindingsPerRequest());
        }
      }
    }
  }
}

Node.js

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

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';

// Helper function to pretty-print dates
const formatDate = date => {
  const msSinceEpoch = parseInt(date.seconds, 10) * 1000;
  return new Date(msSinceEpoch).toLocaleString('en-US');
};

async function listInspectTemplates() {
  // Construct template-listing request
  const request = {
    parent: `projects/${projectId}/locations/global`,
  };

  // Run template-deletion request
  const [templates] = await dlp.listInspectTemplates(request);

  templates.forEach(template => {
    console.log(`Template ${template.name}`);
    if (template.displayName) {
      console.log(`  Display name: ${template.displayName}`);
    }

    console.log(`  Created: ${formatDate(template.createTime)}`);
    console.log(`  Updated: ${formatDate(template.updateTime)}`);

    const inspectConfig = template.inspectConfig;
    const infoTypes = inspectConfig.infoTypes.map(x => x.name);
    console.log('  InfoTypes:', infoTypes.join(' '));
    console.log('  Minimum likelihood:', inspectConfig.minLikelihood);
    console.log('  Include quotes:', inspectConfig.includeQuote);

    const limits = inspectConfig.limits;
    console.log('  Max findings per request:', limits.maxFindingsPerRequest);
  });
}

listInspectTemplates();

PHP

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

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

/**
 * List DLP inspection configuration templates.
 *
 * @param string $callingProjectId  The project ID to run the API call under
 */
function list_inspect_templates(string $callingProjectId): void
{
    // Instantiate a client.
    $dlp = new DlpServiceClient();

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

    // Run request
    $listInspectTemplatesRequest = (new ListInspectTemplatesRequest())
        ->setParent($parent);
    $response = $dlp->listInspectTemplates($listInspectTemplatesRequest);

    // Print results
    $templates = $response->iterateAllElements();

    foreach ($templates as $template) {
        printf('Template %s' . PHP_EOL, $template->getName());
        printf('  Created: %s' . PHP_EOL, $template->getCreateTime()->getSeconds());
        printf('  Updated: %s' . PHP_EOL, $template->getUpdateTime()->getSeconds());
        printf('  Display Name: %s' . PHP_EOL, $template->getDisplayName());
        printf('  Description: %s' . PHP_EOL, $template->getDescription());

        $inspectConfig = $template->getInspectConfig();
        if ($inspectConfig === null) {
            print('  No inspect config.' . PHP_EOL);
        } else {
            printf('  Minimum likelihood: %s' . PHP_EOL, $inspectConfig->getMinLikelihood());
            printf('  Include quotes: %s' . PHP_EOL, $inspectConfig->getIncludeQuote());
            $limits = $inspectConfig->getLimits();
            printf('  Max findings per request: %s' . PHP_EOL, $limits->getMaxFindingsPerRequest());
        }
    }
}

Python

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

import google.cloud.dlp


def list_inspect_templates(project: str) -> None:
    """Lists all Data Loss Prevention API inspect templates.
    Args:
        project: The Google Cloud project id to use as a parent resource.
    Returns:
        None; the response from the API is printed to the terminal.
    """

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

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

    # Call the API.
    response = dlp.list_inspect_templates(request={"parent": parent})

    for template in response:
        print(f"Template {template.name}:")
        if template.display_name:
            print(f"  Display Name: {template.display_name}")
        print(f"  Created: {template.create_time}")
        print(f"  Updated: {template.update_time}")

        config = template.inspect_config
        print(
            "  InfoTypes: {}".format(", ".join([it.name for it in config.info_types]))
        )
        print(f"  Minimum likelihood: {config.min_likelihood}")
        print(f"  Include quotes: {config.include_quote}")
        print(
            "  Max findings per request: {}".format(
                config.limits.max_findings_per_request
            )
        )

익명화 템플릿 삭제

특정 익명화 템플릿을 삭제하려면 *.*.delete 메서드 중 하나를 사용합니다.

*.*.delete 메서드에는 삭제할 템플릿의 리소스 이름을 포함합니다.

C#

Sensitive Data Protection의 클라이언트 라이브러리를 설치하고 사용하는 방법은 Sensitive Data Protection 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.


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

public class InspectTemplateDelete
{
    public static object Delete(string projectId, string templateName)
    {
        var client = DlpServiceClient.Create();

        var request = new DeleteInspectTemplateRequest
        {
            Name = templateName
        };

        client.DeleteInspectTemplate(request);
        Console.WriteLine($"Successfully deleted template {templateName}.");

        return templateName;
    }
}

Go

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

import (
	"context"
	"fmt"
	"io"

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

// deleteInspectTemplate deletes the given template.
func deleteInspectTemplate(w io.Writer, templateID string) error {
	// projectID := "my-project-id"
	// templateID := "my-template"

	ctx := context.Background()

	client, err := dlp.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("dlp.NewClient: %w", err)
	}
	defer client.Close()

	req := &dlppb.DeleteInspectTemplateRequest{
		Name: templateID,
	}

	if err := client.DeleteInspectTemplate(ctx, req); err != nil {
		return fmt.Errorf("DeleteInspectTemplate: %w", err)
	}
	fmt.Fprintf(w, "Successfully deleted inspect template %v", templateID)
	return nil
}

Java

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.


import com.google.cloud.dlp.v2.DlpServiceClient;
import com.google.privacy.dlp.v2.DeleteInspectTemplateRequest;
import java.io.IOException;

class TemplatesDelete {

  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String templateId = "your-template-id";
    deleteInspectTemplate(projectId, templateId);
  }

  // Delete an existing template
  public static void deleteInspectTemplate(String projectId, String templateId) throws IOException {
    // Construct the template name to be deleted
    String templateName = String.format("projects/%s/inspectTemplates/%s", projectId, templateId);

    // 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 dlpServiceClient = DlpServiceClient.create()) {

      // Create delete template request to be sent by the client
      DeleteInspectTemplateRequest request =
          DeleteInspectTemplateRequest.newBuilder().setName(templateName).build();

      // Send the request with the client
      dlpServiceClient.deleteInspectTemplate(request);
      System.out.printf("Deleted template: %s\n", templateName);
    }
  }
}

Node.js

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

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 name of the template to delete
// Parent project ID is automatically extracted from this parameter
// const templateName = 'projects/YOUR_PROJECT_ID/inspectTemplates/#####'
async function deleteInspectTemplate() {
  // Construct template-deletion request
  const request = {
    name: templateName,
  };

  // Run template-deletion request
  await dlp.deleteInspectTemplate(request);
  console.log(`Successfully deleted template ${templateName}.`);
}

deleteInspectTemplate();

PHP

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

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

/**
 * Delete a DLP inspection configuration template.
 *
 * @param string $callingProjectId  The project ID to run the API call under
 * @param string $templateId        The name of the template to delete
 */
function delete_inspect_template(
    string $callingProjectId,
    string $templateId
): void {
    // Instantiate a client.
    $dlp = new DlpServiceClient();

    // Run template deletion request
    $templateName = "projects/$callingProjectId/locations/global/inspectTemplates/$templateId";
    $deleteInspectTemplateRequest = (new DeleteInspectTemplateRequest())
        ->setName($templateName);
    $dlp->deleteInspectTemplate($deleteInspectTemplateRequest);

    // Print results
    printf('Successfully deleted template %s' . PHP_EOL, $templateName);
}

Python

민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.

Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

import google.cloud.dlp


def delete_inspect_template(project: str, template_id: str) -> None:
    """Deletes a Data Loss Prevention API template.
    Args:
        project: The id of the Google Cloud project which owns the template.
        template_id: The id of the template to delete.
    Returns:
        None; the response from the API is printed to the terminal.
    """

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

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

    # Combine the template id with the parent id.
    template_resource = f"{parent}/inspectTemplates/{template_id}"

    # Call the API.
    dlp.delete_inspect_template(request={"name": template_resource})

    print(f"Template {template_resource} successfully deleted.")