Questa pagina descrive come ispezionare una risorsa Cloud Storage e creare copie anonimizzate dei dati utilizzando l'API Cloud Data Loss Prevention.
Questa operazione contribuisce ad assicurare che i file utilizzati nelle tue procedure aziendali non contengano dati sensibili, come le informazioni che consentono l'identificazione personale (PII). Sensitive Data Protection può esaminare i dati sensibili dei file in un bucket Cloud Storage e creare copie anonimizzate di questi file in un bucket separato. Puoi quindi utilizzare le copie anonimizzate nei tuoi processi aziendali.
Per ulteriori informazioni su questa funzionalità, consulta Anonimizzazione dei dati sensibili in Cloud Storage.
Prima di iniziare
Questa pagina presuppone quanto segue:
Hai attivato la fatturazione.
Hai attivato Sensitive Data Protection.
Hai un bucket Cloud Storage con dati che vuoi anonimizzare.
Devi sapere come inviare una richiesta HTTP all'API DLP. Per ulteriori informazioni, vedi Ispeziona il testo sensibile utilizzando l'API DLP.
Scopri le limitazioni e i punti di considerazione per questa operazione.
L'ispezione dello spazio di archiviazione richiede il seguente ambito OAuth:
https://www.googleapis.com/auth/cloud-platform
. Per ulteriori informazioni, consulta Autenticazione nell'API DLP.
Ruoli IAM obbligatori
Se tutte le risorse per questa operazione si trovano nello stesso progetto, il ruolo Agente di servizio dell'API DLP (roles/dlp.serviceAgent
) sull'agente di servizio è sufficiente. che ti consente di:
- Crea il job di ispezione
- Leggi i file nella directory di input
- Scrivere i file anonimizzati nella directory di output
- Scrivi i dettagli della trasformazione in una tabella BigQuery
Le risorse pertinenti includono il job di ispezione, i modelli di anonimizzazione, il bucket di input, il bucket di output e la tabella dei dettagli della trasformazione.
Se devi avere le risorse in progetti separati, assicurati che l'agente di servizio del tuo progetto abbia anche i seguenti ruoli:
- Il ruolo Visualizzatore oggetti Storage (
roles/storage.objectViewer
) sul bucket di input o sul progetto che lo contiene. - Il ruolo Storage Object Creator (
roles/storage.objectCreator
) sul bucket di output o sul progetto che lo contiene. - Il ruolo Editor dati BigQuery (
roles/bigquery.dataEditor
) nella tabella dei dettagli di trasformazione o nel progetto che la contiene.
Per concedere un ruolo all'account di servizio, vedi Concedere un singolo ruolo. Puoi anche controllare l'accesso ai seguenti livelli:
Panoramica dell'API
Per creare copie anonimizzate dei contenuti archiviati in Cloud Storage, configura un job di ispezione che cerca i dati sensibili in base ai criteri specificati. Poi, all'interno del job di ispezione, fornisci istruzioni di anonimizzazione sotto forma di azione Deidentify
.
Se vuoi eseguire la scansione solo di un sottoinsieme di file nel tuo bucket, puoi
limitare i file sottoposti a scansione dal job. Le opzioni supportate per i job con spersonalizzazione sono il filtro dei file per tipo (FileType
) e l'espressione regolare (FileSet
).
Quando attivi l'azione Deidentify
, per impostazione predefinita Sensitive Data Protection
crea copie anonimizzate (trasformate) di tutti i tipi di file supportati
inclusi nella ricerca. Tuttavia, puoi configurare il job in modo che trasformi solo un sottoinsieme dei tipi di file supportati.
(Facoltativo) Crea modelli di anonimizzazione
Se vuoi controllare la modalità di trasformazione dei risultati, crea i seguenti modelli. Questi modelli forniscono istruzioni sulla trasformazione dei risultati in file strutturati, file non strutturati e immagini.
Modello di anonimizzazione:un
DeidentifyTemplate
predefinito da utilizzare per i file non strutturati, come i file di testo in formato libero. Questo tipo diDeidentifyTemplate
non può contenere un oggettoRecordTransformations
, che è supportato solo per i contenuti strutturati. Se questo modello non è presente, Sensitive Data Protection utilizza il metodoReplaceWithInfoTypeConfig
per trasformare i file non strutturati.Modello di anonimizzazione strutturata:un
DeidentifyTemplate
da utilizzare per i file strutturati, come i file CSV. QuestoDeidentifyTemplate
può contenereRecordTransformations
. Se questo modello non è presente, Sensitive Data Protection utilizza il modello di anonimizzazione predefinito che hai creato. Se anche questo non è presente, la Protezione dei dati sensibili utilizza il metodoReplaceWithInfoTypeConfig
per trasformare i file strutturati.Modello di oscuramento delle immagini:un
DeidentifyTemplate
da utilizzare per le immagini. Questo modello deve contenere un oggettoImageTransformations
. Se questo modello non è presente, la funzionalità Protezione dei dati sensibili oscura tutti i risultati nelle immagini con una casella nera.
Scopri di più sulla creazione di un modello di anonimizzazione.
Crea un job di ispezione con un'azione di anonimizzazione
L'oggetto DlpJob
fornisce istruzioni su cosa ispezionare, su quali tipi di dati contrassegnare come sensibili e su cosa fare con i risultati.
Per anonimizzare i dati sensibili in una directory Cloud Storage, il tuo
DlpJob
deve definire almeno quanto segue:
- Un oggetto
StorageConfig
che specifica la directory Cloud Storage da ispezionare. - Un oggetto
InspectConfig
contenente i tipi di dati da cercare e istruzioni di ispezione aggiuntive su come trovare i dati sensibili. Un'azione
Deidentify
contenente quanto segue:Un oggetto
TransformationConfig
che specifica eventuali modelli che hai creato per l'anonimizzazione dei dati in file strutturati e non strutturati. Puoi anche includere la configurazione per oscurare i dati sensibili nelle immagini.Se non includi un oggetto
TransformationConfig
, Sensitive Data Protection sostituisce i dati sensibili nel testo con il relativo infoType. Nelle immagini, copre i dati sensibili con una casella nera.Un oggetto
TransformationDetailsStorageConfig
che specifica una tabella BigQuery in cui Sensitive Data Protection deve memorizzare i dettagli di ogni trasformazione. Per ogni trasformazione, i dettagli includono una descrizione, un codice di successo o di errore, eventuali dettagli dell'errore, il numero di byte trasformati, la posizione dei contenuti trasformati e il nome del job di ispezione in cui la Protezione dei dati sensibili ha eseguito la trasformazione. Questa tabella non memorizza i contenuti anonimizzati effettivi.
Quando i dati vengono scritti in una tabella BigQuery, la fatturazione e l'utilizzo delle quote vengono applicati al progetto che contiene la tabella di destinazione.
Una volta anonimizzati i contenuti copiati, il job di anonimizzazione termina. Il job contiene un riepilogo del numero di volte in cui sono state applicate le trasformazioni specificate, che puoi recuperare utilizzando il metodo projects.dlpJobs.get
su DlpJob
. L'oggetto DlpJob
restituito include sia un oggetto DeidentifyDataSourceDetails
sia un oggetto InspectDataSourceDetails
. Questi oggetti contengono rispettivamente i risultati di un'azione Deidentify
e il compito di ispezione.
Se hai incluso un oggetto TransformationDetailsStorageConfig
in DlpJob
, viene creata una tabella
BigQuery contenente i metadati relativi ai dettagli della trasformazione. Per ogni trasformazione eseguita, Sensitive Data Protection scrive una riga di metadati nella tabella. Per ulteriori informazioni sui contenuti della tabella, consulta il riferimento ai dettagli della trasformazione.
Esempi di codice
Gli esempi seguenti mostrano come utilizzare l'API DLP per creare copie anonimizzate dei file di Cloud Storage.
Metodo HTTP e URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
REST
Input JSON{
"inspect_job": {
"storage_config": {
"cloud_storage_options": {
"file_set": {
"url": "INPUT_DIRECTORY"
}
}
},
"inspect_config": {
"info_types": [
{
"name": "PERSON_NAME"
}
]
},
"actions": {
"deidentify": {
"cloud_storage_output": "OUTPUT_DIRECTORY",
"transformation_config": {
"deidentify_template": "DEIDENTIFY_TEMPLATE_NAME",
"structured_deidentify_template": "STRUCTURED_DEIDENTIFY_TEMPLATE_NAME",
"image_redact_template": "IMAGE_REDACTION_TEMPLATE_NAME"
},
"transformation_details_storage_config": {
"table": {
"project_id": "TRANSFORMATION_DETAILS_PROJECT_ID",
"dataset_id": "TRANSFORMATION_DETAILS_DATASET_ID",
"table_id": "TRANSFORMATION_DETAILS_TABLE_ID"
}
},
"fileTypesToTransform": ["IMAGE","CSV", "TEXT_FILE"]
}
}
}
}
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui vuoi memorizzare il job di ispezione.INPUT_DIRECTORY
: la directory Cloud Storage che vuoi controllare, ad esempiogs://input-bucket/folder1/folder1a
. Se l'URL termina con una barra finale, le eventuali sottodirectory all'interno diINPUT_DIRECTORY
non vengono sottoposte a scansione.OUTPUT_DIRECTORY
: la directory Cloud Storage dove vuoi archiviare i file anonimizzati. Questa directory non deve trovarsi nello stesso bucket Cloud Storage diINPUT_DIRECTORY
.DEIDENTIFY_TEMPLATE_NAME
: il nome completo della risorsa del modello di anonimizzazione predefinito per i file non strutturati e strutturati, se ne hai creato uno. Questo valore deve essere nel formatoprojects/projectName/(locations/locationId)/deidentifyTemplates/templateName
.STRUCTURED_DEIDENTIFY_TEMPLATE_NAME
: il nome completo della risorsa del modello di anonimizzazione per i file strutturati, se ne hai creato uno. Questo valore deve essere nel formatoprojects/projectName/(locations/locationId)/deidentifyTemplates/templateName
.IMAGE_REDACTION_TEMPLATE_NAME
: il nome completo della risorsa del modello di oscuramento delle immagini per le immagini, se ne hai creato uno. Questo valore deve essere nel formatoprojects/projectName/(locations/locationId)/deidentifyTemplates/templateName
.TRANSFORMATION_DETAILS_PROJECT_ID
: l'ID del progetto in cui vuoi memorizzare i dettagli della trasformazione.TRANSFORMATION_DETAILS_DATASET_ID
: l'ID del set di dati BigQuery in cui vuoi memorizzare i dettagli della trasformazione. Se non fornisci un ID tabella, il sistema ne crea automaticamente uno.TRANSFORMATION_DETAILS_TABLE_ID
: l'ID della tabella BigQuery in cui vuoi memorizzare i dettagli della trasformazione.
Tieni presente i seguenti oggetti:
inspectJob
: l'oggetto di configurazione del job (DlpJob
). Questo oggetto contiene la configurazione sia per le fasi di ispezione che per quelle di anonimizzazione.storageConfig
: la posizione dei contenuti da ispezionare (StorageConfig
). Questo esempio specifica un bucket Cloud StorageCloudStorageOptions
.inspectConfig
: informazioni sui dati sensibili che vuoi esaminare (InspectConfig
). Questo esempio esamina i contenuti corrispondenti al infoType incorporatoPERSON_NAME
.actions
: le azioni da intraprendere al termine della parte di ispezione del lavoro (Action
).deidentify
: se specifichi questa azione, Sensitive Data Protection deve anonimizzare i dati sensibili corrispondenti in base alla configurazione specificata al suo interno (Deidentify
).cloud_storage_output
: specifica l'URL della directory Cloud Storage che vuoi ispezionare.transformation_config
: specifica in che modo Sensitive Data Protection deve anonimizzare i dati sensibili in file strutturati, file non strutturati e immagini (TransformationConfig
).Se non includi un oggetto
TransformationConfig
, Sensitive Data Protection sostituisce i dati sensibili nel testo con il relativo infoType. Nelle immagini, copre i dati sensibili con una casella nera.transformation_details_storage_config
: specifica che Sensitive Data Protection deve memorizzare i metadati di ogni trasformazione eseguita per questo job. Inoltre, specifica la posizione e il nome della tabella in cui Sensitive Data Protection deve archiviare i metadati (TransformationDetailsStorageConfig
).fileTypesToTransform
: limita l'operazione di anonimizzazione solo ai tipi di file elencati. Se non imposti questo campo, tutti i tipi di file supportati inclusi nell'operazione di ispezione sono inclusi anche nell'operazione di anonimizzazione. In questo esempio, la funzionalità Protezione dei dati sensibili anonimizza solo i file di immagini, CSV e di testo, anche se hai configuratoDlpJob
per ispezionare tutti i tipi di file supportati.
Creare un job di ispezione tramite l'API REST
Per creare il job di ispezione (DlpJob
), invia una richiesta projects.dlpJobs.create
. Per inviare la richiesta utilizzando cURL, salva l'esempio REST precedente come file JSON ed esegui il seguente comando:
curl -s \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs \
-d @PATH_TO_JSON_FILE
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui hai archiviato ilDlpJob
.PATH_TO_JSON_FILE
: il percorso del file JSON che contiene il corpo della richiesta.
Sensitive Data Protection restituisce l'identificatore del
DlpJob
appena creato, il relativo stato e uno snapshot della configurazione di ispezione impostata.
{ "name": "projects/PROJECT_ID/dlpJobs/JOB_ID", "type": "INSPECT_JOB", "state": "PENDING", ... }
Recupera i risultati del job di ispezione
Per recuperare i risultati dell'DlpJob
, invia una richiesta projects.dlpJobs.get
:
curl -s \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs/JOB_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui hai archiviato ilDlpJob
.JOB_ID
: l'ID del job restituito quando hai creato ilDlpJob
.
Se l'operazione è completata, viene visualizzata una risposta simile alla seguente:
{ "name": "projects/PROJECT_ID/dlpJobs/JOB_ID", "type": "INSPECT_JOB", "state": "DONE", "inspectDetails": { "requestedOptions": { "snapshotInspectTemplate": {}, "jobConfig": { "storageConfig": { "cloudStorageOptions": { "fileSet": { "url": "INPUT_DIRECTORY" } } }, "inspectConfig": { "infoTypes": [ { "name": "PERSON_NAME" } ], "limits": {} }, "actions": [ { "deidentify": { "transformationDetailsStorageConfig": { "table": { "projectId": "TRANSFORMATION_DETAILS_PROJECT_ID", "datasetId": "TRANSFORMATION_DETAILS_DATASET_ID", "tableId": "TRANSFORMATION_DETAILS_TABLE_ID" } }, "transformationConfig": { "deidentifyTemplate": "DEIDENTIFY_TEMPLATE_NAME", "structuredDeidentifyTemplate": "STRUCTURED_DEIDENTIFY_TEMPLATE_NAME", "imageRedactTemplate": "IMAGE_REDACTION_TEMPLATE_NAME" }, "fileTypesToTransform": [ "IMAGE", "CSV", "TEXT_FILE" ], "cloudStorageOutput": "OUTPUT_DIRECTORY" } } ] } }, "result": { "processedBytes": "25242", "totalEstimatedBytes": "25242", "infoTypeStats": [ { "infoType": { "name": "PERSON_NAME" }, "count": "114" } ] } }, "createTime": "2022-06-09T23:00:53.380Z", "startTime": "2022-06-09T23:01:27.986383Z", "endTime": "2022-06-09T23:02:00.443536Z", "actionDetails": [ { "deidentifyDetails": { "requestedOptions": { "snapshotDeidentifyTemplate": { "name": "DEIDENTIFY_TEMPLATE_NAME", "createTime": "2022-06-09T17:46:34.208923Z", "updateTime": "2022-06-09T17:46:34.208923Z", "deidentifyConfig": { "infoTypeTransformations": { "transformations": [ { "primitiveTransformation": { "characterMaskConfig": { "maskingCharacter": "*", "numberToMask": 25 } } } ] } }, "locationId": "global" }, "snapshotStructuredDeidentifyTemplate": { "name": "STRUCTURED_DEIDENTIFY_TEMPLATE_NAME", "createTime": "2022-06-09T20:51:12.411456Z", "updateTime": "2022-06-09T21:07:53.633149Z", "deidentifyConfig": { "recordTransformations": { "fieldTransformations": [ { "fields": [ { "name": "Name" } ], "primitiveTransformation": { "replaceConfig": { "newValue": { "stringValue": "[redacted]" } } } } ] } }, "locationId": "global" }, "snapshotImageRedactTemplate": { "name": "IMAGE_REDACTION_TEMPLATE_NAME", "createTime": "2022-06-09T20:52:25.453564Z", "updateTime": "2022-06-09T20:52:25.453564Z", "deidentifyConfig": {}, "locationId": "global" } }, "deidentifyStats": { "transformedBytes": "3972", "transformationCount": "110" } } } ], "locationId": "global" }
Passaggi successivi
- Scopri di più sulla procedura di anonimizzazione dei dati archiviati.
- Scopri come anonimizzare i dati archiviati utilizzando la console Google Cloud.
- Segui il codelab Creare una copia anonimizzata dei dati in Cloud Storage.
- Scopri di più sulle trasformazioni di anonimizzazione.
- Scopri come controllare lo spazio di archiviazione per rilevare dati sensibili.