Verarbeitungsstandorte angeben

Durch die Möglichkeit, eine Region anzugeben, in der die Vorgänge zum Schutz sensibler Daten ausgeführt werden sollen, können Sie steuern, wo potenziell vertrauliche Daten verarbeitet werden. In diesem Dokument wird das Konzept des Verarbeitungsstandorts für den Schutz vertraulicher Daten erläutert. Außerdem erfahren Sie, wie eine Region angegeben wird.

Eine Liste der unterstützten Regionen und Multiregionen finden Sie unter Standorte für den Schutz sensibler Daten.

Regionen und Multiregionen

Eine Region ist ein bestimmter geografischer Ort, z. B. die westliche USA oder Nordostasien. Ein multiregionaler Standort (oder einfach Multiregion) ist ein großes geografisches Gebiet (beispielsweise die Europäischen Union), das mindestens zwei geografische Regionen enthält.

Überlegungen zum Standort

Ein guter Standort bietet einen Ausgleich zwischen Latenz, Verfügbarkeit und Bandbreitenkosten.

  • Region verwenden, um Latenz und Netzwerkbandbreite zu optimieren

  • Verwenden Sie eine Multi-Region, wenn Sie Daten von außerhalb des Google-Netzwerks verarbeiten, die über große geografische Gebiete verteilt sind, oder wenn Sie die höhere Verfügbarkeit bieten möchten, die durch regionsübergreifende Redundanz entsteht.

  • Im Allgemeinen sollten Sie Ihre Daten an einem Ort verarbeiten, der praktisch ist oder den Großteil der Nutzer Ihrer Daten enthält.

  • Wenn Ihre Organisation verpflichtet ist, übertragene Daten an einem bestimmten Standort zu speichern, verwenden Sie nur die Regionen oder Multiregionen, die regionale Endpunkte (REP) unterstützen. In diesem Fall müssen Sie die Cloud Data Loss Prevention API verwenden, da die regionalen Endpunkte für Sensitive Data Protection nicht für die Verwendung mit derGoogle Cloud -Konsole verfügbar sind.

Region angeben

Wie Sie die Verarbeitungsregion angeben, hängt vom Typ des Endpunkts ab, an den Sie die Anfrage senden: globaler Endpunkt oder regionaler Endpunkt. Welchen Endpunkttyp Sie auswählen, hängt davon ab, ob Sie Daten bei der Übertragung in einer bestimmten Region speichern müssen. Weitere Informationen finden Sie unter Globale und regionale Endpunkte für Sensitive Data Protection.

Region in einer Anfrage an den globalen Endpunkt angeben

Console

Wählen Sie beim Einrichten des Sensitive Data Protection-Vorgangs eine Region aus.

Wenn Sie beispielsweise einen Job-Trigger erstellen, wählen Sie im Menü Ressourcenstandort einen Standort aus, wie hier gezeigt:

Wenn der Verarbeitungsort keine Rolle spielt, verwenden Sie die Region Global und Google wählt den Ort aus, an dem die Verarbeitung stattfinden soll. Global ist die Standardregion.

REST

Fügen Sie Regionsinformationen in die Anfrage-Endpunkt-URL ein. Wenn der Verarbeitungsstandort keine Rolle spielt, verwenden Sie die Region global und Google wählt den Standort aus, an dem die Verarbeitung stattfinden soll. Alle Ressourcen, die von einer Anfrage erstellt wurden, in der die Region global angegeben ist, werden in der Region global gespeichert.

Im Folgenden finden Sie einige Beispielanfragen an den globalen Endpunkt.

Globale Region verwenden

Die folgenden beiden Anfragen haben denselben Effekt. Das Fehlen einer Region ist identisch mit der Angabe von locations/global/.

POST https://www.googleapis.com/dlp/v2/projects/PROJECT_ID/locations/global/content:inspect
POST https://www.googleapis.com/dlp/v2/projects/PROJECT_ID/content:inspect

Bestimmte Region verwenden

Zum Angeben einer Region für die Verarbeitung fügen Sie in der Ressourcen-URL locations/ und dann den Regionsnamen ein.

POST https://www.googleapis.com/dlp/v2/projects/PROJECT_ID/locations/us-west2/content:inspect

Region in einer Anfrage an einen regionalen Endpunkt angeben

Console

Für Sensitive Data Protection sind regionale Endpunkte nicht für die Verwendung mit der Google Cloud -Konsole verfügbar.

C#

Informationen zum Installieren und Verwenden der Clientbibliothek für Sensitive Data Protection finden Sie unter Sensitive Data Protection-Clientbibliotheken.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


using System;
using System.Collections.Generic;
using System.Linq;
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dlp.V2;
using static Google.Cloud.Dlp.V2.InspectConfig.Types;

public class InspectStringRep
{
    public static InspectContentResponse Inspect(
        string projectId,
        string repLocation,
        string dataValue,
        string minLikelihood,
        int maxFindings,
        bool includeQuote,
        IEnumerable<InfoType> infoTypes,
        IEnumerable<CustomInfoType> customInfoTypes)
    {
        var inspectConfig = new InspectConfig
        {
            MinLikelihood = (Likelihood)Enum.Parse(typeof(Likelihood), minLikelihood, true),
            Limits = new FindingLimits
            {
                MaxFindingsPerRequest = maxFindings
            },
            IncludeQuote = includeQuote,
            InfoTypes = { infoTypes },
            CustomInfoTypes = { customInfoTypes }
        };
        var request = new InspectContentRequest
        {
            Parent = new LocationName(projectId, repLocation).ToString(),
            Item = new ContentItem
            {
                Value = dataValue
            },
            InspectConfig = inspectConfig
        };

        var dlp = new DlpServiceClientBuilder
        {
            Endpoint = $"dlp.{repLocation}.rep.googleapis.com"
        }.Build();

        var response = dlp.InspectContent(request);

        PrintResponse(includeQuote, response);

        return response;
    }

    private static void PrintResponse(bool includeQuote, InspectContentResponse response)
    {
        var findings = response.Result.Findings;
        if (findings.Any())
        {
            Console.WriteLine("Findings:");
            foreach (var finding in findings)
            {
                if (includeQuote)
                {
                    Console.WriteLine($"  Quote: {finding.Quote}");
                }
                Console.WriteLine($"  InfoType: {finding.InfoType}");
                Console.WriteLine($"  Likelihood: {finding.Likelihood}");
            }
        }
        else
        {
            Console.WriteLine("No findings.");
        }
    }
}

Go

Informationen zum Installieren und Verwenden der Clientbibliothek für Sensitive Data Protection finden Sie unter Sensitive Data Protection-Clientbibliotheken.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import (
	"context"
	"fmt"
	"io"

	dlp "cloud.google.com/go/dlp/apiv2"
	"cloud.google.com/go/dlp/apiv2/dlppb"
	"google.golang.org/api/option"
)

// inspectString inspects the a given string, and prints results.
func inspectStringRep(w io.Writer, projectID, repLocation, textToInspect string) error {
	// projectID := "my-project-id"
	// textToInspect := "My name is Gary and my email is gary@example.com"
	ctx := context.Background()

	// Assemble the regional endpoint url using provided rep location
	repEndpoint := fmt.Sprintf("dlp.%s.rep.googleapis.com:443", repLocation)

	// Initialize client.
	client, err := dlp.NewClient(ctx, option.WithEndpoint(repEndpoint))
	if err != nil {
		return err
	}
	defer client.Close() // Closing the client safely cleans up background resources.

	// Create and send the request.
	req := &dlppb.InspectContentRequest{
		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, repLocation),
		Item: &dlppb.ContentItem{
			DataItem: &dlppb.ContentItem_Value{
				Value: textToInspect,
			},
		},
		InspectConfig: &dlppb.InspectConfig{
			InfoTypes: []*dlppb.InfoType{
				{Name: "PHONE_NUMBER"},
				{Name: "EMAIL_ADDRESS"},
				{Name: "CREDIT_CARD_NUMBER"},
			},
			IncludeQuote: true,
		},
	}
	resp, err := client.InspectContent(ctx, req)
	if err != nil {
		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

Informationen zum Installieren und Verwenden der Clientbibliothek für Sensitive Data Protection finden Sie unter Sensitive Data Protection-Clientbibliotheken.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.cloud.dlp.v2.DlpServiceClient;
import com.google.cloud.dlp.v2.DlpServiceSettings;
import com.google.privacy.dlp.v2.ByteContentItem;
import com.google.privacy.dlp.v2.ByteContentItem.BytesType;
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.LocationName;
import com.google.protobuf.ByteString;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class InspectStringRep {

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

  // Inspects the provided text.
  public static void inspectString(String projectId, String repLocation, String textToInspect)
      throws IOException {
    // Assemble the regional endpoint url using provided rep location
    String repEndpoint = String.format("dlp.%s.rep.googleapis.com:443", repLocation);
    DlpServiceSettings settings = DlpServiceSettings.newBuilder()
        .setEndpoint(repEndpoint)
        .build();
    // 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(settings)) {
      // Specify the type and content to be inspected.
      ByteContentItem byteItem =
          ByteContentItem.newBuilder()
              .setType(BytesType.TEXT_UTF8)
              .setData(ByteString.copyFromUtf8(textToInspect))
              .build();
      ContentItem item = ContentItem.newBuilder().setByteItem(byteItem).build();

      // Specify the type of info the inspection will look for.
      List<InfoType> infoTypes = new ArrayList<>();
      // See https://cloud.google.com/dlp/docs/infotypes-reference for complete list of info types
      for (String typeName : new String[] {"PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER"}) {
        infoTypes.add(InfoType.newBuilder().setName(typeName).build());
      }

      // Construct the configuration for the Inspect request.
      InspectConfig config =
          InspectConfig.newBuilder().addAllInfoTypes(infoTypes).setIncludeQuote(true).build();

      // Construct the Inspect request to be sent by the client.
      InspectContentRequest request =
          InspectContentRequest.newBuilder()
              .setParent(LocationName.of(projectId, repLocation).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());
      }
    }
  }
}

REST

Im folgenden Beispiel wird eine content.inspect-Anfrage an einen regionalen Endpunkt gesendet. Alle Daten, die dieser Anfrage angehängt sind, verbleiben in der angegebenen Region, während sie übertragen, verwendet und gespeichert werden.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • REP_REGION: Eine Region, in der ein regionaler Endpunkt (REP) für Sensitive Data Protection verfügbar ist, z. B. us-west2. Eine vollständige Liste der Regionen finden Sie unter Standorte für den Schutz sensibler Daten.
  • PROJECT_ID: Ihre Google Cloud -Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie example-project.

HTTP-Methode und URL:

POST https://dlp.REP_REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REP_REGION/content:inspect

JSON-Text anfordern:

{
  "inspectConfig": {
    "infoTypes": [
      {
        "name": "CREDIT_CARD_NUMBER"
      }
    ]
  },
  "item": {
    "value": "hi, my ccn is 4111111111111111"
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "result": {
    "findings": [
      {
        "infoType": {
          "name": "CREDIT_CARD_NUMBER",
          "sensitivityScore": {
            "score": "SENSITIVITY_HIGH"
          }
        },
        "likelihood": "LIKELY",
        "location": {
          "byteRange": {
            "start": "14",
            "end": "30"
          },
          "codepointRange": {
            "start": "14",
            "end": "30"
          }
        },
        "createTime": "2024-08-09T19:54:13.348Z",
        "findingId": "2024-08-09T19:54:13.352163Z4747901452516738787"
      }
    ]
  }
}

Überlegungen zu Colocations

Wenn Sie ein Speicher-Repository wie Cloud Storage oder BigQuery scannen, sollten Sie denselben Speicherort in Ihrer Sensitive Data Protection-Anfrage als Speicherort des gescannten Repositorys angeben. Wenn sich das BigQuery-Dataset zum Beispiel am multiregionalen Standort „Europäische Union“ befindet, geben Sie beim Konfigurieren des Sensitive Data Protection-Jobs die Multiregion (europe) an.

Wenn Sie Ihre Anfrage für den Schutz sensibler Daten nicht an demselben Standort wie dem des zu durchsuchenden Speicher-Repositorys stellen, wird die Verarbeitung Ihrer Anfrage möglicherweise zwischen dem Speicherort der Daten und dem in der Anfrage angegebenen Speicherort aufgeteilt.

Nächste Schritte