GSP864
Présentation
L'API Cloud Data Loss Prevention (DLP) fait partie de Sensitive Data Protection, un service entièrement géré conçu pour vous aider à détecter, classer et protéger les informations sensibles.
Vous pouvez utiliser l'API DLP pour classer les données de différentes manières, y compris par infoType, niveau de sensibilité et catégorie.
L'API DLP protège les données sensibles de différentes manières, notamment :
-
Le masquage de type "Redaction", qui consiste à masquer les données sensibles d'un document ou d'un fichier.
-
Le masquage, qui consiste à masquer les données sensibles avec un caractère tel que
*.
-
La tokenisation, qui consiste à remplacer les données sensibles par un identifiant unique.
-
Le chiffrement, qui consiste à chiffrer les données sensibles.
Dans cet atelier, vous allez découvrir les fonctionnalités de base de l'API DLP et tester différentes façons de l'utiliser pour protéger les données.
Points abordés
Dans cet atelier, vous allez utiliser l'API DLP pour :
- Inspecter les chaînes et les fichiers afin de détecter des infoTypes
- Découvrir les techniques d'anonymisation et anonymiser des données
- Masquer les infoTypes dans des chaînes et des images
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Définir la région
Définissez la région de votre projet :
gcloud config set compute/region {{{project_0.default_region | Region}}}
Tâche 1 : Cloner le dépôt et activer les API
- Dans Cloud Shell, exécutez la commande suivante pour télécharger le dépôt du client Node.js Cloud Data Loss Prevention :
git clone https://github.com/googleapis/synthtool
- Une fois le code du projet téléchargé, accédez au répertoire
samples et installez les packages Node.js requis :
cd synthtool/tests/fixtures/nodejs-dlp/samples/ && npm install
Remarque : Ignorez les messages d'avertissement.
- Assurez-vous d'utiliser le bon projet en le définissant avec la commande
gcloud suivante :
export PROJECT_ID={{{project_0.project_id | "filled in at lab start"}}}
gcloud config set project $PROJECT_ID
Activer les API
Voici les API nécessaires pour activer votre projet :
-
API DLP : fournit des méthodes pour détecter, analyser les risques et anonymiser les fragments de contenu confidentiels et sensibles dans le texte, les images et les dépôts de stockage Google Cloud.
-
API Cloud Key Management Service (KMS) : Google Cloud KMS permet de gérer les clés de chiffrement et d'effectuer des opérations de chiffrement avec ces clés.
- Activez les API requises à l'aide de la commande
gcloud suivante :
gcloud services enable dlp.googleapis.com cloudkms.googleapis.com \
--project $PROJECT_ID
Cliquez sur Vérifier ma progression pour valider l'objectif.
Activer les API
Tâche 2 : Inspecter les chaînes et les fichiers
Le répertoire "samples" du projet téléchargé à l'étape précédente contient plusieurs fichiers JavaScript qui utilisent les différentes fonctionnalités de l'API DLP. Le fichier inspectString.js inspecte une chaîne fournie pour identifier les infoTypes sensibles.
- Indiquez l'option "string" et un exemple de chaîne contenant des informations potentiellement sensibles :
node inspectString.js $PROJECT_ID "My email address is jenny@somedomain.com and you can call me at 555-867-5309" > inspected-string.txt
Le résultat indique les conclusions pour chaque type d'information détecté, y compris :
-
InfoType : type d'information détecté pour cette partie de la chaîne. Vous trouverez ici la liste complète des infoTypes possibles. Par défaut, inspectString.js recherche uniquement les infoTypes CREDIT_CARD_NUMBER, PHONE_NUMBER, PERSON_NAME et EMAIL_ADDRESS.
-
Probabilité : les résultats sont classés en fonction de la probabilité qu'ils représentent une correspondance. La probabilité peut aller de VERY_UNLIKELY (très improbable) à VERY_LIKELY (très probable).
Vérifiez le résultat à l'aide de la commande suivante :
cat inspected-string.txt
Voici les résultats de la requête ci-dessus :
Findings:
Info type: PERSON_NAME
Likelihood: POSSIBLE
Info type: EMAIL_ADDRESS
Likelihood: LIKELY
Info type: PHONE_NUMBER
Likelihood: VERY_LIKELY
- De même, vous pouvez inspecter des fichiers pour y rechercher des infoTypes. Exécutez la commande suivante pour examiner l'exemple de fichier
accounts.txt :
cat resources/accounts.txt
Le fichier contient le texte suivant :
My credit card number is 1234 5678 9012 3456, and my CVV is 789.
- Utilisez le fichier
inspectFile.js pour inspecter le fichier fourni et y rechercher des infoTypes sensibles :
node inspectFile.js $PROJECT_ID resources/accounts.txt > inspected-file.txt
Vérifiez le résultat à l'aide de la commande suivante :
cat inspected-file.txt
Résultats :
Findings:
Info type: CREDIT_CARD_NUMBER
Likelihood: VERY_LIKELY
Voici la fonction asynchrone qui utilise l'API pour inspecter la chaîne d'entrée :
async function inspectString(
ProjectId,
string,
minLikelihood,
maxFindings,
infoTypes,
customInfoTypes,
includeQuote
) {
...
}
Les arguments fournis pour les paramètres ci-dessus servent à construire un objet de requête. Cette requête est ensuite fournie à la fonction inspectContent pour obtenir une réponse qui génère le résultat suivant :
// Construct item to inspect
const item = {value: string};
// Construct request
const request = {
parent: `projects/${projectId}/locations/global`,
inspectConfig: {
infoTypes: infoTypes,
customInfoTypes: customInfoTypes,
minLikelihood: minLikelihood,
includeQuote: includeQuote,
limits: {
maxFindingsPerRequest: maxFindings,
},
},
item: item,
};
// Run request
const [response] = await dlp.inspectContent(request);
Importer le résultat dans Cloud Storage
Exécutez les commandes suivantes pour importer les réponses dans Cloud Storage. Cela validera le suivi de l'activité :
gsutil cp inspected-string.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}
gsutil cp inspected-file.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}
Cliquez sur Vérifier ma progression pour valider l'objectif.
Inspecter les chaînes et les fichiers
Tâche 3 : Anonymisation
Outre l'inspection et la détection des données sensibles, vous pouvez également utiliser Sensitive Data Protection pour les anonymiser à l'aide de l'API DLP. La suppression de l'identification permet de supprimer des informations personnelles dans des données. L'API détecte les données sensibles telles que définies par les infoTypes, puis procède à une transformation pour les masquer, les supprimer ou les dissimuler à des fins d'anonymisation.
- Exécutez la commande suivante qui utilise
deidentifyWithMask.js afin de tester l'anonymisation avec un masque :
node deidentifyWithMask.js $PROJECT_ID "My order number is F12312399. Email me at anthony@somedomain.com" > de-identify-output.txt
Vérifiez le résultat à l'aide de la commande suivante :
cat de-identify-output.txt
Avec un masque, l'API remplace les caractères de l'infoType détecté par un autre caractère, * par défaut. Exemple de résultat :
My order number is F12312399. Email me at *****************************
Notez que l'adresse e-mail de la chaîne est obscurcie, tandis que le numéro de commande arbitraire est intact. (Il est possible de personnaliser les infoTypes, mais ce n'est pas abordé dans cet atelier.)
Examinez la fonction qui utilise l'API DLP pour anonymiser les données à l'aide d'un masque. Encore une fois, ces arguments servent à construire un objet de requête. Cette fois, on utilise la fonction deidentifyContent :
async function deidentifyWithMask() {
const request = {
parent: `projects/${projectId}/locations/global`,
deidentifyConfig: {
infoTypeTransformations: {
transformations: [
{
primitiveTransformation: {
characterMaskConfig: {
maskingCharacter: maskingCharacter,
numberToMask: numberToMask,
},
},
},
],
},
},
item: item,
};
// Run deidentification request
const [response] = await dlp.deidentifyContent(request);
Importer le résultat dans Cloud Storage
Exécutez les commandes suivantes pour importer les réponses dans Cloud Storage. Cela validera le suivi de l'activité :
gsutil cp de-identify-output.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}
Cliquez sur Vérifier ma progression pour valider l'objectif.
Anonymisation
Tâche 4 : Masquer des informations dans des chaînes et des images
Une autre méthode d'obscurcissement des informations sensibles est le masquage (redaction). Ce type de masquage consiste à remplacer une information sensible détectée par l'infoType auquel elle correspond.
- Utilisez
redactText.js pour masquer du texte dans un exemple d'entrée :
node redactText.js $PROJECT_ID "Please refund the purchase to my credit card 4012888888881881" CREDIT_CARD_NUMBER > redacted-string.txt
Vérifiez le résultat à l'aide de la commande suivante :
cat redacted-string.txt
Le numéro de carte de crédit de l'exemple est remplacé par l'infoType CREDIT_CARD_NUMBER :
Please refund the purchase on my credit card [CREDIT_CARD_NUMBER]
Cette fonctionnalité est utile si vous souhaitez masquer des informations sensibles, tout en identifiant le type d'information supprimée. L'API DLP peut également masquer des informations dans des images contenant du texte. Prenez un exemple d'image (dans le répertoire samples/resources) :

- Pour masquer le numéro de téléphone dans l'image ci-dessus, exécutez la commande suivante :
node redactImage.js $PROJECT_ID resources/test.png "" PHONE_NUMBER ./redacted-phone.png
Comme spécifié, une nouvelle image nommée redacted-phone.png est générée, dans laquelle les informations demandées sont masquées. Pour le vérifier, ouvrez le fichier samples/redacted-phone.png à l'aide de l'éditeur de code Cloud Shell :
Remarque : Dans l'éditeur de code Cloud Shell, utilisez le volet de gauche (Explorateur) pour accéder à synthtool > tests > fixtures > nodejs-dlp > samples > redacted-phone.png

- Essayez à nouveau de masquer l'adresse e-mail dans l'image :
node redactImage.js $PROJECT_ID resources/test.png "" EMAIL_ADDRESS ./redacted-email.png
Comme spécifié, une nouvelle image nommée redacted-email.png est générée, dans laquelle les informations demandées sont masquées. Pour le vérifier, ouvrez le fichier samples/redacted-email.png dans l'éditeur de code Cloud Shell :

Voici la fonction utilisée pour masquer des informations dans une chaîne :
async function redactText(
callingProjectId,
string,
minLikelihood,
infoTypes
) {
...}
Et voici la requête fournie à la fonction deidentifyContent :
const request = {
parent: `projects/${projectId}/locations/global`,
item: {
value: string,
},
deidentifyConfig: {
infoTypeTransformations: {
transformations: [replaceWithInfoTypeTransformation],
},
},
inspectConfig: {
minLikelihood: minLikelihood,
infoTypes: infoTypes,
},
};
const [response] = await dlp.deidentifyContent(request);
Voici la fonction permettant de masquer des informations dans une image :
async function redactImage(
callingProjectId,
filepath,
minLikelihood,
infoTypes,
outputPath
) {
...}
Et voici la requête fournie à la fonction redactImage :
// Construct image redaction request
const request = {
parent: `projects/${projectId}/locations/global`,
byteItem: {
type: fileTypeConstant,
data: fileBytes,
},
inspectConfig: {
minLikelihood: minLikelihood,
infoTypes: infoTypes,
},
imageRedactionConfigs: imageRedactionConfigs,
};
Importer le résultat dans Cloud Storage
Exécutez les commandes suivantes pour importer les réponses dans Cloud Storage. Cela validera le suivi de l'activité :
gsutil cp redacted-string.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}
gsutil cp redacted-phone.png gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}
gsutil cp redacted-email.png gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}
Cliquez sur Vérifier ma progression pour valider l'objectif.
Masquer des informations dans des chaînes et des images
Félicitations !
L'API Cloud Data Loss Prevention (DLP) est un outil puissant qui donne accès à une plate-forme permettant d'inspecter, de classer et d'anonymiser des données sensibles. Vous avez utilisé l'API DLP pour inspecter des chaînes et des fichiers à la recherche de plusieurs infoTypes, puis vous avez masqué des données dans une chaîne et une image.
Étapes suivantes et informations supplémentaires
Pour vous familiariser davantage avec l'API DLP, consultez la documentation suivante :
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 22 avril 2025
Dernier test de l'atelier : 22 avril 2025
Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.