Cloud Data Loss Prevention API を使用して検査ジョブを作成します。
もっと見る
このコードサンプルを含む詳細なドキュメントについては、以下をご覧ください。
コードサンプル
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
using System;
using System.Linq;
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dlp.V2;
using static Google.Cloud.Dlp.V2.StorageConfig.Types;
public class JobsCreate
{
public static DlpJob CreateJob(string projectId, string gcsPath)
{
var dlp = DlpServiceClient.Create();
var storageConfig = new StorageConfig
{
CloudStorageOptions = new CloudStorageOptions
{
FileSet = new CloudStorageOptions.Types.FileSet()
{
Url = gcsPath
}
},
TimespanConfig = new TimespanConfig
{
EnableAutoPopulationOfTimespanConfig = true
}
};
var inspectConfig = new InspectConfig
{
InfoTypes = { new[] { "EMAIL_ADDRESS", "CREDIT_CARD_NUMBER" }.Select(it => new InfoType() { Name = it }) },
IncludeQuote = true,
MinLikelihood = Likelihood.Unlikely,
Limits = new InspectConfig.Types.FindingLimits() { MaxFindingsPerItem = 100 }
};
var response = dlp.CreateDlpJob(new CreateDlpJobRequest
{
Parent = new LocationName(projectId, "global").ToString(),
InspectJob = new InspectJobConfig
{
InspectConfig = inspectConfig,
StorageConfig = storageConfig,
}
});
Console.WriteLine($"Job: {response.Name} status: {response.State}");
return response;
}
}
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
import (
"context"
"fmt"
"io"
dlp "cloud.google.com/go/dlp/apiv2"
"cloud.google.com/go/dlp/apiv2/dlppb"
)
// createJob creates an inspection job
func createJob(w io.Writer, projectID, gcsPath string, infoTypeNames []string) error {
// projectID := "my-project-id"
// gcsPath := "gs://" + "your-bucket-name" + "path/to/file.txt";
// infoTypeNames := []string{"EMAIL_ADDRESS", "PERSON_NAME", "LOCATION", "PHONE_NUMBER"}
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()
// Specify the GCS file to be inspected.
storageConfig := &dlppb.StorageConfig{
Type: &dlppb.StorageConfig_CloudStorageOptions{
CloudStorageOptions: &dlppb.CloudStorageOptions{
FileSet: &dlppb.CloudStorageOptions_FileSet{
Url: gcsPath,
},
},
},
// Set autoPopulateTimespan to true to scan only new content.
TimespanConfig: &dlppb.StorageConfig_TimespanConfig{
EnableAutoPopulationOfTimespanConfig: true,
},
}
// 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.
var infoTypes []*dlppb.InfoType
for _, c := range infoTypeNames {
infoTypes = append(infoTypes, &dlppb.InfoType{Name: c})
}
inspectConfig := &dlppb.InspectConfig{
InfoTypes: infoTypes,
IncludeQuote: true,
// The minimum likelihood required before returning a match:
// See: https://cloud.google.com/dlp/docs/likelihood
MinLikelihood: dlppb.Likelihood_UNLIKELY,
// The maximum number of findings to report (0 = server maximum)
Limits: &dlppb.InspectConfig_FindingLimits{
MaxFindingsPerItem: 100,
},
}
// Create and send the request.
req := dlppb.CreateDlpJobRequest{
Parent: fmt.Sprintf("projects/%s/locations/global", projectID),
Job: &dlppb.CreateDlpJobRequest_InspectJob{
InspectJob: &dlppb.InspectJobConfig{
InspectConfig: inspectConfig,
StorageConfig: storageConfig,
},
},
}
// Send the request.
response, err := client.CreateDlpJob(ctx, &req)
if err != nil {
return err
}
// Print the results.
fmt.Fprintf(w, "Created a Dlp Job %v and Status is: %v", response.Name, response.State)
return nil
}
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
import com.google.cloud.dlp.v2.DlpServiceClient;
import com.google.privacy.dlp.v2.Action;
import com.google.privacy.dlp.v2.CloudStorageOptions;
import com.google.privacy.dlp.v2.CreateDlpJobRequest;
import com.google.privacy.dlp.v2.DlpJob;
import com.google.privacy.dlp.v2.InfoType;
import com.google.privacy.dlp.v2.InspectConfig;
import com.google.privacy.dlp.v2.InspectJobConfig;
import com.google.privacy.dlp.v2.Likelihood;
import com.google.privacy.dlp.v2.LocationName;
import com.google.privacy.dlp.v2.StorageConfig;
import com.google.privacy.dlp.v2.StorageConfig.TimespanConfig;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class JobsCreate {
public static void main(String[] args) throws Exception {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String gcsPath = "gs://" + "your-bucket-name" + "path/to/file.txt";
createJobs(projectId, gcsPath);
}
// Creates a DLP Job
public static void createJobs(String projectId, String gcsPath) 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()) {
// Set autoPopulateTimespan to true to scan only new content
boolean autoPopulateTimespan = true;
TimespanConfig timespanConfig =
TimespanConfig.newBuilder()
.setEnableAutoPopulationOfTimespanConfig(autoPopulateTimespan)
.build();
// Specify the GCS file to be inspected.
CloudStorageOptions cloudStorageOptions =
CloudStorageOptions.newBuilder()
.setFileSet(CloudStorageOptions.FileSet.newBuilder().setUrl(gcsPath))
.build();
StorageConfig storageConfig =
StorageConfig.newBuilder()
.setCloudStorageOptions(cloudStorageOptions)
.setTimespanConfig(timespanConfig)
.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
List<InfoType> infoTypes =
Stream.of("EMAIL_ADDRESS", "PERSON_NAME", "LOCATION", "PHONE_NUMBER")
.map(it -> InfoType.newBuilder().setName(it).build())
.collect(Collectors.toList());
// The minimum likelihood required before returning a match:
// See: https://cloud.google.com/dlp/docs/likelihood
Likelihood minLikelihood = Likelihood.UNLIKELY;
// The maximum number of findings to report (0 = server maximum)
InspectConfig.FindingLimits findingLimits =
InspectConfig.FindingLimits.newBuilder().setMaxFindingsPerItem(100).build();
InspectConfig inspectConfig =
InspectConfig.newBuilder()
.addAllInfoTypes(infoTypes)
.setIncludeQuote(true)
.setMinLikelihood(minLikelihood)
.setLimits(findingLimits)
.build();
// Specify the action that is triggered when the job completes.
Action.PublishSummaryToCscc publishSummaryToCscc =
Action.PublishSummaryToCscc.getDefaultInstance();
Action action = Action.newBuilder().setPublishSummaryToCscc(publishSummaryToCscc).build();
// Configure the inspection job we want the service to perform.
InspectJobConfig inspectJobConfig =
InspectJobConfig.newBuilder()
.setInspectConfig(inspectConfig)
.setStorageConfig(storageConfig)
.addActions(action)
.build();
// Construct the job creation request to be sent by the client.
CreateDlpJobRequest createDlpJobRequest =
CreateDlpJobRequest.newBuilder()
.setParent(LocationName.of(projectId, "global").toString())
.setInspectJob(inspectJobConfig)
.build();
// Send the job creation request and process the response.
DlpJob createdDlpJob = dlpServiceClient.createDlpJob(createDlpJobRequest);
System.out.println("Job created successfully: " + createdDlpJob.getName());
}
}
}
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
// Imports the Google Cloud Data Loss Prevention library
const DLP = require('@google-cloud/dlp');
// Initialize google DLP Client
const dlp = new DLP.DlpServiceClient();
async function jobsCreate() {
// Construct cloud storage configuration
const cloudStorageConfig = {
cloudStorageOptions: {
fileSet: {
url: cloudFileUrl,
},
},
timespanConfig: {
enableAutoPopulationOfTimespanConfig: true,
},
};
// Construct inspect job configuration
const inspectJob = {
storageConfig: cloudStorageConfig,
};
// Construct inspect configuration
const inspectConfig = {
infoTypes: [
{name: 'EMAIL_ADDRESS'},
{name: 'PERSON_NAME'},
{name: 'LOCATION'},
{name: 'PHONE_NUMBER'},
],
includeQuote: true,
minLikelihood: DLP.protos.google.privacy.dlp.v2.Likelihood.LIKELY,
excludeInfoTypes: false,
};
// Combine configurations into a request for the service.
const request = {
parent: `projects/${projectId}/locations/global`,
inspectJob: inspectJob,
inspectConfig: inspectConfig,
};
// Send the request and receive response from the service
const [response] = await dlp.createDlpJob(request);
// Print the results
console.log(`Job created successfully: ${response.name}`);
}
jobsCreate();
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
use Google\Cloud\Dlp\V2\Action;
use Google\Cloud\Dlp\V2\Action\PublishSummaryToCscc;
use Google\Cloud\Dlp\V2\Client\DlpServiceClient;
use Google\Cloud\Dlp\V2\CloudStorageOptions;
use Google\Cloud\Dlp\V2\CloudStorageOptions\FileSet;
use Google\Cloud\Dlp\V2\CreateDlpJobRequest;
use Google\Cloud\Dlp\V2\InfoType;
use Google\Cloud\Dlp\V2\InspectConfig;
use Google\Cloud\Dlp\V2\InspectConfig\FindingLimits;
use Google\Cloud\Dlp\V2\InspectJobConfig;
use Google\Cloud\Dlp\V2\Likelihood;
use Google\Cloud\Dlp\V2\StorageConfig;
use Google\Cloud\Dlp\V2\StorageConfig\TimespanConfig;
/**
* Creates an inspection job with the Cloud Data Loss Prevention API.
*
* @param string $callingProjectId The project ID to run the API call under.
* @param string $gcsPath GCS file to be inspected. Example : gs://GOOGLE_STORAGE_BUCKET_NAME/dlp_sample.csv
*/
function create_job(
string $callingProjectId,
string $gcsPath
): void {
// Instantiate a client.
$dlp = new DlpServiceClient();
// Set autoPopulateTimespan to true to scan only new content.
$timespanConfig = (new TimespanConfig())
->setEnableAutoPopulationOfTimespanConfig(true);
// Specify the GCS file to be inspected.
$cloudStorageOptions = (new CloudStorageOptions())
->setFileSet((new FileSet())
->setUrl($gcsPath));
$storageConfig = (new StorageConfig())
->setCloudStorageOptions(($cloudStorageOptions))
->setTimespanConfig($timespanConfig);
// ----- Construct inspection config -----
$emailAddressInfoType = (new InfoType())
->setName('EMAIL_ADDRESS');
$personNameInfoType = (new InfoType())
->setName('PERSON_NAME');
$locationInfoType = (new InfoType())
->setName('LOCATION');
$phoneNumberInfoType = (new InfoType())
->setName('PHONE_NUMBER');
$infoTypes = [$emailAddressInfoType, $personNameInfoType, $locationInfoType, $phoneNumberInfoType];
// Whether to include the matching string in the response.
$includeQuote = true;
// The minimum likelihood required before returning a match.
$minLikelihood = likelihood::LIKELIHOOD_UNSPECIFIED;
// The maximum number of findings to report (0 = server maximum).
$limits = (new FindingLimits())
->setMaxFindingsPerRequest(100);
// Create the Inspect configuration object.
$inspectConfig = (new InspectConfig())
->setMinLikelihood($minLikelihood)
->setLimits($limits)
->setInfoTypes($infoTypes)
->setIncludeQuote($includeQuote);
// Specify the action that is triggered when the job completes.
$action = (new Action())
->setPublishSummaryToCscc(new PublishSummaryToCscc());
// Configure the inspection job we want the service to perform.
$inspectJobConfig = (new InspectJobConfig())
->setInspectConfig($inspectConfig)
->setStorageConfig($storageConfig)
->setActions([$action]);
// Send the job creation request and process the response.
$parent = "projects/$callingProjectId/locations/global";
$createDlpJobRequest = (new CreateDlpJobRequest())
->setParent($parent)
->setInspectJob($inspectJobConfig);
$job = $dlp->createDlpJob($createDlpJobRequest);
// Print results.
printf($job->getName());
}
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
import google.cloud.dlp
def create_dlp_job(
project: str,
bucket: str,
info_types: list[str],
job_id: str = None,
max_findings: int = 100,
auto_populate_timespan: bool = True,
) -> None:
"""Uses the Data Loss Prevention API to create a DLP job.
Args:
project: The project id to use as a parent resource.
bucket: The name of the GCS bucket to scan. This sample scans all
files in the bucket.
info_types: A list of strings representing info types to look for.
A full list of info type categories can be fetched from the API.
job_id: The id of the job. If omitted, an id will be randomly generated.
max_findings: The maximum number of findings to report; 0 = no maximum.
auto_populate_timespan: Automatically populates time span config start
and end times in order to scan new content only.
"""
# Instantiate a client.
dlp = google.cloud.dlp_v2.DlpServiceClient()
# Convert the project id into a full resource id.
parent = f"projects/{project}"
# Prepare info_types by converting the list of strings into a list of
# dictionaries (protos are also accepted).
info_types = [{"name": info_type} for info_type in info_types]
# Construct the configuration dictionary. Keys which are None may
# optionally be omitted entirely.
inspect_config = {
"info_types": info_types,
"min_likelihood": google.cloud.dlp_v2.Likelihood.UNLIKELY,
"limits": {"max_findings_per_request": max_findings},
"include_quote": True,
}
# Construct a cloud_storage_options dictionary with the bucket's URL.
url = f"gs://{bucket}/*"
storage_config = {
"cloud_storage_options": {"file_set": {"url": url}},
# Time-based configuration for each storage object.
"timespan_config": {
# Auto-populate start and end times in order to scan new objects
# only.
"enable_auto_population_of_timespan_config": auto_populate_timespan
},
}
# Construct the job definition.
job = {"inspect_config": inspect_config, "storage_config": storage_config}
# Call the API.
response = dlp.create_dlp_job(
request={"parent": parent, "inspect_job": job, "job_id": job_id}
)
# Print out the result.
print(f"Job : {response.name} status: {response.state}")
次のステップ
他の Google Cloud プロダクトに関連するコードサンプルの検索およびフィルタ検索を行うには、Google Cloud のサンプルをご覧ください。