Analyser les résultats des analyses de protection des données sensibles et créer des rapports les concernant

La protection des données sensibles vous aide à trouver, comprendre et gérer les données sensibles qui existent dans votre infrastructure. Une fois que vous avez analysé votre contenu pour détecter les données sensibles à l'aide de la protection des données sensibles, vous disposez de plusieurs options pour traiter ces renseignements. Cette rubrique vous explique comment exploiter la puissance d'autres fonctionnalités Google Cloud telles que BigQuery, Cloud SQL et Looker Studio pour:

  • Stockez les résultats de l'analyse de protection des données sensibles directement dans BigQuery.
  • générer des rapports sur l'emplacement des données sensibles au sein de votre infrastructure ;
  • exécuter des analyses SQL approfondies afin de comprendre où les données sensibles sont stockées et d'identifier leur(s) type(s) ;
  • automatiser les alertes ou les actions à déclencher en vous basant sur un jeu unique ou une combinaison de jeux de résultats.

Cette rubrique contient également un exemple complet d'utilisation de la protection des données sensibles ainsi que d'autres fonctionnalités Google Cloud pour accomplir toutes ces tâches.

Analyser un bucket de stockage

Tout d'abord, lancez une analyse sur vos données. Vous trouverez ci-dessous des informations de base sur l'analyse des dépôts de stockage à l'aide de la protection des données sensibles. Pour obtenir des instructions complètes sur l'analyse des dépôts de stockage, y compris l'utilisation des bibliothèques clientes, consultez la page Inspecter l'espace de stockage et les bases de données pour identifier les données sensibles.

Pour exécuter une analyse sur un dépôt Google Cloud Storage, assemblez un objet JSON comprenant les objets de configuration suivants :

  • InspectJobConfig : configure la tâche d'analyse pour la protection des données sensibles et comprend les éléments suivants:

    • StorageConfig : Dépôt de stockage à analyser.
    • InspectConfig : Éléments à analyser et méthode à employer. Vous pouvez également vous servir d'un modèle d'inspection pour définir la configuration de l'inspection.
    • Action : Tâche(s) à exécuter une fois l'opération terminée. Cela peut inclure l'enregistrement des résultats dans une table BigQuery ou la publication d'une notification dans Pub/Sub.

Dans cet exemple, vous analysez un bucket Cloud Storage pour identifier les noms de personnes, les numéros de téléphone, les numéros de sécurité sociale américains et les adresses e-mail. Vous envoyez ensuite les résultats à une table BigQuery dédiée au stockage des données de sortie liées à la protection des données sensibles. Le code JSON suivant peut être enregistré dans un fichier ou envoyé directement à la méthode create de la ressource de protection des données sensibles DlpJob.

Entrée JSON :

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs

{
  "inspectJob":{
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"PERSON_NAME"
        },
        {
          "name":"PHONE_NUMBER"
        },
        {
          "name":"US_SOCIAL_SECURITY_NUMBER"
        },
        {
          "name":"EMAIL_ADDRESS"
        }
      ],
      "includeQuote":true
    },
    "storageConfig":{
      "cloudStorageOptions":{
        "fileSet":{
          "url":"gs://[BUCKET_NAME]/**"
        }
      }
    },
    "actions":[
      {
        "saveFindings":{
          "outputConfig":{
            "table":{
              "projectId":"[PROJECT_ID]",
              "datasetId":"[DATASET_ID]",
              "tableId":"[TABLE_ID]"
            }
          }
        }
      }
    ]
  }
}

En spécifiant deux astérisques (**) après l'adresse du bucket Cloud Storage (gs://[BUCKET_NAME]/**), vous demandez à la tâche d'analyse d'effectuer une analyse récursive. Utilisez un seul astérisque (*) si vous souhaitez analyser seulement le niveau du répertoire spécifié sans aller plus loin.

Le résultat sera enregistré dans la table spécifiée, dans l'ensemble de données et sous le projet indiqués. Les tâches suivantes qui spécifient l'ID de table indiqué ajoutent les résultats à la même table. Vous pouvez également omettre une clé "tableId" si vous souhaitez demander à la protection des données sensibles de créer une table chaque fois que l'analyse est exécutée.

Après avoir envoyé cet objet JSON dans une requête à la méthode projects.dlpJobs.create via l'URL spécifiée, vous obtenez la réponse suivante :

Sortie JSON :

{
  "name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
  "type":"INSPECT_JOB",
  "state":"PENDING",
  "inspectDetails":{
    "requestedOptions":{
      "snapshotInspectTemplate":{

      },
      "jobConfig":{
        "storageConfig":{
          "cloudStorageOptions":{
            "fileSet":{
              "url":"gs://[BUCKET_NAME]/**"
            }
          }
        },
        "inspectConfig":{
          "infoTypes":[
            {
              "name":"PERSON_NAME"
            },
            {
              "name":"PHONE_NUMBER"
            },
            {
              "name":"US_SOCIAL_SECURITY_NUMBER"
            },
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "minLikelihood":"POSSIBLE",
          "limits":{

          },
          "includeQuote":true
        },
        "actions":[
          {
            "saveFindings":{
              "outputConfig":{
                "table":{
                  "projectId":"[PROJECT_ID]",
                  "datasetId":"[DATASET_ID]",
                  "tableId":"[TABLE_ID]"
                }
              }
            }
          }
        ]
      }
    }
  },
  "createTime":"2018-11-19T21:09:07.926Z"
}

Une fois la tâche achevée, les résultats sont enregistrés dans la table BigQuery indiquée.

Pour obtenir l'état de la tâche, appelez la méthode projects.dlpJobs.get ou envoyez une requête GET à l'URL suivante, en remplaçant [PROJECT_ID] par l'ID de votre projet et [JOB_ID] par l'identifiant de la tâche. Celui-ci vous est fourni dans la réponse de l'API Cloud Data Loss Prevention à la requête de création de tâche (l'identifiant est précédé d'un "i-") :

GET https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs/[JOB_ID]

Pour la tâche que vous venez de créer, cette requête renvoie le code JSON ci-dessous. Notez que les résultats de l'analyse sont renvoyés après les détails de l'inspection. Si l'analyse n'est pas encore terminée, sa clé "state" indique "RUNNING".

Sortie JSON :

{
  "name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
  "type":"INSPECT_JOB",
  "state":"DONE",
  "inspectDetails":{
    "requestedOptions":{
      "snapshotInspectTemplate":{

      },
      "jobConfig":{
        "storageConfig":{
          "cloudStorageOptions":{
            "fileSet":{
              "url":"gs://[BUCKET_NAME]/**"
            }
          }
        },
        "inspectConfig":{
          "infoTypes":[
            {
              "name":"PERSON_NAME"
            },
            {
              "name":"PHONE_NUMBER"
            },
            {
              "name":"US_SOCIAL_SECURITY_NUMBER"
            },
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "minLikelihood":"POSSIBLE",
          "limits":{

          },
          "includeQuote":true
        },
        "actions":[
          {
            "saveFindings":{
              "outputConfig":{
                "table":{
                  "projectId":"[PROJECT_ID]",
                  "datasetId":"[DATASET_ID]",
                  "tableId":"[TABLE_ID]"
                }
              }
            }
          }
        ]
      }
    },
    "result":{
      "processedBytes":"536734051",
      "totalEstimatedBytes":"536734051",
      "infoTypeStats":[
        {
          "infoType":{
            "name":"PERSON_NAME"
          },
          "count":"269679"
        },
        {
          "infoType":{
            "name":"EMAIL_ADDRESS"
          },
          "count":"256"
        },
        {
          "infoType":{
            "name":"PHONE_NUMBER"
          },
          "count":"7"
        }
      ]
    }
  },
  "createTime":"2018-11-19T21:09:07.926Z",
  "startTime":"2018-11-19T21:10:20.660Z",
  "endTime":"2018-11-19T22:07:39.725Z"
}

Exécuter des analyses dans BigQuery

Maintenant que vous avez créé une table BigQuery avec les résultats de votre analyse de protection des données sensibles, l'étape suivante consiste à exécuter une analyse sur la table.

À gauche de la console Google Cloud, sous "Big Data", cliquez sur BigQuery. Ouvrez votre projet et votre ensemble de données, puis localisez la table que vous venez de créer.

Vous pouvez exécuter des requêtes SQL sur cette table pour en savoir plus sur ce que la protection des données sensibles a détecté dans votre bucket de données. Exécutez, par exemple, la requête suivante pour obtenir le nombre total de résultats d'analyse pour chaque infoType. Veillez à remplacer les espaces réservés par les valeurs réelles adéquates :

SELECT
  info_type.name,
  COUNT(*) AS iCount
FROM
  `[PROJECT_ID].[DATASET_ID].[TABLE_ID]`
GROUP BY
  info_type.name

Le tableau récapitulatif des résultats de cette requête pour le bucket concerné peut ressembler à ceci :

Exemple de tableau récapitulatif des résultats fourni par Cloud DLP

Créer un rapport dans Looker Studio

Looker Studio vous permet de créer des rapports personnalisés basés sur des tables BigQuery. Dans cette section, vous allez créer dans Looker Studio un rapport sous forme de tableau simple, basé sur les résultats liés à la protection des données sensibles stockés dans BigQuery.

  1. Ouvrez Looker Studio, puis commencez un nouveau rapport.
  2. Cliquez sur Créer une source de données.
  3. Dans la liste des connecteurs, cliquez sur BigQuery. Si nécessaire, autorisez Looker Studio à se connecter à vos projets BigQuery en cliquant sur Autoriser.
  4. Maintenant, choisissez la table sur laquelle effectuer la recherche, puis cliquez sur Mes projets ou Projets partagés, en fonction de l'emplacement de votre projet. Trouvez votre projet, votre ensemble de données et votre table dans les listes présentées sur la page.
  5. Cliquez sur Connecter pour lancer le rapport.
  6. Cliquez sur Ajouter au rapport.

Vous allez maintenant créer un tableau qui affiche la fréquence de chaque infoType. Sélectionnez le champ info_type.name comme dimension. Le tableau que vous obtiendrez ressemblera à ceci :

Exemple de table dans Looker Studio.

Étapes suivantes

Ce n'est que le début de ce que vous pouvez visualiser à l'aide de Looker Studio et du résultat de la protection des données sensibles. Vous pouvez ajouter d'autres éléments graphiques ainsi que des filtres d'exploration pour créer des tableaux de bord et des rapports. Pour en savoir plus sur les éléments disponibles dans Looker Studio, consultez la présentation du produit Looker Studio.