<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
<ph type="x-smartling-placeholder">
Version: 1.3.0
Utilisez cette extension pour masquer des données sensibles dans le contenu et les images. Par exemple, vous pouvez masquer les numéros de carte de crédit, les noms et les numéros de sécurité sociale.
Prérequis
Ce contenu fournit des informations de référence pour configurer et utiliser cette extension. Avant d'utiliser l'extension à partir d'un proxy d'API à l'aide de la règle ExtensionCall, vous devez:
Activez l'API Google Cloud DLP pour votre projet.
Accordez l'autorisation correspondant au niveau d'accès que vous souhaitez accorder à l'extension.
Générez une clé pour le compte de service à l'aide de la console GCP.
Utilisez le contenu du fichier JSON de clé obtenu lors de l'ajout et de la configuration de l'extension à l'aide de la documentation de référence de configuration.
À propos de Cloud Data Loss Prevention (DLP)
Cloud Data Loss Prevention (DLP) est une API permettant d'inspecter du texte, des images et d'autres données afin d'identifier et de gérer les données sensibles.
Pour en savoir plus, consultez la page Présentation de la protection contre la perte de données. Pour en savoir plus sur l'API exposée par cette extension, consultez la page API Cloud Data Loss Prevention (DLP).
Exemples
Les exemples suivants montrent comment configurer la prise en charge des actions de l'extension Cloud DLP à l'aide de la règle ExtensionCall.
Pour faciliter l'essai de cet exemple de code, ces exemples utilisent une règleAssignMessage pour définir les valeurs des variables de flux et récupérer les valeurs de réponse de l'extension pour les afficher dans l'outil Trace.
Masque avec des étoiles
Cet exemple utilise l'action deidentifyWithMask
pour masquer les types de texte spécifiés avec un caractère spécifié dans la règle, ici le caractère *
.
La règle AffectMessage suivante définit la variable request.content
à titre d'illustration. Normalement, vous récupérez le contenu de la requête du client.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Set-Variable">
<DisplayName>Set Variable</DisplayName>
<AssignTo type="response" createNew="false"/>
<AssignVariable>
<Name>request.content</Name>
<Value>Visit my site at https://example.com. Or contact me at gladys@example.com.</Value>
</AssignVariable>
</AssignMessage>
La règle ExtensionCallout suivante récupère la valeur de la variable request.content et la transmet à une extension Cloud DLP (ici, appelée example-dlp
). Cette extension a été configurée pour masquer les valeurs en fonction des infoTypes URL
et EMAIL_ADDRESS
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Data-Loss-Extension-Callout">
<DisplayName>Data Loss Prevention Extension Callout</DisplayName>
<Connector>example-dlp</Connector>
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{request.content}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
</ConnectorCallout>
La règle AffectMessage suivante récupère la sortie de l'extension pour l'afficher dans l'outil Trace.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-DLP-Output">
<DisplayName>Get DLP Output</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{masked.output}</Payload>
</Set>
</AssignMessage>
Voici un exemple de sortie de ce code.
{"text":"Visit my site at ******************* Or contact me at *****************."}
Masquer avec un nom
Cet exemple utilise l'action deidentifyWithType
pour masquer les types de texte spécifiés à l'aide du nom de l'infoType. Par exemple, l'adresse e-mail gladys@example.com
sera remplacée par EMAIL_ADDRESS
.
La règle AffectMessage suivante définit la variable request.content
à titre d'illustration. Normalement, vous récupérez le contenu de la requête du client.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Set-Variable">
<DisplayName>Set Variable</DisplayName>
<AssignTo type="response" createNew="false"/>
<AssignVariable>
<Name>request.content</Name>
<Value>Visit my site at https://example.com. Or contact me at gladys@example.com.</Value>
</AssignVariable>
</AssignMessage>
La règle ExtensionCallout suivante récupère la valeur de la variable request.content
et la transmet à une extension Cloud DLP (ici, appelée example-dlp
). Cette extension a été configurée pour masquer les valeurs en fonction des infoTypes URL
et EMAIL_ADDRESS
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Data-Loss-Extension-Callout">
<DisplayName>Data Loss Prevention Extension Callout</DisplayName>
<Connector>example-dlp</Connector>
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{request.content}"
}]]></Input>
<Output>masked.output</Output>
</ConnectorCallout>
La règle AffectMessage suivante récupère la sortie de l'extension pour l'afficher dans l'outil Trace.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-DLP-Output">
<DisplayName>Get DLP Output</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{masked.output}</Payload>
</Set>
</AssignMessage>
Voici un exemple de sortie de ce code.
{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}
Actions
<ph type="x-smartling-placeholder">
deidentifyWithMask
Anonymisez les données sensibles de text
et masquez-les avec le caractère mask
. Cette action masque les parties de text
spécifiées par la propriété infoTypes
dans la configuration de l'extension.
Le masquage des données sensibles remplace les caractères par un symbole, tel qu'un astérisque (*) ou un dièse (#). Les types de données sensibles peuvent être configurés dans la configuration des extensions.
Syntaxe
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify",
"mask" : "masking-character"
}]]></Input>
Exemple
Dans l'exemple suivant, l'entrée à masquer est une adresse e-mail stockée dans une variable de flux input.email.address
. Pour illustrer cet exemple, l'extension doit avoir été configurée pour accepter l'infoType EMAIL_ADDRESS. Pour obtenir la liste des infoTypes, consultez la documentation de référence sur les détecteurs d'infoTypes.
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
Pour cet exemple, la sortie est la suivante:
{"text":"*****************"}
Paramètres de requête
Paramètre | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
texte | Texte à anonymiser. | Chaîne | Aucun | Oui. |
masque | Caractère à utiliser pour masquer les données sensibles. | Chaîne | Aucun | Oui. |
Réponse
Texte d'entrée dont les valeurs des infoTypes spécifiés ont été remplacées par le caractère indiqué. Par exemple,
{"text":"*********"}
deidentifyWithTemplate
Anonymisez les données sensibles dans le contenu textuel à l'aide d'un modèle qui configure le texte à anonymiser et la façon de les traiter.
Les modèles sont utiles pour découpler une configuration, par exemple pour identifier les éléments que vous inspectez et la manière dont vous la anonymisez de l'implémentation de vos appels d'API. Les modèles permettent de réutiliser des configurations, et d'assurer la cohérence entre les utilisateurs et les ensembles de données.
Dans votre modèle, vous allez spécifier des infoTypes représentant le contenu à anonymiser. Pour obtenir la liste des infoTypes, consultez la documentation de référence sur les détecteurs d'infoTypes. L'anonymisation masque les parties de texte spécifiées par la propriété infoTypes
dans le modèle.
Syntaxe
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
"templateName" : "path-to-template"
}]]></Input>
Exemple
Dans l'exemple suivant, l'entrée à anonymiser est le corps de la requête transporté par la variable de flux request.content
.
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "{request.content}"
"templateName" : "projects/[PROJECT_ID]/deidentifyTemplates/1231258663242"
}]]></Input>
Dans cet exemple, le résultat correspond au contenu de la requête anonymisé.
Paramètres de requête
Paramètre | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
texte | Texte à anonymiser. C'est sur cela que s'exécute le processus d'anonymisation. | Objet | Aucun | Oui. |
nom du modèle | Modèle à utiliser. Il s'agira d'un chemin d'accès au modèle au format suivant: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID . Lorsque vous créez le modèle avec l'API Google, utilisez la valeur de la propriété name de la réponse en tant que templateName . |
Chaîne | Aucun | Oui. |
Réponse
Texte d'entrée avec les valeurs des infoTypes spécifiés remplacés par les noms des infoTypes.
deidentifyWithType
Anonymisez les données sensibles dans le contenu textuel, en remplaçant chaque valeur correspondante par le nom de l'infoType. Pour obtenir la liste des infoTypes, consultez la documentation de référence sur les détecteurs d'infoTypes. Cette action masque les parties de text
spécifiées par la propriété infoTypes
dans la configuration de l'extension.
Dans l'exemple suivant, le numéro de téléphone est reconnu par le service, puis remplacé par le nom de l'infoType lui-même.
Texte saisi:
John Smith, 123 Main St, Seattle, WA 98122, 206-555-0123.
Texte du résultat:
John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.
Syntaxe
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
}]]></Input>
Exemple
Dans l'exemple suivant, l'entrée à masquer est une adresse e-mail stockée dans une variable de flux input.email.address
. Pour illustrer cet exemple, l'extension doit avoir été configurée pour accepter l'infoType EMAIL_ADDRESS. Pour obtenir la liste des infoTypes, consultez la documentation de référence sur les détecteurs d'infoTypes.
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.email.address}"
}]]></Input>
Pour cet exemple, la sortie est la suivante:
{"text":"EMAIL_ADDRESS"}
Paramètres de requête
Paramètre | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
texte | Texte à anonymiser. | Chaîne | Aucun | Oui. |
Réponse
Texte d'entrée avec les valeurs des infoTypes spécifiés remplacés par les noms des infoTypes. Par exemple,
{"text":"EMAIL_ADDRESS"}
redactImage
Masquer le texte appartenant à l'une des catégories d'infoTypes. Le contenu masqué est détecté et masqué par un rectangle opaque. Cette action masque les parties de image_data
spécifiées par la propriété infoTypes
dans la configuration de l'extension.
Pour obtenir la liste des infoTypes, consultez la documentation de référence sur les détecteurs d'infoTypes.
Paramètres de requête
<Action>redactImage</Action>
<Input><![CDATA[{
"image_data" : "base64-encoded-image-to-analyze",
"image_type" : "type-of-image"
}]]></Input>
Paramètre | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
image_data | Données d'image encodées en base64. | Chaîne | Aucun | Oui. |
image_type | Constante du type d'image Les valeurs disponibles sont IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG et IMAGE_SVG. | Chaîne | Aucun | Oui. |
Réponse
L'image avec le texte masqué.
Documentation de référence sur la configuration
Procédez comme suit lorsque vous configurez et déployez cette extension afin de l'utiliser dans des proxys d'API. Pour savoir comment configurer une extension à l'aide de la console Apigee, consultez Ajouter et configurer une extension.
Propriétés courantes des extensions
Les propriétés suivantes sont présentes pour chaque extension.
Propriété | Description | Par défaut | Obligatoire |
---|---|---|---|
name |
Nom que vous attribuez à cette configuration de l'extension. | Aucune | Oui |
packageName |
Nom du package d'extension tel qu'indiqué par Apigee Edge. | Aucune | Oui |
version |
Numéro de version du package d'extension à partir duquel vous configurez une extension. | Aucune | Oui |
configuration |
Valeur de configuration spécifique à l'extension que vous ajoutez. Consultez Propriétés de ce package d'extension. | Aucune | Oui |
Propriétés de ce package d'extension
Spécifiez des valeurs pour les propriétés de configuration suivantes, spécifiques à cette extension.
Propriété | Description | Par défaut | Obligatoire |
---|---|---|---|
projectId | ID du projet GCP pour lequel l'API Cloud Data Loss Prevention est activée. | Aucun | Oui. |
infoTypes | Types d'informations des données sensibles. Si cette valeur est omise, le service détecte tous les types intégrés. Pour obtenir la liste des infoTypes compatibles avec le service Google Cloud DLP, consultez la documentation de référence sur les détecteurs d'infoTypes. | Aucun | Non. |
credentials | Lorsqu'il est saisi dans la console Apigee Edge, il s'agit du contenu du fichier de clé de votre compte de service. Lorsqu'elle est envoyée via l'API de gestion, il s'agit d'une valeur encodée en base64 générée à partir du fichier de clé du compte de service. | Aucun | Oui. |