Ispeziona una stringa per l'individuazione di dati sensibili utilizzando una hotword personalizzata
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Aumenta la probabilità di una corrispondenza con PERSON_NAME se c'è l'hotword "paziente" nelle vicinanze.
Illustra l'utilizzo della proprietà inspectConfig allo scopo di scansionare un database medico per i nomi dei pazienti. Puoi utilizzare il rilevatore di infoType PERSON_NAME integrato di Cloud DLP, ma questo determina la corrispondenza di Cloud DLP per tutti i nomi delle persone, non solo per i pazienti. Per risolvere il problema, puoi includere una regola hotword che cerchi la parola "paziente" all'interno di un determinato carattere vicino al primo carattere di potenziali corrispondenze. Puoi quindi assegnare risultati che corrispondono a questo pattern con una probabilità di "molto probabile" perché corrispondono ai tuoi criteri speciali. L'impostazione della probabilità minima su VERY_LikeLY in inspectConfig garantisce che nei risultati vengano restituite solo corrispondenze con questa configurazione.
Per saperne di più
Per la documentazione dettagliata che include questo esempio di codice, consulta quanto segue:
Esempio di codice
Go
Per scoprire come installare e utilizzare la libreria client per Cloud DLP, consulta la pagina relativa alle librerie client di Cloud DLP.
Per eseguire l'autenticazione in Cloud DLP, configura le Credenziali predefinite dell'applicazione.
Per saperne di più, consulta
Configurare l'autenticazione per un ambiente di sviluppo locale.
import (
"context"
"fmt"
"io"
dlp "cloud.google.com/go/dlp/apiv2"
"cloud.google.com/go/dlp/apiv2/dlppb"
)
// inspectStringCustomHotWord inspects a string from sensitive data by using a custom hot word
func inspectStringCustomHotWord(w io.Writer, projectID, textToInspect, customHotWord, infoTypeName string) error {
// projectID := "my-project-id"
// textToInspect := "patient name: John Doe"
// customHotWord := "patient"
// infoTypeName := "PERSON_NAME"
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 type and content to be inspected.
contentItem := &dlppb.ContentItem{
DataItem: &dlppb.ContentItem_ByteItem{
ByteItem: &dlppb.ByteContentItem{
Type: dlppb.ByteContentItem_TEXT_UTF8,
Data: []byte(textToInspect),
},
},
}
// Increase likelihood of matches that have customHotword nearby
hotwordRule := &dlppb.InspectionRule_HotwordRule{
HotwordRule: &dlppb.CustomInfoType_DetectionRule_HotwordRule{
HotwordRegex: &dlppb.CustomInfoType_Regex{
Pattern: customHotWord,
},
Proximity: &dlppb.CustomInfoType_DetectionRule_Proximity{
WindowBefore: 50,
},
LikelihoodAdjustment: &dlppb.CustomInfoType_DetectionRule_LikelihoodAdjustment{
Adjustment: &dlppb.CustomInfoType_DetectionRule_LikelihoodAdjustment_FixedLikelihood{
FixedLikelihood: dlppb.Likelihood_VERY_LIKELY,
},
},
},
}
// Construct a ruleset that applies the hotword rule to the PERSON_NAME infotype.
ruleSet := &dlppb.InspectionRuleSet{
InfoTypes: []*dlppb.InfoType{
{Name: infoTypeName}, //"PERSON_NAME"
},
Rules: []*dlppb.InspectionRule{
{
Type: &dlppb.InspectionRule_HotwordRule{
HotwordRule: hotwordRule.HotwordRule,
},
},
},
}
// Construct the Inspect request to be sent by the client.
req := &dlppb.InspectContentRequest{
Parent: fmt.Sprintf("projects/%s/locations/global", projectID),
Item: contentItem,
InspectConfig: &dlppb.InspectConfig{
InfoTypes: []*dlppb.InfoType{
{Name: infoTypeName}, //"PERSON_NAME"
},
IncludeQuote: true,
MinLikelihood: dlppb.Likelihood_VERY_LIKELY,
RuleSet: []*dlppb.InspectionRuleSet{
ruleSet,
},
},
}
// Send the request.
resp, err := client.InspectContent(ctx, req)
if err != nil {
return err
}
// Parse the response and process results
fmt.Fprintf(w, "Findings: %v\n", len(resp.Result.Findings))
for _, v := range resp.GetResult().Findings {
fmt.Fprintf(w, "Quote: %v\n", v.GetQuote())
fmt.Fprintf(w, "Infotype Name: %v\n", v.GetInfoType().GetName())
fmt.Fprintf(w, "Likelihood: %v\n", v.GetLikelihood())
}
return nil
}
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
[{
"type": "thumb-down",
"id": "hardToUnderstand",
"label":"Difficile da capire"
},{
"type": "thumb-down",
"id": "incorrectInformationOrSampleCode",
"label":"Informazioni o codice di esempio errati"
},{
"type": "thumb-down",
"id": "missingTheInformationSamplesINeed",
"label":"Mancano le informazioni o gli esempi di cui ho bisogno"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problema di traduzione"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Altra"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Facile da capire"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Il problema è stato risolto"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Altra"
}]