Cet article présente les techniques d'anonymisation, ou transformations, disponibles dans Cloud DLP.
Types de techniques d'anonymisation
Le choix de la transformation d'anonymisation à utiliser dépend du type de données que vous souhaitez anonymiser et de l'objectif de l'opération. Les techniques d'anonymisation disponibles dans Cloud DLP relèvent des catégories générales suivantes :
- Effacement : supprime tout ou partie d'une valeur sensible détectée.
- Remplacement : remplace une valeur sensible détectée par une valeur de substitution spécifiée.
- Masquage : remplace un certain nombre de caractères d'une valeur sensible par un caractère de substitution spécifié, tel qu'un dièse (#) ou un astérisque (*).
- Tokenisation par chiffrement : chiffre la valeur des données sensibles d'origine à l'aide d'une clé de chiffrement. Cloud DLP est compatible avec plusieurs types de tokenisation, y compris les transformations réversibles permettant de restaurer l'identification.
- Binning : "généralise" une valeur sensible en la remplaçant par une plage de valeurs. Par exemple, remplacer un âge spécifique par une tranche d'âge, ou des températures par des plages correspondant à "chaud", "moyen" et "froid".
- Changement de date : remplace les valeurs de date sensibles par une durée aléatoire.
- Extraction de données temporelles : extrait ou conserve des portions spécifiées de valeurs de date et d'heure.
Le reste de l'article présente les différents types de transformation d'anonymisation, accompagnés d'exemples d'utilisation.
Méthodes de transformation
Le tableau ci-dessous répertorie les transformations fournies par Cloud DLP pour anonymiser les données sensibles :
Transformation | Objet | Description | Inversion possible1 | Intégrité référentielle2 | Type d'entrée |
---|---|---|---|---|---|
Effacement | RedactConfig |
Efface une valeur en la supprimant. | Tout | ||
Remplacement | ReplaceValueConfig |
Remplace chaque valeur saisie par une valeur donnée. | Tout | ||
Remplacement par un infoType | ReplaceWithInfoTypeConfig |
Remplace une valeur saisie par le nom de son infoType. | Tout | ||
Masquage avec un caractère | CharacterMaskConfig |
Masque intégralement ou partiellement une chaîne en remplaçant un nombre donné de caractères par un caractère fixe spécifié. | Tout | ||
Pseudonymisation en remplaçant la valeur saisie par un hachage de chiffrement | CryptoHashConfig |
Remplace les valeurs saisies par une chaîne hexadécimale de 32 octets générée à l'aide d'une clé de chiffrement des données. Pour en savoir plus, consultez la documentation relative au concept de pseudonymisation. | ✔ | Chaînes ou entiers | |
Pseudonymisation en remplaçant la valeur saisie par un jeton de chiffrement préservant le format | CryptoReplaceFfxFpeConfig |
Remplace une valeur saisie par un jeton (ou valeur de substitution) de la même longueur à l'aide du chiffrement préservant le format (FPE), en mode d'opération FFX. Le résultat peut ainsi être utilisé dans les systèmes faisant appel à la validation de format des longueurs de chaînes. Cette méthode est utile pour les anciens systèmes dans lesquels la longueur de chaîne doit être gérée.
Important : pour les entrées dont la longueur est variable ou supérieure à 32 octets, utilisez l'objet CryptoDeterministicConfig .
Pour garantir la sécurité des données, les limites suivantes sont recommandées par le National Institute of Standards and Technology :
|
✔ | ✔ | Chaînes ou entiers avec un nombre limité de caractères et de longueur uniforme. L'alphabet doit comporter un minimum de deux et un maximum de 95 caractères. |
Pseudonymisation en remplaçant la valeur saisie par un jeton cryptographique | CryptoDeterministicConfig |
Remplace une valeur d'entrée par un jeton ou une valeur de substitution de même longueur à l'aide de la méthode AES en mode vecteur d'initialisation synthétique (AES-SIV). Cette méthode de transformation, contrairement à la tokenisation qui préserve le format, n'impose aucune limitation aux jeux de caractères de chaîne compatibles, génère des jetons identiques pour chaque instance d'une valeur d'entrée identique, et applique des valeurs de substitution pour activer la désanonymisation à partir de la clé de chiffrement d'origine. | ✔ | ✔ | Tout |
Fragmentation des valeurs en fonction de plages de taille fixe | FixedSizeBucketingConfig |
Masque les valeurs saisies en les remplaçant par des "buckets" (plages auxquelles appartiennent les valeurs spécifiées). | Tous | ||
Fragmentation des valeurs en fonction de plages de taille personnalisée | BucketingConfig |
Fragmente les valeurs saisies d'après des plages configurables par l'utilisateur et des valeurs de remplacement. | Tout | ||
Changement de date | DateShiftConfig |
Décale les dates d'un nombre aléatoire de jours. Offre la possibilité de rester cohérent dans un même contexte. | ✔ Conserve la séquence et la durée. |
Dates/Heures | |
Extraction des données temporelles | TimePartConfig |
Extrait ou conserve une partie des valeurs Date , Timestamp et TimeOfDay . |
Dates/Heures |
Notes de bas de page
content.reidentify
.
Masquage
Si vous souhaitez simplement supprimer des données sensibles de votre contenu d'entrée, Cloud DLP accepte la transformation de masquage (RedactConfig
dans l'API DLP).
Par exemple, supposons que vous vouliez effectuer un simple effacement de tous les infoTypes EMAIL_ADDRESS
et que la chaîne suivante soit envoyée à Cloud DLP :
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La chaîne renvoyée sera la suivante :
My name is Alicia Abernathy, and my email address is .
L'exemple de code JSON suivant disponible dans plusieurs langages montre comment former la requête API et ce que renvoie l'API DLP:
Protocole
Entrée JSON :
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"redactConfig":{
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Sortie JSON :
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"redactConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Remplacement
Les transformations de remplacement substituent à chaque valeur d'entrée une valeur de jeton donnée ou le nom de son infoType.
Remplacement de base
La transformation de remplacement de base (ReplaceValueConfig
dans l'API DLP) remplace les valeurs de données sensibles détectées par une valeur que vous spécifiez. Exemple : vous avez indiqué à Cloud DLP d'utiliser "[fake@example.com]" pour remplacer tous les infoTypes EMAIL_ADDRESS
détectés, et la chaîne ci-dessous est envoyée à Cloud DLP :
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Ceci renvoie la chaîne suivante :
My name is Alicia Abernathy, and my email address is [fake@example.com].
L'exemple de code JSON suivant disponible dans plusieurs langages montre comment former la requête API et ce que renvoie l'API DLP:
Protocole
Pour découvrir comment utiliser le format JSON avec l'API DLP, consultez le démarrage rapide JSON.
Entrée JSON :
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Sortie JSON :
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is [email-address]."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Remplacement d'infoType
Vous pouvez également spécifier un remplacement d'infoType (ReplaceWithInfoTypeConfig
dans l'API DLP). Cette transformation effectue la même action que la transformation de remplacement de base, sauf que chaque valeur de données sensibles détectée est remplacée par l'infoType de cette valeur.
Par exemple, supposons que vous ayez indiqué à Cloud DLP de détecter à la fois les adresses électroniques et les noms de famille, puis de remplacer chaque valeur détectée par son infoType. Vous envoyez la chaîne ci-dessous à Cloud DLP :
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Ceci renvoie la chaîne suivante :
My name is Alicia LAST_NAME, and my email address is EMAIL_ADDRESS.
Masquage
Vous pouvez configurer Cloud DLP de sorte à masquer entièrement ou partiellement une valeur sensible détectée (CharacterMaskConfig
dans l'API DLP) en remplaçant chaque caractère par un caractère de masquage fixe, tel qu'un astérisque (*) ou un dièse (#). Le masquage peut être effectué à partir du début ou de la fin de la chaîne. Cette transformation fonctionne également avec les types de nombres tels que les entiers longs.
Cloud DLP propose les options de transformation de masquage suivantes :
- Caractère de masquage (argument
maskingCharacter
dans l'API DLP) : caractère à utiliser pour masquer chaque caractère d'une valeur sensible. Par exemple, vous pouvez spécifier un astérisque (*) ou un dièse (#) pour masquer une série de nombres, comme un numéro de carte de crédit. - Nombre de caractères à masquer (
numberToMask
) : si vous ne spécifiez pas cette valeur, tous les caractères sont masqués. - Masquage inversé (
reverseOrder
) : inverse l'ordre de masquage des caractères. Les caractères des valeurs correspondantes sont masqués en partant de la fin. - Caractères à ignorer (
charactersToIgnore
) : un ou plusieurs caractères à ignorer lors du masquage des valeurs. Par exemple, pour le masquage des numéros de téléphone, vous pouvez indiquer à Cloud DLP de conserver les traits d'union. Vous pouvez également spécifier un groupe de caractères communs (CharsToIgnore
) à ignorer lors du masquage.
Exemple : Vous envoyez la chaîne suivante à Cloud DLP en lui indiquant d'utiliser la transformation de masquage de caractères sur les adresses électroniques :
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Si vous avez défini le caractère de masquage sur "#", les caractères à ignorer sur le jeu de caractères communs, et que vous avez conservé les autres paramètres par défaut, Cloud DLP renvoie les éléments suivants :
My name is Alicia Abernathy, and my email address is ##########@#######.###.
Voici quelques exemples de code JSON montrant les étapes d'une transformation de masquage :
Protocole
Entrée JSON :
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"reverseOrder":false,
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Sortie JSON :
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ##########@#######.###."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Transformations d'anonymisation par chiffrement
Les transformations d'anonymisation par chiffrement (également appelée "pseudonymisation") sont des méthodes d'anonymisation qui remplacent les valeurs de données sensibles initiales par des valeurs chiffrées. Cloud DLP est compatible avec les types de tokenisation suivants, y compris les transformations réversibles qui permettent d'effectuer une désanonymisation :
- Hachage cryptographique : à l'aide d'une clé cryptographique
CryptoKey
, Cloud DLP applique sur la valeur d'entrée un code d'authentification de message basé sur le protocole SHA-256 (HMAC-SHA-256), puis remplace la valeur d'entrée par la valeur hachée encodée en base64. - Chiffrement préservant le format : remplace une valeur d'entrée par un jeton généré à l'aide du chiffrement préservant le format (FPE) en mode d'opération FFX. Cette méthode de transformation génère un jeton limité au même alphabet que la valeur d'entrée et de même longueur que cette valeur. FPE accepte également la restauration de l'identification à partir de la clé de chiffrement initiale.
- Chiffrement déterministe : remplace une valeur d'entrée par un jeton généré en appliquant la norme AES en mode vecteur d'initialisation synthétique (AES-SIV). Cette méthode de transformation n'impose aucune limitation aux jeux de caractères de chaîne compatibles, génère des jetons identiques pour chaque instance d'une valeur d'entrée identique, et applique des valeurs de substitution pour activer la désanonymisation à partir de la clé de chiffrement d'origine.
Hachage cryptographique
La transformation par hachage cryptographique (CryptoHashConfig
dans l'API DLP) applique une valeur d'entrée (une portion de données sensibles que Cloud DLP a détectée) et la remplace par une valeur hachée. La valeur de hachage est générée à l'aide d'un code d'authentification de message basé sur le protocole SHA-256 (HMAC-SHA-256), appliqué sur la valeur d'entrée à l'aide d'une CryptoKey
.
Cloud DLP génère en sortie une représentation de la valeur d'entrée hachée encodée en base64, qui remplace la valeur initiale.
Avant d'utiliser la transformation par hachage cryptographique, gardez à l'esprit les points suivants :
- La valeur d'entrée n'est pas chiffrée mais hachée.
- Cette action est irréversible. En d'autres termes, étant donné la valeur de sortie hachée de la transformation et la clé cryptographique initiale, il n'existe aucun moyen de restaurer la valeur d'origine.
- Actuellement, seules les chaînes et les valeurs entières peuvent être hachées.
- La sortie hachée de la transformation a toujours la même longueur, déterminée par la clé cryptographique. Par exemple, si vous utilisez la transformation de hachage par chiffrement sur des numéros de téléphone à 10 chiffres, chaque numéro de téléphone est remplacé par une valeur de hachage de longueur fixe, codée en base64.
Chiffrement préservant le format
La méthode de transformation par chiffrement préservant le format (FPE) (CryptoReplaceFfxFpeConfig
dans l'API DLP) prend une valeur d'entrée (une portion de données sensibles détectée par Cloud DLP), la chiffre en utilisant la méthode de chiffrement préservant le format en mode FFX et une CryptoKey
, puis remplace la valeur d'origine par la valeur chiffrée, ou jeton.
La valeur saisie est soumise aux conditions suivantes :
- Elle doit comporter au moins deux caractères (ou la chaîne vide).
- Elle doit être encodée en ASCII.
- Elle doit être composée des caractères spécifiés par un "alphabet", qui est constitué d'un jeu de 2 à 95 caractères autorisés dans la valeur d'entrée. Reportez-vous au champ "alphabet" dans
CryptoReplaceFfxFpeConfig
pour en savoir plus.
Le jeton généré :
- correspond à la valeur d'entrée chiffrée ;
- conserve le jeu de caractères ("alphabet") et la longueur de la valeur d'entrée après le chiffrement ;
- est calculé à l'aide de la méthode de chiffrement préservant le format en mode FFX, à partir de la clé cryptographique spécifiée ;
- n'est pas nécessairement unique, dans la mesure où chaque instance de la même valeur d'entrée anonymise le même jeton. L'intégrité référentielle étant ainsi assurée, la recherche des données anonymisées est simplifiée. Ce comportement peut être modifié en procédant à des "ajustements" de contexte, comme décrit dans la section Contextes.
S'il existe plusieurs occurrences d'une valeur d'entrée dans le contenu source, chacune anonymise le même jeton. La méthode FPE préserve à la fois la longueur et l'espace alphabétique (le jeu de caractères), lequel est limité à 95 caractères. Vous pouvez modifier ce comportement en procédant à des "ajustements" de contexte en vue d'améliorer la sécurité. L'ajout d'un ajustement de contexte à la transformation permet à Cloud DLP d'anonymiser plusieurs instances de la même valeur d'entrée pour différents jetons. Si vous n'avez pas besoin de conserver la longueur et l'espace alphabétique des valeurs d'origine, utilisez le chiffrement déterministe comme décrit ci-après.
Cloud DLP calcule le jeton de remplacement à l'aide d'une clé cryptographique. Vous fournissez cette clé de l'une des trois manières suivantes :
- En l'incorporant sous forme non chiffrée à la requête API. Cette action n'est pas recommandée.
- En demandant à Cloud DLP de la générer.
- En l'incorporant sous forme chiffrée à la requête API.
Si vous choisissez d'intégrer la clé dans la requête API, vous devez créer une clé et l'encapsuler (chiffrer) à l'aide d'une clé Cloud Key Management Service (Cloud KMS). Pour en savoir plus, consultez la page Créer une clé encapsulée. La valeur renvoyée par défaut est une chaîne codée en base64. Pour définir cette valeur dans Cloud DLP, vous devez la décoder en une chaîne d'octets. Les extraits de code suivants indiquent comment procéder dans plusieurs langages. Des exemples de bout en bout sont fournis à la suite de ces extraits.
Java
KmsWrappedCryptoKey.newBuilder()
.setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedKey)))
Python
# The wrapped key is base64-encoded, but the library expects a binary
# string, so decode it here.
import base64
wrapped_key = base64.b64decode(wrapped_key)
PHP
// Create the wrapped crypto key configuration object
$kmsWrappedCryptoKey = (new KmsWrappedCryptoKey())
->setWrappedKey(base64_decode($wrappedKey))
->setCryptoKeyName($keyName);
C#
WrappedKey = ByteString.FromBase64(wrappedKey)
Pour en savoir plus sur le chiffrement et le déchiffrement des données à l'aide de Cloud KMS, consultez la page Chiffrer et déchiffrer des données.
Voici un exemple de code dans plusieurs langages qui montre comment anonymiser les données sensibles en remplaçant une valeur saisie par un jeton à l'aide de Cloud DLP.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Chiffrement déterministe
La méthode de transformation par chiffrement déterministe CryptoDeterministicConfig
dans l'API DLP prend une valeur d'entrée (une portion de données sensibles détectée par Cloud DLP), la chiffre en utilisant le protocole AES-SIV avec une CryptoKey
, puis remplace la valeur d'origine par une représentation de la valeur chiffrée, encodée en base64.
La méthode de transformation par chiffrement déterministe permet une recherche plus efficace des données chiffrées.
La valeur saisie est soumise aux conditions suivantes :
- Elle doit comporter au moins 1 caractère.
- Aucune limitation n'est imposée au jeu de caractères.
Le jeton généré :
- est une représentation de la valeur chiffrée, encodée en base64 ;
- ne préserve pas le jeu de caractères ("alphabet") ni la longueur de la valeur d'entrée après le chiffrement ;
- est calculé en appliquant le chiffrement AES en mode SIV (AES-SIV) avec une
CryptoKey
; - n'est pas nécessairement unique, dans la mesure où chaque instance de la même valeur d'entrée anonymise le même jeton. Cela permet une recherche plus efficace des données chiffrées. Ce comportement peut être modifié en procédant à des "ajustements" de contexte, comme décrit dans la section Contextes ;
- est généré avec un préfixe ajouté, sous la forme
[SURROGATE_TYPE]([LENGTH]):
, où[SURROGATE_TYPE]
représente un infoType de substitution décrivant la valeur d'entrée, et[LENGTH]
indique la longueur en nombre de caractères. Le substitut permet de désanonymiser le jeton à l'aide de la clé de chiffrement d'origine utilisée pour l'anonymisation.
Voici un exemple de configuration JSON pour effectuer une anonymisation à l'aide d'un chiffrement déterministe. Notez que nous avons choisi d'utiliser PHONE_SURROGATE comme type de substitut descriptif puisque nous anonymisons les numéros de téléphone.
[CRYPTO_KEY]
représente une clé cryptographique non encapsulée, obtenue à partir de Cloud KMS.
{
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
]
},
"item":{
"value":"My phone number is 206-555-0574, call me"
}
}
L'anonymisation de la chaîne "My phone number is 206-555-0574" à l'aide de cette transformation entraîne la création d'une chaîne semblable à ceci :
My phone number is PHONE_SURROGATE(36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me
Pour désanonymiser cette chaîne, vous pouvez utiliser une requête JSON comme ci-après, où [CRYPTO_KEY] correspond à la même clé cryptographique que celle utilisée pour anonymiser contenu.
{
"reidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_SURROGATE"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"PHONE_SURROGATE"
},
"surrogateType":{
}
}
]
},
"item":{
"value":"My phone number is [PHONE_SURROGATE](36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me"
}
}
La désanonymisation de cette chaîne rétablit la chaîne initiale :
My phone number is 206-555-0574, call me
Si vous souhaitez utiliser un CryptoKey
encapsulé (chiffré) pour plus de sécurité, consultez la page Démarrage rapide : anonymiser et désanonymiser du texte sensible pour obtenir un exemple. Lorsque vous êtes prêt à utiliser une bibliothèque cliente pour anonymiser du contenu, n'oubliez pas de décoder la clé encapsulée (chaîne par défaut encodée en base64), comme illustré dans Chiffrement préservant le format sur cette page.
Binning
Les transformations de binning permettent d'anonymiser les données numériques en les fragmentant en plages. La plage de nombres qui en résulte est une chaîne composée d'une limite inférieure, d'un trait d'union et d'une limite supérieure.
Binning par taille fixe
Cloud DLP peut regrouper des valeurs d'entrée numériques basées sur des plages de taille fixe (FixedSizeBucketingConfig
dans l'API DLP). Vous devez pour cela spécifier les éléments suivants :
- La limite inférieure de tous les buckets. Les valeurs en dessous de la limite inférieure sont regroupées dans un bucket unique.
- La valeur limite supérieure de tous les buckets. Les valeurs au-dessus de la limite supérieure sont regroupées dans un bucket unique.
- La taille de chaque bucket autre que les buckets présentant la valeur minimale et maximale.
Par exemple, si la limite inférieure est définie sur 10, la limite supérieure est définie sur 89. Si la taille du bucket est définie sur 10, les buckets suivants doivent être définis sur -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+.
Pour en savoir plus sur le concept de binning, consultez la section Généralisation et binning.
Binning personnalisable
Le binning personnalisable (BucketingConfig
dans l'API DLP) offre plus de flexibilité que le binning par taille fixe.
Plutôt que de spécifier des limites supérieure et inférieure ainsi qu'une valeur d'intervalle avec laquelle créer des buckets de taille égale, vous spécifiez les valeurs maximale et minimale pour chaque bucket que vous souhaitez créer. Chaque paire de valeurs maximale et minimale doit partager le même type.
Pour configurer une opération de binning personnalisable, vous spécifiez les buckets individuellement. Chaque bucket possède les propriétés suivantes :
- La limite inférieure de la plage du bucket. Omettez cette valeur pour créer un bucket sans limite inférieure.
- La limite supérieure de la plage du bucket. Omettez cette valeur pour créer un bucket sans limite supérieure.
- La valeur de remplacement de la plage de bucket spécifiée. Cette valeur remplace toutes les valeurs détectées qui se situent dans les limites inférieure et supérieure. Si vous ne spécifiez pas de valeur de remplacement, une plage de valeurs minimale et maximale reliées par un trait d'union est générée.
Par exemple, examinons la configuration JSON suivante pour cette transformation de binning :
"bucketingConfig":{
"buckets":[
{
"min":{
"integerValue":"1"
},
"max":{
"integerValue":"30"
},
"replacementValue":{
"stringValue":"LOW"
}
},
{
"min":{
"integerValue":"31"
},
"max":{
"integerValue":"65"
},
"replacementValue":{
"stringValue":"MEDIUM"
}
},
{
"min":{
"integerValue":"66"
},
"max":{
"integerValue":"100"
},
"replacementValue":{
"stringValue":"HIGH"
}
}
]
}
Cette configuration définit le comportement suivant :
- Les valeurs entières comprises entre 1 et 30 sont masquées et remplacées par
LOW
. - Les valeurs entières comprises entre 31 et 65 sont masquées et remplacées par
MEDIUM
. - Les valeurs entières comprises entre 66 et 100 sont masquées et remplacées par
HIGH
.
Pour en savoir plus sur le concept de binning, consultez la page Généralisation et binning.
Changement de date
Lorsque vous utilisez la transformation de changement de date (DateShiftConfig
dans l'API DLP) sur une valeur de date d'entrée, Cloud DLP décale les dates d'un nombre de jours aléatoire.
Les techniques de changement de date modifient un ensemble de dates de manière aléatoire, tout en préservant la séquence et la durée d'une période. Le changement de date s'effectue généralement dans le contexte d'un individu ou d'une entité. Vous pouvez par exemple modifier toutes les dates pour un individu spécifique à l'aide du même différentiel de modification, mais appliquer un différentiel distinct pour un autre individu.
Pour en savoir plus sur cette transformation, consultez la section Changement de date.
Voici un exemple de code dans plusieurs langages qui montre comment utiliser l'API Cloud DLP pour anonymiser les dates à l'aide du changement de date.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Extraction de données temporelles
L'extraction de données temporelles (TimePartConfig
dans l'API DLP) préserve une partie d'une valeur correspondante comprenant des éléments de date, d'heure ou d'horodatage. Vous spécifiez dans Cloud DLP le type de valeur temporelle que vous souhaitez extraire, y compris l'année, le mois, le jour du mois, etc. (énumérés dans l'objet TimePart
).
Supposons que vous ayez configuré une transformation timePartConfig
en définissant la partie temporelle à extraire sur YEAR
. Après avoir envoyé les données de la première colonne ci-dessous à Cloud DLP, vous obtenez les valeurs transformées dans la deuxième colonne :
Valeurs d'origine | Valeurs transformées |
---|---|
9/21/1976 |
1976 |
6/7/1945 |
1945 |
1/20/2009 |
2009 |
7/4/1776 |
1776 |
8/1/1984 |
1984 |
4/21/1982 |
1982 |