Utilizzando le regole per hotword, puoi estendere ulteriormente i rilevatori infoType integrati e personalizzati con regole di contesto efficaci. Una regola hotword indica a Sensitive Data Protection di modificare la probabilità di un risultato, a seconda che un'hotword si trovi vicino a quel risultato. Una regola hotword è un tipo di regola di ispezione, specificata nei set di regole. Ogni regola viene applicata a un insieme di infoType integrati o personalizzati.
Anatomia di una regola hotword
Un rilevatore infoType può avere zero o più regole per hotword. Nella
configurazione dell'ispezione, definisci ogni HotwordRule
oggetto all'interno dell'array rules, come segue:
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"REGEX_PATTERN"
},
"proximity":{
"windowAfter":"NUM_CHARS_TO_CONSIDER_AFTER_FINDING",
"windowBefore":"NUM_CHARS_TO_CONSIDER_BEFORE_FINDING"
}
"likelihoodAdjustment":{
"fixedLikelihood":"LIKELIHOOD_VALUE"
-- OR --
"relativeLikelihood":"LIKELIHOOD_ADJUSTMENT"
},
}
},
...
]
Sostituisci quanto segue:
- REGEX_PATTERN: un'espressione regolare
(
Regexoggetto) che definisce ciò che è considerato un'hotword. - NUM_CHARS_TO_CONSIDER_AFTER_FINDING: un intervallo di caratteri dopo il risultato. Sensitive Data Protection analizza questo intervallo per determinare se un'hotword si trova vicino al risultato.
NUM_CHARS_TO_CONSIDER_BEFORE_FINDING: un intervallo di caratteri prima del risultato. Sensitive Data Protection analizza questo intervallo per determinare se un'hotword si trova vicino al risultato.
LIKELIHOOD_VALUE: un
Likelihoodlivello fisso da impostare per il risultato.LIKELIHOOD_ADJUSTMENT: un numero che indica di quanto Sensitive Data Protection deve aumentare o diminuire la probabilità del risultato. Un numero intero positivo aumenta il livello di probabilità, mentre un numero intero negativo lo diminuisce. Ad esempio, se un risultato sarebbe
POSSIBLEsenza la regola di rilevamento erelativeLikelihoodè 1, il risultato viene aggiornato aLIKELY. SerelativeLikelihoodè -1, il risultato viene sottoposto a downgrade aUNLIKELY. La probabilità non può mai scendere al di sotto diVERY_UNLIKELYo superareVERY_LIKELY. In questi casi, il livello di probabilità rimane lo stesso. Ad esempio, se la probabilità di base èVERY_LIKELYerelativeLikelihoodè 1, la probabilità finale rimaneVERY_LIKELY.
Esempio di hotword: corrispondenza con i numeri di storia clinica
Supponiamo che tu voglia rilevare un infoType personalizzato, ad esempio un numero di storia clinica (MRN) nel formato "###-#-#####". Inoltre, vuoi che Sensitive Data Protection aumenti la probabilità di corrispondenza di ogni risultato che segue l'hotword "MRN".
Valori di esempio:
- 123-4-56789 corrisponde a
POSSIBLE. - MRN 123-4-56789 corrisponde a
VERY_LIKELY.
I seguenti esempi di JSON e snippet di codice mostrano come configurare la regola hotword. Questo esempio utilizza un rilevatore di espressioni regolari personalizzato.
In questo esempio, tieni presente quanto segue:
- La richiesta definisce l'infoType personalizzato
C_MRN, che è un rilevatore per qualsiasi stringa che corrisponde all'espressione regolare[0-9]{3}-[0-9]{1}-[0-9]{5}. - L'espressione regolare
(?i)(mrn|medical)(?-i)definisce l'hotword. Sensitive Data Protection cerca questa hotword nell'intervallo di caratteri definito nel campoproximity. - Per ogni risultato
C_MRNche ha un'hotword all'interno dell'insiemeproximity, Sensitive Data Protection imposta il livello di probabilità suVERY_LIKELY.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per ulteriori informazioni sull'utilizzo dell'API DLP con JSON, consulta la guida rapida JSON.
Metodo HTTP e URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
Sostituisci PROJECT_ID con l'ID progetto.
Input JSON:
{
"item":{
"value":"Patient's MRN 444-5-22222 and just a number 333-2-33333"
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"C_MRN"
},
"regex":{
"pattern":"[0-9]{3}-[0-9]{1}-[0-9]{5}"
},
"likelihood":"POSSIBLE",
}
],
"ruleSet":[
{
"infoTypes": [{"name" : "C_MRN"}],
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"(?i)(mrn|medical)(?-i)"
},
"likelihoodAdjustment":{
"fixedLikelihood":"VERY_LIKELY"
},
"proximity":{
"windowBefore":10
}
}
}
]
}
]
}
}
Output JSON (abbreviato):
{
"result": {
"findings": [
{
"infoType": {
"name": "C_MRN"
},
"likelihood": "VERY_LIKELY",
"location": {
"byteRange": {
"start": "14",
"end": "25"
},
"codepointRange": { ... }
}
},
{
"infoType": {
"name": "C_MRN"
},
"likelihood": "POSSIBLE",
"byteRange": {
"start": "44",
"end": "55"
},
"codepointRange": { ... }
}
}
]
}
}
L'output mostra che Sensitive Data Protection ha identificato correttamente il numero di storia clinica utilizzando il rilevatore infoType personalizzato C_MRN.
Inoltre, grazie alla corrispondenza di contesto nella regola hotword, Sensitive Data Protection ha assegnato al primo risultato, che aveva un MRN all'interno dell'insieme proximity, una probabilità di VERY_LIKELY, come configurato. Il secondo risultato non aveva il contesto, quindi likelihood è rimasto POSSIBLE.
Esempio di hotword: impostare la probabilità di corrispondenza di una colonna della tabella
Questo esempio mostra come impostare la probabilità di corrispondenza di un'intera colonna di dati. Questo approccio è utile, ad esempio, se vuoi escludere una colonna di dati dai risultati dell'ispezione.
Considera la seguente tabella. Una colonna contiene segnaposto per i numeri di previdenza sociale (SSN) e un'altra contiene SSN reali.
| Numero di previdenza sociale fittizio | Numero di previdenza sociale reale |
|---|---|
| 111-11-1111 | 222-22-2222 |
Per ridurre il rumore nei risultati dell'ispezione, puoi escludere tutti i risultati nella colonna Fake Social Security Number. Assegna un livello di probabilità basso a questa colonna. Poi, configura la richiesta in modo che le corrispondenze con quel livello di probabilità vengano escluse dai risultati.
In questo esempio, tieni presente quanto segue:
- La regola hotword viene applicata all'infoType
US_SOCIAL_SECURITY_NUMBER. - L'espressione regolare per hotword
(Fake Social Security Number)contiene il nome della colonna con i valori segnaposto. - La proprietà
windowBeforeè impostata su 1, il che significa che l'hotword si trova in un'intestazione di colonna e i risultati devono essere nella colonna. - Per ogni risultato
US_SOCIAL_SECURITY_NUMBERin questa colonna, Sensitive Data Protection imposta il livello di probabilità suVERY_UNLIKELY. - La proprietà
minLikelihoodè impostata suPOSSIBLE, il che significa che tutti i risultati con un livello di probabilità inferiore aPOSSIBLEvengono esclusi dai risultati dell'ispezione.
Per ulteriori informazioni sull'utilizzo dell'API DLP con JSON, consulta la guida rapida JSON.
Metodo HTTP e URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
Sostituisci PROJECT_ID con l'ID progetto.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Input JSON:{
"item": {
"table": {
"headers": [
{
"name": "Fake Social Security Number"
},
{
"name": "Real Social Security Number"
}
],
"rows": [
{
"values": [
{
"stringValue": "111-11-1111"
},
{
"stringValue": "222-22-2222"
}
]
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"includeQuote": true,
"ruleSet": [
{
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"rules": [
{
"hotwordRule": {
"hotwordRegex": {
"pattern": "(Fake Social Security Number)"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_UNLIKELY"
},
"proximity": {
"windowBefore": 1
}
}
}
]
}
],
"minLikelihood": "POSSIBLE"
}
}
Output JSON:
{
"result": {
"findings": [
{
"quote": "222-22-2222",
"infoType": {
"name": "US_SOCIAL_SECURITY_NUMBER"
},
"likelihood": "VERY_LIKELY",
"location": {
"byteRange": {
"end": "11"
},
"codepointRange": {
"end": "11"
},
"contentLocations": [
{
"recordLocation": {
"fieldId": {
"name": "Real Social Security Number"
},
"tableLocation": {}
}
}
]
},
"createTime": "TIMESTAMP",
"findingId": "TIMESTAMP"
}
]
}
}
Il valore 111-11-1111, che si trova nella colonna Fake Social Security Number, corrispondeva alla regola hotword, quindi Sensitive Data Protection gli ha assegnato il livello di probabilità VERY_UNLIKELY . Questo livello è inferiore alla probabilità minima impostata nella configurazione dell'ispezione (POSSIBLE), quindi questo risultato viene escluso dal risultato dell'ispezione.
Puoi sperimentare con questo esempio rimuovendo il set di regole. Tieni presente che Sensitive Data Protection include 111-11-1111 nei risultati.