Démarrage rapide: supprimer l'identification et l'identification d'un texte sensible

Ce guide de démarrage rapide explique comment supprimer l'identification et l'identification des données sensibles dans le contenu textuel de Cloud Data Loss Prevention (DLP). Au cours du processus, vous allez créer une clé encapsulée à l'aide de Cloud Key Management Service. Vous avez besoin de cette clé dans vos requêtes de suppression de l'identification et de restauration de l'identification.

Le processus décrit dans ce guide de démarrage rapide est appelé Pseudonymisation (ou tokenisation). Dans ce processus, Cloud DLP utilise une clé cryptographique pour convertir (supprimer l'identification) le texte sensible en jeton. Afin de restaurer (restaurer l'identification) ce texte, vous avez besoin de la clé cryptographique utilisée lors de la suppression de l'identification et du jeton.

Cloud DLP est compatible avec les méthodes cryptographiques réversibles et irréversibles. Pour restaurer l'identification de contenu, vous devez choisir une méthode réversible.

La méthode cryptographique décrite ici est appelée chiffrement déterministe à l'aide de l'algorithme AES-SIV (Advanced Encryption Standard en mode vecteur d'initialisation synthétique). Nous vous recommandons d'utiliser toutes les méthodes cryptographiques inversées compatibles avec Cloud DLP, car elles offrent le niveau de sécurité le plus élevé.

Vous pouvez suivre la procédure décrite dans cette rubrique en 10 à 20 minutes, sans compter les étapes Avant de commencer.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Activer les API Cloud DLP and Cloud KMS.

    Activer les API

  5. Créez un compte de service :

    1. Dans Cloud Console, accédez à la page Créer un compte de service.

      Accéder à la page "Créer un compte de service"
    2. Sélectionnez un projet.
    3. Dans le champ Nom du compte de service, saisissez un nom. Cloud Console remplit le champ ID du compte de service en fonction de ce nom.

      Dans le champ Description du compte de service, saisissez une description. Exemple : Service account for quickstart.

    4. Cliquez sur Create (Créer).
    5. Cliquez sur le champ Sélectionner un rôle.

      Dans la section Accès rapide, cliquez sur Basique, puis sur Propriétaire.

    6. Cliquez sur Continuer.
    7. Cliquez sur OK pour terminer la création du compte de service.

      Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.

  6. Créez une clé de compte de service :

    1. Dans Cloud Console, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
    2. Cliquez sur Clés.
    3. Cliquez sur Ajouter une clé, puis sur Créer une clé.
    4. Cliquez sur Create (Créer). Un fichier de clé JSON est téléchargé sur votre ordinateur.
    5. Cliquez sur Close (Fermer).
  7. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS pour qu'elle pointe vers le chemin du fichier JSON contenant la clé de votre compte de service. Cette variable ne s'applique qu'à la session de shell actuelle. Par conséquent, si vous ouvrez une nouvelle session, vous devez de nouveau la définir.

Étape 1: Créez un trousseau de clés et une clé

Avant de commencer cette procédure, déterminez où vous souhaitez que Cloud DLP traite les requêtes de suppression de l'identification et de restauration de l'identification. Lorsque vous créez une clé Cloud KMS, vous devez la stocker dans global ou dans la même région que vous utiliserez pour vos requêtes Cloud DLP. Sinon, les requêtes Cloud DLP échoueront.

Vous trouverez la liste des emplacements compatibles sur la page Emplacements Cloud DLP. Notez le nom de la région que vous avez choisie (par exemple, us-west1).

Cette procédure utilise global comme emplacement pour toutes les requêtes API. Si vous souhaitez utiliser une autre région, remplacez global par le nom de la région.

  1. Créez un trousseau de clés comme suit :

    gcloud kms keyrings create "dlp-keyring" \
        --location "global"
    
  2. Créez une clé :

    gcloud kms keys create "dlp-key" \
        --location "global" \
        --keyring "dlp-keyring" \
        --purpose "encryption"
    
  3. Dressez la liste de vos trousseaux et de votre clé:

    gcloud kms keys list \
        --location "global" \
        --keyring "dlp-keyring"
    

    Vous obtenez le résultat suivant:

    NAME                                                                                   PURPOSE          ALGORITHM                    PROTECTION_LEVEL  LABELS  PRIMARY_ID  PRIMARY_STATE
    projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key  ENCRYPT_DECRYPT  GOOGLE_SYMMETRIC_ENCRYPTION  SOFTWARE                  1           ENABLED
    

    Dans ce résultat, PROJECT_ID correspond à l'ID de votre projet.

    Le chemin d'accès sous NAME correspond au nom complet de la ressource Cloud KMS. Prenez-en note, car les requêtes de suppression de l'identification et de restauration de l'identification le nécessitent.

Étape 2: Créer une clé AES encodée en base64

Cette section explique comment créer une clé AES (Advanced Encryption Standard) et l'encoder au format base64.

  1. Créez une clé AES 128, 192 ou 256 bits. La commande suivante utilise openssl pour créer une clé 256 bits dans le répertoire actuel:

    openssl rand -out "./aes_key.bin" 32
    

    Le fichier aes_key.bin est ajouté à votre répertoire actuel.

  2. Encodez la clé AES en tant que chaîne base64:

    base64 -i ./aes_key.bin
    

    Vous obtenez un résultat semblable à celui-ci:

    uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=
    

Étape 3: Encapsulez la clé AES à l'aide de la clé Cloud KMS

Cette section explique comment utiliser la clé Cloud KMS que vous avez créée à l'étape 1 pour encapsuler la clé AES encodée en base64 que vous avez créée à l'étape 2. s'affiche en haut de l'écran.

Pour encapsuler la clé AES, utilisez curl pour envoyer la requête suivante à l'API Cloud KMS projects.locations.keyRings.cryptoKeys.encrypt:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key:encrypt" \
  --request "POST" \
  --header "Authorization:Bearer $(gcloud auth application-default print-access-token)" \
  --header "content-type: application/json" \
  --data "{\"plaintext\": \"BASE64_ENCODED_AES_KEY\"}"

Remplacez l'élément suivant :

La réponse que vous recevez de Cloud KMS est semblable à la réponse JSON suivante:

{
  "name": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key/cryptoKeyVersions/1",
  "ciphertext": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=",
  "ciphertextCrc32c": "901327763",
  "protectionLevel": "SOFTWARE"
}

Dans ce résultat, PROJECT_ID correspond à l'ID de votre projet.

Notez la valeur de ciphertext dans la réponse que vous obtenez. Il s'agit de votre clé encapsulée.

Étape 4: Envoyez une requête de suppression de l'identification à l'API Cloud DLP

Cette section explique comment supprimer l'identification des données sensibles dans le contenu textuel.

Pour effectuer cette tâche, vous avez besoin des éléments suivants:

  • Nom complet de ressource de la clé Cloud KMS que vous avez créée à l'étape 1.
  • La clé encapsulée que vous avez créée à l'étape 3.

Pour supprimer l'identification des données sensibles dans un contenu textuel, procédez comme suit:

  1. Créez un fichier de requête JSON avec le texte suivant.

    {
      "item": {
        "value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com."
      },
      "deidentifyConfig": {
        "infoTypeTransformations": {
          "transformations": [
            {
              "infoTypes": [
                {
                  "name": "EMAIL_ADDRESS"
                }
              ],
              "primitiveTransformation": {
                "cryptoDeterministicConfig": {
                  "cryptoKey": {
                    "kmsWrapped": {
                      "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key",
                      "wrappedKey": "WRAPPED_KEY"
                    }
                  },
                  "surrogateInfoType": {
                    "name": "EMAIL_ADDRESS_TOKEN"
                  }
                }
              }
            }
          ]
        }
      },
      "inspectConfig": {
        "infoTypes": [
          {
            "name": "EMAIL_ADDRESS"
          }
        ]
      }
    }
    

    Remplacez l'élément suivant :

    • PROJECT_ID : par l'ID du projet.
    • WRAPPED_KEY: clé encapsulée que vous avez créée à l'étape 3.

    Assurez-vous que la valeur obtenue de cryptoKeyName forme le nom de ressource complet de votre clé Cloud KMS.

    Pour en savoir plus sur les composants de cette requête JSON, consultez la page projects.locations.content.deidentify. Une fois ce guide de démarrage rapide terminé, essayez d'essayer différentes entrées pour cette requête. Vous pouvez utiliser curl comme décrit ici. Vous pouvez également utiliser l'explorateur d'API sur la page de référence de l'API, sous Essayer cette API.

  2. Enregistrez le fichier sous le nom deidentify-request.json.

  3. Exécutez la commande curl pour effectuer une requête projects.locations.content.deidentify:

    curl -s \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" \
    https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/global/content:deidentify \
    -d @deidentify-request.json
    

    Remplacez PROJECT_ID par l'ID de votre projet.

    Pour transmettre un nom de fichier à curl, utilisez l'option -d (pour les données) et faites précéder le nom de fichier du symbole @. Ce fichier doit se trouver dans le même répertoire que celui depuis lequel vous exécutez la commande curl.

    La réponse que vous recevez de Cloud DLP est semblable à la réponse JSON suivante:

    {
     "item": {
       "value": "My name is Alicia Abernathy, and my email address is EMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q."
     },
     "overview": {
       "transformedBytes": "22",
       "transformationSummaries": [
         {
           "infoType": {
             "name": "EMAIL_ADDRESS"
           },
           "transformation": {
             "cryptoDeterministicConfig": {
               "cryptoKey": {
                 "kmsWrapped": {
                   "wrappedKey": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=",
                   "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key"
                 }
               },
               "surrogateInfoType": {
                 "name": "EMAIL_ADDRESS_TOKEN"
               }
             }
           },
           "results": [
             {
               "count": "1",
               "code": "SUCCESS"
             }
           ],
           "transformedBytes": "22"
         }
       ]
     }
    }
    

    Dans le champ item, l'adresse e-mail est remplacée par un jeton tel que EMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q. Pour ce faire, vous devez transmettre l'intégralité du jeton dans la requête de restauration de l'identification.

Étape 5: Envoyez une requête de restauration de l'identification à l'API Cloud DLP

Cette section explique comment restaurer l'identification des données tokenisées dans le contenu textuel.

Pour effectuer cette tâche, vous avez besoin des éléments suivants:

  • Nom complet de ressource de la clé Cloud KMS que vous avez créée à l'étape 1.
  • La clé encapsulée que vous avez créée à l'étape 3.
  • Jeton que vous avez reçu à l'étape 4.

Pour ce faire, procédez comme suit:

  1. Créez un fichier de requête JSON avec le texte suivant.

    {
      "reidentifyConfig":{
        "infoTypeTransformations":{
          "transformations":[
            {
              "infoTypes":[
                {
                  "name":"EMAIL_ADDRESS_TOKEN"
                }
              ],
              "primitiveTransformation":{
                "cryptoDeterministicConfig":{
                  "cryptoKey":{
                  "kmsWrapped": {
                    "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key",
                    "wrappedKey": "WRAPPED_KEY"
                  }
                },
                  "surrogateInfoType":{
                    "name":"EMAIL_ADDRESS_TOKEN"
                  }
                }
              }
            }
          ]
        }
      },
      "inspectConfig":{
        "customInfoTypes":[
          {
            "infoType":{
              "name":"EMAIL_ADDRESS_TOKEN"
            },
            "surrogateType":{
    
            }
          }
        ]
      },
      "item":{
        "value": "My name is Alicia Abernathy, and my email address is TOKEN."
      }
    }
    

    Remplacez l'élément suivant :

    • PROJECT_ID : par l'ID du projet.
    • WRAPPED_KEY: clé encapsulée que vous avez créée à l'étape 3.
    • TOKEN: le jeton que vous avez reçu à l'étape 4 (par exemple, EMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q).

    Assurez-vous que la valeur résultante de cryptoKeyName forme le nom de ressource complet de votre clé Cloud KMS.

    Pour en savoir plus sur les composants de cette requête JSON, consultez la page projects.locations.content.reidentify. Une fois ce guide de démarrage rapide terminé, essayez d'essayer différentes entrées pour cette requête. Vous pouvez utiliser curl comme décrit ici. Vous pouvez également utiliser l'explorateur d'API sur la page de référence de l'API, sous Essayer cette API.

  2. Enregistrez le fichier sous le nom reidentify-request.json.

  3. Exécutez la commande curl pour effectuer une requête projects.locations.content.reidentify:

    curl -s \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" \
    https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/global/content:reidentify \
    -d @reidentify-request.json
    

    Remplacez PROJECT_ID par l'ID de votre projet.

    Pour transmettre un nom de fichier à curl, utilisez l'option -d (pour les données) et faites précéder le nom de fichier du symbole @. Ce fichier doit se trouver dans le même répertoire que celui depuis lequel vous exécutez la commande curl.

    La réponse que vous recevez de Cloud DLP est semblable à la réponse JSON suivante:

    {
     "item": {
       "value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com."
     },
     "overview": {
       "transformedBytes": "70",
       "transformationSummaries": [
         {
           "infoType": {
             "name": "EMAIL_ADDRESS"
           },
           "transformation": {
             "cryptoDeterministicConfig": {
               "cryptoKey": {
                 "kmsWrapped": {
                   "wrappedKey": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=",
                   "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key"
                 }
               },
               "surrogateInfoType": {
                 "name": "EMAIL_ADDRESS_TOKEN"
               }
             }
           },
           "results": [
             {
               "count": "1",
               "code": "SUCCESS"
             }
           ],
           "transformedBytes": "70"
         }
       ]
     }
    }
    

    Dans le champ item, le jeton d'adresse e-mail est remplacé par l'adresse e-mail du texte d'origine.

    Vous venez de supprimer l'identification et la restauration de données sensibles dans le contenu textuel à l'aide du chiffrement déterministe.

Nettoyer

Pour éviter que les ressources utilisées dans ce guide démarrage rapide soient facturées sur votre compte Google Cloud :

Détruire la version de clé

Si vous ne souhaitez plus utiliser la clé que vous avez créée dans ce guide de démarrage rapide, détruisez sa version.

Dressez une liste des versions disponibles pour votre clé :

gcloud kms keys versions list \
    --location "global" \
    --keyring "dlp-keyring" \
    --key "dlp-key"

Pour détruire une version, exécutez la commande suivante:

gcloud kms keys versions destroy KEY_VERSION \
    --location "global" \
    --keyring "dlp-keyring" \
    --key "dlp-key"

Remplacez KEY_VERSION par le numéro de la version à détruire.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étape suivante