Une gestion appropriée des données sensibles contenues dans un dépôt de stockage commence par la classification du stockage. Cela consiste à identifier l'emplacement des données sensibles dans le dépôt, les types de données sensibles concernés ainsi que la façon dont ces données sont utilisées. Ces informations peuvent vous aider à définir correctement les autorisations d'accès et de partage. En outre, elles peuvent être utiles dans le cadre d'un plan de surveillance continu.
Cloud Data Loss Prevention peut détecter et classifier les données sensibles stockées dans un emplacement Cloud Storage, un genre Datastore ou une table BigQuery. Lors de l'analyse de fichiers dans des emplacements Cloud Storage, Cloud DLP permet d'analyser les fichiers binaires, texte, image, Microsoft Word, Microsoft Excel, Microsoft Powerpoint, PDF et Apache Avro. Les fichiers de types non reconnus sont analysés en tant que fichiers binaires. Pour en savoir plus sur les types de fichiers compatibles, consultez la page Types de fichiers compatibles.
Pour rechercher des données sensibles dans le stockage et les bases de données, spécifiez l'emplacement des données et le type de données sensibles que Cloud DLP doit rechercher. Cloud DLP lance une tâche qui inspecte les données à l'emplacement donné, puis fournit des informations détaillées sur les infoTypes trouvés dans le contenu, les valeurs de probabilité, etc.
Vous pouvez configurer l'inspection du stockage et des bases de données à l'aide de Cloud DLP dans la console Google Cloud, via l'API DLP RESTful ou de manière automatisée à l'aide d'une bibliothèque cliente Cloud DLP dans l'un des langages disponibles.
Cette rubrique comprend :
- Bonnes pratiques pour configurer des analyses de dépôts et de bases de données Google Cloud Storage
- Instructions pour configurer une analyse d'inspection à l'aide de Cloud DLP dans la console Google Cloud et (éventuellement) pour programmer des analyses d'inspection périodiques
- Exemple de code JSON pour chaque type de dépôt de stockage Google Cloud (Cloud Storage, Datastore et BigQuery), ainsi que des exemples de code dans plusieurs langages de programmation
- Présentation détaillée des options de configuration disponibles pour les tâches d'analyse
- Instructions pour récupérer les résultats d'analyse et gérer les tâches d'analyse créées à partir de chaque requête qui aboutit
Bonnes pratiques
Identifier et hiérarchiser l'analyse
Il est important d'évaluer d'abord vos ressources et d'indiquer celles qui ont la priorité la plus élevée pour l'analyse. Lorsque vous commencez, il est possible que vous ayez un important volume de données à classer, et qu'il soit impossible de toutes les analyser immédiatement. Choisissez d'abord les données qui présentent le risque potentiel le plus élevé (par exemple, les données fréquemment consultées, largement accessibles ou inconnues).
Vérifier que Cloud DLP peut accéder à vos données
Cloud DLP doit pouvoir accéder aux données à analyser. Assurez-vous que le compte de service Cloud DLP est autorisé à lire vos ressources.
Limiter la portée de vos premières analyses
Pour de meilleurs résultats, limitez la portée de vos premières tâches plutôt que d'analyser toutes vos données. Commencez par une table, un bucket ou quelques fichiers, puis utilisez l'échantillonnage. En limitant le champ d'application de vos premières analyses, vous pouvez mieux déterminer les détecteurs à activer et les règles d'exclusion pouvant être nécessaires pour réduire le nombre de faux positifs et rendre vos résultats plus pertinents. Évitez d'activer les infoTypes dont vous n'avez pas besoin, car des faux positifs ou des résultats inutilisables peuvent compliquer l'évaluation du risque. Bien qu'utiles dans certains scénarios, les infoTypes tels que DATE
, TIME
, DOMAIN_NAME
et URL
correspondent à un large éventail de résultats et peuvent ne pas être utiles pour les analyses de données volumineuses.
Programmer vos analyses
Utilisez les déclencheurs de tâches Cloud DLP pour exécuter automatiquement des analyses et générer des résultats quotidiens, hebdomadaires ou trimestriels. Ces analyses peuvent également être configurées pour inspecter uniquement les données qui ont été modifiées depuis la dernière analyse, ce qui permet de gagner du temps et de réduire les coûts. L'exécution régulière d'analyses peut vous aider à identifier des tendances ou des anomalies dans vos résultats d'analyse.
Latence réduite
La latence est affectée par plusieurs facteurs, y compris la quantité de données à analyser, le dépôt de stockage en cours d'analyse, le type et le nombre d'infoTypes analysés, la région dans laquelle la tâche est traitée et les ressources informatiques disponibles dans cette région. Par conséquent, la latence des tâches d'inspection ne peut pas être déterminée à l'avance.
Pour réduire la latence des tâches, essayez les solutions suivantes :
- Lors de l'inspection d'une table BigQuery ou d'une ressource Cloud Storage, activez l'échantillonnage.
- Évitez d'activer les infoTypes dont vous n'avez pas besoin. Bien qu'utiles dans certains scénarios, certains infoTypes (y compris
PERSON_NAME
,FEMALE_NAME
,MALE_NAME
,FIRST_NAME
,LAST_NAME
,DATE_OF_BIRTH
,LOCATION
,STREET_ADDRESS
etORGANIZATION_NAME
) peuvent fortement ralentir l'exécution des requêtes en comparaison à des requêtes sans ces infoTypes. - Spécifiez toujours les infoTypes explicitement. N'utilisez pas de liste d'infoTypes vide.
Avant de commencer
Les instructions fournies dans cette rubrique supposent que :
Vous avez activé la facturation.
Vous avez activé Cloud DLP.
La classification du stockage nécessite le champ d'application OAuth suivant :
https://www.googleapis.com/auth/cloud-platform
. Pour en savoir plus, consultez S'authentifier sur l'API DLP.
Inspecter un emplacement Cloud Storage
Vous pouvez configurer l'inspection Cloud DLP d'un emplacement Cloud Storage à l'aide de la console Google Cloud, de l'API DLP via des requêtes REST ou RPC, ou de manière automatisée dans plusieurs langages à l'aide d'une bibliothèque cliente. Pour plus d'informations sur les paramètres inclus dans les exemples de code et les exemples de code ci-dessous, consultez la section Configurer l'inspection du stockage. Vous trouverez cette section dans la suite de ce document.
Cloud DLP s'appuie sur les types d'extensions de fichier et de médias (MIME) pour identifier les types de fichiers à analyser et les modes d'analyse à appliquer. Par exemple, Cloud DLP analyse un fichier .txt
en mode Texte brut, même s'il est structuré en tant que fichier CSV, qui est normalement analysé en mode d'analyse structurée.
Pour configurer une tâche d'analyse d'un bucket Cloud Storage à l'aide de Cloud DLP, procédez comme suit :
Console
Cette section explique comment inspecter un bucket ou un dossier Cloud Storage. Si vous souhaitez également que Cloud DLP crée une copie anonymisée de vos données, consultez la page Supprimer l'identification des données sensibles stockées dans Cloud Storage à l'aide de la console Google Cloud.
Dans la console Google Cloud, accédez à la page Protection contre la perte de données.
Cliquez sur l'onglet Inspection, puis sur Créer une tâche et des déclencheurs de tâche.
Saisissez les informations sur la tâche Cloud DLP et cliquez sur Continuer à chaque étape:
Pour l'étape 1 : Choisir les données d'entrée, attribuez un nom à la tâche en saisissant une valeur dans le champ Nom. Dans Emplacement, sélectionnez Cloud Storage dans le menu Type de stockage, puis saisissez l'emplacement des données à analyser. La section Échantillonnage est préconfigurée pour exécuter un exemple d'analyse avec vos données. Vous pouvez ajuster le champ Pourcentage d'objets inclus analysés dans le bucket pour économiser des ressources si vous disposez d'une grande quantité de données. Pour en savoir plus, consultez la section Choisir les données d'entrée.
(Facultatif) Pour l'étape 2 : Configurer la détection, vous pouvez configurer les types de données à rechercher, appelés infoTypes. Vous pouvez effectuer votre sélection dans la liste des infoTypes prédéfinis ou sélectionner un modèle, le cas échéant. Pour en savoir plus, consultez la section Configurer la détection.
(Facultatif) Pour l'étape 3 : Ajouter des actions, assurez-vous que l'option Avertir par e-mail est activée.
Activez l'option Enregistrer dans BigQuery pour publier vos résultats Cloud DLP dans une table BigQuery. Indiquez les éléments suivants :
- Pour ID du projet, saisissez l'ID du projet dans lequel vos résultats sont stockés.
- Pour ID de l'ensemble de données, saisissez le nom de l'ensemble de données dans lequel vos résultats sont stockés.
- (Facultatif) Pour ID de la table, entrez le nom de la table dans laquelle vos résultats sont stockés. Si aucun ID de table n'est spécifié, un nom par défaut est attribué
à une nouvelle table semblable à celle-ci :
dlp_googleapis_[DATE]_1234567890
, où[DATE]
représente la date d'exécution de l'analyse. Si vous spécifiez le nom d'une table existante, les résultats y sont ajoutés. - (Facultatif) Activez l'option Inclure les guillemets pour inclure les chaînes correspondant à un détecteur d'infoType. Les guillemets sont potentiellement sensibles. Par défaut, Cloud DLP ne les inclut donc pas dans les résultats.
Lorsque des données sont écrites dans une table BigQuery, l'utilisation de la facturation et des quotas est appliquée au projet contenant la table de destination.
Si vous souhaitez créer une copie anonymisée de vos données, activez l'option Créer une copie anonymisée. Pour en savoir plus, consultez la page Supprimer l'identification des données sensibles stockées dans Cloud Storage à l'aide de la console Google Cloud.
Vous pouvez également enregistrer les résultats dans Pub/Sub, Security Command Center, Data Catalog et Cloud Monitoring. Pour en savoir plus, consultez la section Ajouter des actions.
(Facultatif) Pour l'étape 4 : Programmer, pour exécuter l'analyse une seule fois, laissez le menu défini sur Aucun. Pour programmer des analyses à exécuter régulièrement, cliquez sur Créer un déclencheur pour exécuter la tâche selon une programmation régulière. Pour en savoir plus, consultez la section Programmer.
Cliquez sur Créer.
Une fois la tâche Cloud DLP terminée, vous êtes redirigé vers la page de détails de la tâche et notifié par e-mail. Vous pouvez afficher les résultats de l'inspection sur la page des détails de la tâche.
(Facultatif) Si vous avez choisi de publier les résultats Cloud DLP dans BigQuery, sur la page Informations sur la tâche, cliquez sur Afficher les résultats dans BigQuery pour ouvrir la table dans l'interface utilisateur Web de BigQuery. Vous pouvez ensuite interroger la table et analyser vos résultats. Pour savoir comment interroger vos résultats dans BigQuery, consultez la page Interroger les résultats Cloud DLP dans BigQuery.
Protocole
Vous trouverez ci-après un exemple de code JSON pouvant être envoyé dans une requête POST au point de terminaison REST Cloud DLP. Cet exemple de code JSON montre comment utiliser l'API DLP pour inspecter des buckets Cloud Storage. Pour plus d'informations sur les paramètres inclus dans la requête, consultez la section Configurer l'inspection du stockage plus loin dans cette rubrique.
Vous pouvez faire un essai rapide dans APIs Explorer sur la page de référence de content.inspect
:
Gardez à l'esprit qu'une requête réussie, même dans APIs Explorer, entraînera la création d'un déclencheur de tâche planifiée. Pour en savoir plus sur le contrôle des tâches d'analyse, reportez-vous à la section Récupérer les résultats d'inspection un peu plus loin sur cette page. Des informations générales sur l'utilisation du format JSON pour envoyer des requêtes à l'API DLP sont disponibles dans le guide de démarrage JSON.
Entrée JSON :
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"1073741824"
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z",
"endTime":"2018-01-05T04:45:04.240912125Z"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]"
}
}
}
}
]
}
}
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]/*"
},
"bytesLimitPerFile":"1073741824"
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z",
"endTime":"2018-01-05T04:45:04.240912125Z"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"minLikelihood":"LIKELY",
"limits":{
},
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]",
"tableId":"[NEW-TABLE-ID]"
}
}
}
}
]
}
}
},
"createTime":"2018-11-07T18:01:14.225Z"
}
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.
Inspecter un genre Datastore
Vous pouvez configurer l'inspection d'un genre Datastore à l'aide de la console Google Cloud, de l'API DLP via des requêtes REST ou RPC, ou de manière automatisée dans plusieurs langages à l'aide d'une bibliothèque cliente.
Pour configurer une tâche d'analyse d'un genre Datastore à l'aide de Cloud DLP, procédez comme suit :
Console
Pour configurer une tâche d'analyse d'un bucket Datastore à l'aide de Cloud DLP, procédez comme suit :
Dans la console Google Cloud, accédez à la page Protection contre la perte de données.
Cliquez sur l'onglet Inspection, puis sur Créer une tâche et des déclencheurs de tâche.
Saisissez les informations sur la tâche Cloud DLP, puis cliquez sur Continuer à chaque étape :
Pour l'étape 1 : Choisir les données d'entrée, saisissez les identifiants du projet, l'espace de noms (facultatif) et le genre que vous souhaitez analyser. Pour en savoir plus, consultez la section Choisir les données d'entrée.
(Facultatif) Pour l'étape 2 : Configurer la détection, vous pouvez configurer les types de données à rechercher, appelés infoTypes. Vous pouvez effectuer votre sélection dans la liste des infoTypes prédéfinis ou sélectionner un modèle, le cas échéant. Pour en savoir plus, consultez la section Configurer la détection.
(Facultatif) Pour l'étape 3 : Ajouter des actions, assurez-vous que l'option Avertir par e-mail est activée.
Activez l'option Enregistrer dans BigQuery pour publier vos résultats Cloud DLP dans une table BigQuery. Indiquez les éléments suivants :
- Pour ID du projet, saisissez l'ID du projet dans lequel vos résultats sont stockés.
- Pour ID de l'ensemble de données, saisissez le nom de l'ensemble de données dans lequel vos résultats sont stockés.
- (Facultatif) Pour ID de la table, entrez le nom de la table dans laquelle vos résultats sont stockés. Si aucun ID de table n'est spécifié, un nom par défaut est attribué à la nouvelle table, comme dans l'exemple suivant :
dlp_googleapis_[DATE]_1234567890
. Si vous spécifiez le nom d'une table existante, les résultats y sont ajoutés.
Lorsque des données sont écrites dans une table BigQuery, l'utilisation de la facturation et des quotas est appliquée au projet contenant la table de destination.
Pour en savoir plus sur les autres actions répertoriées, consultez la section Ajouter des actions.
(Facultatif) Pour l'étape 4 : Programmer, configurez une période ou une programmation en sélectionnant Spécifier la période ou Créer un déclencheur pour exécuter la tâche selon une programmation régulière. Pour en savoir plus, consultez la section Programmer.
Cliquez sur Créer.
Une fois la tâche Cloud DLP terminée, vous êtes redirigé vers la page des informations sur la tâche et notifié par e-mail. Vous pouvez afficher les résultats de l'inspection sur la page des informations sur la tâche.
(Facultatif) Si vous avez choisi de publier les résultats Cloud DLP dans BigQuery, dans la page Informations sur la tâche, cliquez sur Afficher les résultats dans BigQuery pour ouvrir la table dans l'UI Web de BigQuery. Vous pouvez ensuite interroger la table et analyser vos résultats. Pour en savoir plus sur l'interrogation de vos résultats dans BigQuery, consultez la page Interroger des résultats Cloud DLP dans BigQuery.
Protocole
Voici un exemple de code JSON qui peut être envoyé dans une requête POST au point de terminaison REST spécifié pour l'API DLP. Cet exemple de code JSON montre comment utiliser l'API DLP pour inspecter des genres Datastore. Pour plus d'informations sur les paramètres inclus dans la requête, consultez la section Configurer l'inspection du stockage plus loin dans cette rubrique.
Vous pouvez faire un essai rapide dans APIs Explorer sur la page de référence de dlpJobs.create
:
Gardez à l'esprit qu'une requête réussie, même dans APIs Explorer, entraînera la création d'un déclencheur de tâche planifiée. Pour en savoir plus sur le contrôle des tâches d'analyse, consultez la section Récupérer les résultats d'inspection, plus loin dans cette rubrique. Des informations générales sur l'utilisation du format JSON pour envoyer des requêtes à l'API DLP sont disponibles dans le guide de démarrage JSON.
Entrée JSON :
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"datastoreOptions":{
"kind":{
"name":"Example-Kind"
},
"partitionId":{
"namespaceId":"[NAMESPACE-ID]",
"projectId":"[PROJECT-ID]"
}
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
}
}
}
}
]
}
}
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.
Inspecter une table BigQuery
Vous pouvez configurer l'inspection d'une table BigQuery à l'aide de Cloud DLP via des requêtes REST, ou automatiser le processus par le biais d'une bibliothèque cliente (disponible dans plusieurs langages).
Pour configurer une tâche d'analyse pour une table BigQuery à l'aide de Cloud DLP, procédez comme suit :
Console
Pour configurer une tâche d'analyse pour une table BigQuery à l'aide de Cloud DLP, procédez comme suit :
Dans la console Google Cloud, accédez à la page Protection contre la perte de données.
Cliquez sur l'onglet Inspection, puis sur Créer une tâche et des déclencheurs de tâche.
Saisissez les informations sur la tâche Cloud DLP, puis cliquez sur Continuer à chaque étape :
Pour l'étape 1 : Choisir les données d'entrée, attribuez un nom à la tâche en saisissant une valeur dans le champ Nom. Dans Emplacement, sélectionnez BigQuery dans le menu Type de stockage, puis saisissez les informations correspondant à la table à analyser.
La section Échantillonnage est préconfigurée pour exécuter un exemple d'analyse avec vos données. Vous pouvez ajuster les champs Limiter les lignes par et Nombre maximal de lignes pour économiser des ressources si vous disposez d'une grande quantité de données. Pour en savoir plus, consultez Choisir les données d'entrée.
(Facultatif) Si vous souhaitez pouvoir associer chaque résultat à la ligne qui le contient, définissez le champ Champs d'identification.
Saisissez les noms des colonnes qui identifient de manière unique chaque ligne de la table. Si nécessaire, utilisez la notation par points pour spécifier des champs imbriqués. Vous pouvez ajouter autant de champs que vous le souhaitez.
Vous devez également activer l'action Enregistrer dans BigQuery pour exporter les résultats vers BigQuery. Lorsque les résultats sont exportés vers BigQuery, chaque résultat contient les valeurs respectives des champs d'identification. Pour en savoir plus, consultez la section
identifyingFields
.(Facultatif) Pour l'étape 2 : Configurer la détection, vous pouvez configurer les types de données à rechercher, appelés infoTypes. Vous pouvez effectuer votre sélection dans la liste des infoTypes prédéfinis ou sélectionner un modèle, le cas échéant. Pour en savoir plus, consultez la section Configurer la détection.
(Facultatif) Pour l'étape 3 : Ajouter des actions, assurez-vous que l'option Avertir par e-mail est activée.
Activez l'option Enregistrer dans BigQuery pour publier vos résultats Cloud DLP dans une table BigQuery. Indiquez les éléments suivants :
- Pour ID du projet, saisissez l'ID du projet dans lequel vos résultats sont stockés.
- Pour ID de l'ensemble de données, saisissez le nom de l'ensemble de données dans lequel vos résultats sont stockés.
- (Facultatif) Pour ID de la table, entrez le nom de la table dans laquelle vos résultats sont stockés. Si aucun ID de table n'est spécifié, un nom par défaut est attribué à la nouvelle table, comme dans l'exemple suivant :
dlp_googleapis_[DATE]_1234567890
. Si vous spécifiez le nom d'une table existante, les résultats y sont ajoutés.
Lorsque des données sont écrites dans une table BigQuery, l'utilisation de la facturation et des quotas est appliquée au projet contenant la table de destination.
Vous pouvez également enregistrer les résultats dans Pub/Sub, Security Command Center et Data Catalog. Pour en savoir plus, consultez la section Ajouter des actions.
(Facultatif) Pour l'étape 4 : Programmer, pour exécuter l'analyse une seule fois, laissez le menu défini sur Aucun. Pour programmer des analyses à exécuter régulièrement, cliquez sur Créer un déclencheur pour exécuter la tâche selon une programmation régulière. Pour en savoir plus, consultez la section Programmer.
Cliquez sur Créer.
Une fois la tâche Cloud DLP terminée, vous êtes redirigé vers la page des informations sur la tâche et notifié par e-mail. Vous pouvez afficher les résultats de l'inspection sur la page des informations sur la tâche.
(Facultatif) Si vous avez choisi de publier les résultats Cloud DLP dans BigQuery, dans la page Informations sur la tâche, cliquez sur Afficher les résultats dans BigQuery pour ouvrir la table dans l'UI Web de BigQuery. Vous pouvez ensuite interroger la table et analyser vos résultats. Pour en savoir plus sur l'interrogation de vos résultats dans BigQuery, consultez la page Interroger des résultats Cloud DLP dans BigQuery.
Protocole
Voici un exemple de code JSON qui peut être envoyé dans une requête POST au point de terminaison REST spécifié pour l'API DLP. Cet exemple de code JSON montre comment utiliser l'API DLP pour inspecter des tables BigQuery. Pour plus d'informations sur les paramètres inclus dans la requête, consultez la section Configurer l'inspection du stockage plus loin dans cette rubrique.Vous pouvez faire un essai rapide dans APIs Explorer sur la page de référence de dlpJobs.create
:
Gardez à l'esprit qu'une requête réussie, même dans APIs Explorer, entraînera la création d'un déclencheur de tâche planifiée. Pour en savoir plus sur le contrôle des tâches d'analyse, reportez-vous à la section Récupérer les résultats d'inspection un peu plus loin sur cette page. Des informations générales sur l'utilisation du format JSON pour envoyer des requêtes à l'API DLP sont disponibles dans le guide de démarrage JSON.
Entrée JSON :
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"bigQueryOptions":{
"tableReference":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
},
"identifyingFields":[
{
"name":"id"
}
]
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z ",
"endTime":"2018-01-05T04:45:04.240912125Z "
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
},
"outputSchema": "BASIC_COLUMNS"
}
}
}
]
}
}
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.
Configurer l'inspection du stockage
Pour inspecter un emplacement Cloud Storage, un genre Datastore ou une table BigQuery, vous devez envoyer une requête à la méthode projects.dlpJobs.create
de l'API DLP. Cette requête doit au moins indiquer l'emplacement des données à analyser et spécifier les éléments à analyser. En plus de ces paramètres obligatoires, vous pouvez également spécifier l'emplacement où les résultats d'analyse doivent être consignés, les seuils de taille et de probabilité, etc. Une requête réussie entraîne la création d'une instance d'objet DlpJob
, décrite dans la section Récupérer les résultats d'inspection.
Les options de configuration disponibles sont résumées ici :
Objet
InspectJobConfig
: contient les informations de configuration pour la tâche d'inspection. Notez que l'objetInspectJobConfig
est également utilisé par l'objetJobTriggers
pour programmer la création d'objetsDlpJob
. Cet objet comprend :Objet
StorageConfig
: obligatoire. Contient des informations détaillées sur le dépôt de stockage à analyser :L'un des éléments suivants doit être inclus dans l'objet
StorageConfig
, en fonction du type de dépôt de stockage analysé :Objet
CloudStorageOptions
: contient des informations concernant le bucket Cloud Storage à analyser.Objet
DatastoreOptions
: contient des informations concernant l'ensemble de données Datastore à analyser.Objet
BigQueryOptions
: contient des informations sur la table BigQuery (et éventuellement les champs d'identification) à analyser. Cet objet permet également d'échantillonner les résultats. Pour en savoir plus, consultez la section Activer l'échantillonnage des résultats ci-dessous.Objet
TimespanConfig
: facultatif. Permet de spécifier l'intervalle de temps concerné par l'analyse.
Objet
InspectConfig
: obligatoire. Permet de spécifier les éléments à analyser, tels que les infoTypes et les valeurs de probabilité.- Objets
InfoType
: obligatoires. Permettent de spécifier une ou plusieurs valeurs infoType à analyser. - Énumération
Likelihood
: facultative. Lorsqu'elle est définie, Cloud DLP ne renvoie que les résultats supérieurs ou égaux à ce seuil de probabilité. Si cette énumération n'est pas définie, la valeur par défaut estPOSSIBLE
. - Objet
FindingLimits
: facultatif. Lorsqu'il est défini, cet objet vous permet de spécifier une limite pour le nombre de résultats renvoyés. - Paramètre
includeQuote
: facultatif. La valeur par défaut estfalse
. Lorsque ce paramètre est défini surtrue
true, chaque résultat inclut une citation contextuelle des données qui l'ont déclenché. - Paramètre
excludeInfoTypes
: facultatif. La valeur par défaut estfalse
. Lorsque ce paramètre est défini surtrue
, les résultats d'analyse excluent les informations de type dans les résultats. - Objets
CustomInfoType
: un ou plusieurs infoTypes personnalisés créés par l'utilisateur. Pour plus d'informations sur la création d'infoTypes personnalisés, consultez la page Créer des détecteurs d'infoTypes personnalisés.
- Objets
Chaîne
inspectTemplateName
: facultative. Cette chaîne permet de spécifier un modèle à utiliser pour insérer des valeurs par défaut dans l'objetInspectConfig
. Si vous avez déjà spécifiéInspectConfig
, les valeurs du modèle seront fusionnées.Objets
Action
: facultatif. Permettent de spécifier une ou plusieurs actions à exécuter à la fin de la tâche. Les actions sont exécutées dans l'ordre dans lequel elles ont été répertoriées. C'est à ce niveau que vous devez indiquer l'emplacement où écrire les résultats, ou encore spécifier si vous souhaitez publier une notification dans un sujet Pub/Sub.
jobId
: facultatif. Identifiant de la tâche renvoyée par Cloud DLP. SijobId
est omis ou vide, le système crée un ID pour la tâche. Si cet élément est spécifié, la tâche se voit attribuer cette valeur d'ID. L'ID de la tâche doit être unique et ne contenir que des majuscules, des minuscules, des chiffres et des traits d'union. Cela signifie qu'il doit correspondre à l'expression régulière suivante :[a-zA-Z\\d-]+
.
Limiter la quantité de contenu inspecté
Si vous analysez des tables BigQuery ou des buckets Cloud Storage, Cloud DLP permet d'analyser un sous-ensemble de l'ensemble de données. Cela permet d'obtenir un échantillon des résultats d'analyse sans toutefois générer les coûts potentiels d'une analyse sur l'ensemble de données complet.
Les sections ci-après contiennent des informations sur la limitation de la taille des analyses Cloud Storage et des analyses BigQuery.
Limiter les analyses Cloud Storage
Vous pouvez activer l'échantillonnage dans Cloud Storage et limiter la quantité de données à analyser. Vous avez la possibilité de demander à l'API DLP d'analyser uniquement les fichiers d'une certaine taille, uniquement certains types de fichiers et uniquement un certain pourcentage du nombre total de fichiers de l'ensemble d'entrée. Pour cela, indiquez les champs facultatifs suivants dans CloudStorageOptions
:
bytesLimitPerFile
: définit le nombre maximal d'octets à analyser à partir d'un fichier. Si la taille du fichier analysé est supérieure à la valeur indiquée, les octets au-delà de ce nombre sont omis.fileTypes[]
: répertorie l'élémentFileTypes
à inclure dans l'analyse. Cette liste peut être définie sur un ou plusieurs des types énumérés ci-après.filesLimitPercent
: limite le nombre de fichiers à analyser au pourcentage spécifié de l'entréeFileSet
. Si les valeurs0
ou100
sont indiquées, cela signifie qu'il n'y a aucune limite.sampleMethod
: méthode d'échantillonnage à appliquer si tous les octets ne sont pas analysés. Spécifier cette valeur n'a de sens que si elle est utilisée conjointement avecbytesLimitPerFile
. Si cette valeur n'est pas renseignée, l'analyse commence par le haut. Ce champ peut être défini sur l'une des deux valeurs suivantes :TOP
: l'analyse commence par le haut.RANDOM_START
: pour chaque fichier dont la taille dépasse la taille spécifiée dansbytesLimitPerFile
, sélectionnez le décalage de manière aléatoire pour lancer l'analyse. Les octets analysés sont contigus.
Les exemples suivants illustrent l'utilisation de l'API DLP pour analyser un sous-ensemble à 90% d'un bucket Cloud Storage à la recherche de noms de personnes. L'analyse commence à un emplacement aléatoire dans l'ensemble de données et inclut uniquement les fichiers texte de moins de 200 octets.
Protocole
Entrée JSON :
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"200",
"fileTypes":[
"TEXT_FILE"
],
"filesLimitPercent":90,
"sampleMethod":"RANDOM_START"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"excludeInfoTypes":true,
"includeQuote":true,
"minLikelihood":"POSSIBLE"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"testingdlp"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
Après avoir envoyé l'entrée JSON dans une requête POST au point de terminaison spécifié, une tâche Cloud DLP est créée et l'API envoie 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]/*"
},
"bytesLimitPerFile":"200",
"fileTypes":[
"TEXT_FILE"
],
"sampleMethod":"TOP",
"filesLimitPercent":90
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"minLikelihood":"POSSIBLE",
"limits":{
},
"includeQuote":true,
"excludeInfoTypes":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]",
"tableId":"[TABLE-ID]"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
},
"createTime":"2018-05-30T22:22:08.279Z"
}
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Limiter les analyses BigQuery
Pour activer l'échantillonnage dans BigQuery et limiter la quantité de données à analyser, spécifiez les champs facultatifs suivants dans BigQueryOptions
:
rowsLimit
: nombre maximal de lignes à analyser. Si la table possède un nombre de lignes supérieur à cette valeur, les lignes au-delà de cette valeur sont omises. Si cette valeur n'est pas définie ou est égale à 0, toutes les lignes sont analysées.rowsLimitPercent
: pourcentage maximal de lignes à analyser (entre 0 et 100). Les lignes restantes sont omises. Si cette valeur est définie sur 0 ou sur 100, aucune limite n'est définie. La valeur par défaut est 0. Vous ne pouvez spécifier qu'un seul élémentrowsLimit
etrowsLimitPercent
.sampleMethod
: méthode d'échantillonnage à utiliser si toutes les lignes ne doivent pas être analysées. Si cette valeur n'est pas renseignée, l'analyse commence par le haut. Ce champ peut être défini sur l'une des deux valeurs suivantes :TOP
: l'analyse commence par le haut.RANDOM_START
: l'analyse commence à partir d'une ligne sélectionnée de manière aléatoire.
excludedFields
: champs de table qui identifient de manière unique les colonnes à exclure de la lecture. Cela permet de réduire la quantité de données analysées et de réduire le coût global d'une tâche d'inspection.includedFields
: champs de table qui identifient de manière unique des lignes spécifiques à analyser dans la table.
TimespanConfig
est une autre fonctionnalité utile pour limiter les données analysées, en particulier lors de l'analyse de tables partitionnées.
TimespanConfig
vous permet de filtrer les lignes de table BigQuery en fournissant des valeurs d'heure de début et de fin pour définir une période. Cloud DLP analyse alors uniquement les lignes contenant un horodatage au cours de cette période.
Les exemples suivants montrent comment analyser un sous-ensemble de 1 000 lignes d'une table BigQuery à l'aide de l'API DLP. L'analyse commence à partir d'une ligne aléatoire.
Protocole
Entrée JSON :
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"bigQueryOptions":{
"tableReference":{
"projectId":"bigquery-public-data",
"datasetId":"usa_names",
"tableId":"usa_1910_current"
},
"rowsLimit":"1000",
"sampleMethod":"RANDOM_START",
"includedFields":[
{
"name":"name"
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"FIRST_NAME"
}
],
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"testingdlp",
"tableId":"bqsample3"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
Après avoir envoyé l'entrée JSON dans une requête POST au point de terminaison spécifié, une tâche Cloud DLP est créée et l'API envoie la réponse suivante.
Sortie JSON :
{
"name": "projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type": "INSPECT_JOB",
"state": "PENDING",
"inspectDetails": {
"requestedOptions": {
"snapshotInspectTemplate": {},
"jobConfig": {
"storageConfig": {
"bigQueryOptions": {
"tableReference": {
"projectId": "bigquery-public-data",
"datasetId": "usa_names",
"tableId": "usa_1910_current"
},
"rowsLimit": "1000",
"sampleMethod": "RANDOM_START",
"includedFields": [
{
"name": "name"
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "FIRST_NAME"
}
],
"limits": {},
"includeQuote": true
},
"actions": [
{
"saveFindings": {
"outputConfig": {
"table": {
"projectId": "[PROJECT-ID]",
"datasetId": "[DATASET-ID]",
"tableId": "bqsample"
},
"outputSchema": "BASIC_COLUMNS"
}
}
}
]
}
},
"result": {}
},
"createTime": "2022-11-04T18:53:48.350Z"
}
Une fois la tâche d'inspection terminée et ses résultats traités par BigQuery, les résultats de l'analyse sont disponibles dans la table de sortie BigQuery spécifiée. Pour en savoir plus sur la récupération des résultats d'inspection, reportez-vous à la section suivante.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud DLP, consultez la page Bibliothèques clientes Cloud DLP.
Récupérer les résultats d'inspection
Vous pouvez récupérer un résumé d'un objet DlpJob
à l'aide de la méthode projects.dlpJobs.get
. L'objet DlpJob
renvoyé contient son objet InspectDataSourceDetails
, qui contient lui-même un résumé de la configuration de la tâche (RequestedOptions
), et un résumé des résultats de la tâche (Result
). Le résumé des résultats comprend :
processedBytes
: le volume de données total traité (en octets).totalEstimatedBytes
: une estimation du nombre d'octets restants à traiter.- Objet
InfoTypeStatistics
: des statistiques sur le nombre d'instances de chaque infoType identifié au cours de la tâche d'inspection.
Pour obtenir les résultats complets de la tâche d'inspection, plusieurs options s'offrent à vous. Selon l'objet Action
que vous avez choisi, les tâches d'inspection peuvent être :
- Enregistrées dans BigQuery (objet
SaveFindings
) dans la table spécifiée. Avant de visualiser ou d'analyser les résultats, assurez-vous que la tâche est bien terminée à l'aide de la méthodeprojects.dlpJobs.get
décrite ci-après. Notez que vous pouvez spécifier un schéma de stockage des résultats à l'aide de l'objetOutputSchema
. - Publiées dans un sujet Pub/Sub (objet
PublishToPubSub
). Le sujet doit avoir accordé des droits de publication au compte de service Cloud DLP qui exécute l'objetDlpJob
chargé d'envoyer les notifications. - Publication dans Security Command Center.
- Publication dans Data Catalog.
- Publication dans Cloud Monitoring.
Afin de vous aider dans l'examen des grandes quantités de données générées par Cloud DLP, vous pouvez utiliser les outils BigQuery intégrés pour exécuter des analyses SQL approfondies, ou encore des outils tels que Looker Studio pour générer des rapports. Pour en savoir plus, consultez la page Examiner des résultats des analyses DLP et créer des rapports. Pour consulter des exemples de requêtes, reportez-vous à la page Interroger les résultats Cloud DLP dans BigQuery.
L'envoi d'une requête d'inspection de dépôt de stockage à Cloud DLP entraîne la création et l'exécution d'une instance d'objet DlpJob
dans la réponse. Ces tâches peuvent prendre quelques secondes, minutes ou heures en fonction du volume de données concerné par l'analyse et de la configuration que vous avez spécifiée. Si vous optez pour la publication dans un sujet Cloud Pub/Sub (en spécifiant PublishToPubSub
dans un objet Action
), des notifications sont envoyées automatiquement au sujet spécifié lorsque l'état de la tâche change. Le nom du sujet Pub/Sub est spécifié au format projects/[PROJECT-ID]/topics/[PUBSUB-TOPIC-NAME]
.
Vous bénéficiez d'un contrôle total sur les tâches que vous créez, y compris en ce qui concerne les méthodes de gestion suivantes :
- Méthode
projects.dlpJobs.cancel
: arrête une tâche en cours. Le serveur fait de son mieux pour annuler la tâche, mais la réussite de l'opération n'est pas garantie. La tâche et sa configuration seront conservées jusqu'à ce que vous les supprimiez. - Méthode
projects.dlpJobs.delete
: supprime une tâche et sa configuration. - Méthode
projects.dlpJobs.get
: récupère une seule tâche et renvoie son état, sa configuration et, si la tâche est terminée, un résumé des résultats. - Méthode
projects.dlpJobs.list
: récupère la liste de toutes les tâches et inclut la possibilité de filtrer les résultats.
Étapes suivantes
- Pour en savoir plus sur la création de tâches d'inspection de stockage, consultez la page Créer et planifier des tâches d'inspection Cloud DLP.
- Découvrez comment créer une copie anonymisée des données dans le stockage.
- Pour en savoir plus sur les types de fichiers compatibles lors de l'inspection des buckets Cloud Storage, consultez la page Types de fichiers compatibles.