Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
Version : 2.0.2
Utilisez cette extension pour masquer les données sensibles dans les contenus 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 ExtensionCallout, vous devez :
Activez l'API Google Cloud DLP pour votre projet.
Accordez l'autorisation pour le niveau d'accès que vous souhaitez accorder à l'extension.
Utilisez la console Google Cloud pour générer une clé pour le compte de service.
Utilisez le contenu du fichier JSON de clé obtenu lorsque vous ajoutez et configurez l'extension à l'aide de la documentation de référence sur la 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 pour identifier et gérer les données sensibles.
Pour en savoir plus, consultez la présentation de DLP. Pour obtenir des informations sur l'API exposée par cette extension, consultez API Cloud Data Loss Prevention (DLP).
Exemples
Les exemples suivants illustrent la configuration de la compatibilité avec les actions d'extension Cloud DLP à l'aide de la règle ExtensionCallout.
Pour faciliter l'essai de cet exemple de code, ces exemples utilisent une règle AssignMessage pour définir les valeurs des variables de flux et récupérer les valeurs de réponse d'extension à 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 indiqué dans la règle (ici, le caractère *).
La règle AssignMessage suivante définit la variable request.content à des fins d'illustration. Normalement, vous récupérez le contenu de la requête à partir 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 AssignMessage 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 résultat de ce code.
{"text":"Visit my site at ******************* Or contact me at *****************."}
Masquer avec le nom
Cet exemple utilise l'action deidentifyWithType pour masquer les types de texte spécifiés avec le nom de l'infoType lui-même. Par exemple, l'adresse e-mail gladys@example.com serait remplacée par EMAIL_ADDRESS.
La règle AssignMessage suivante définit la variable request.content à des fins d'illustration. Normalement, vous récupérez le contenu de la requête à partir 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 (appelée example-dlp dans cet exemple). 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 AssignMessage 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 résultat de ce code.
{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}
Actions
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 de l'extension.
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 prendre en charge cet exemple spécifique, cette extension doit avoir été configurée pour prendre en charge 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>
Le résultat de cet exemple est le suivant :
{"text":"*****************"}
Paramètres de requête
| Paramètre | Description | Type | Valeur par défaut | Obligatoire |
|---|---|---|---|---|
| texte | Texte à anonymiser. | Chaîne | Aucune. | Oui. |
| masque | Caractère à utiliser pour masquer les données sensibles. | Chaîne | Aucune. | Oui. |
Réponse
Texte d'entrée dont les valeurs des infoTypes spécifiés ont été remplacées par le caractère spécifié. Par exemple,
{"text":"*********"}
deidentifyWithTemplate
Supprimez l'identification des données sensibles dans le contenu textuel à l'aide d'un modèle qui configure le texte à anonymiser et la façon de le traiter.
Les modèles sont utiles pour dissocier les informations de configuration : d'un côté, les éléments que vous inspectez, et de l'autre, la méthode utilisée dans la mise en œuvre de vos appels d'API pour supprimer l'identification de ces éléments. Les modèles constituent une solution pour réutiliser des configurations. Ils garantissent en outre une plus grande cohérence pour les utilisateurs et pour les ensembles de données.
Dans votre modèle, vous spécifiez les 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. La désidentification masque les parties du 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 à désidentifier 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>
Le résultat de cet exemple serait le contenu de la demande anonymisé.
Paramètres de requête
| Paramètre | Description | Type | Valeur par défaut | Obligatoire |
|---|---|---|---|---|
| texte | Texte à anonymiser. C'est sur ces données que s'effectue le processus d'anonymisation. | Objet | Aucune. | Oui. |
| nom du modèle | Modèle à utiliser. Il s'agit 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 comme templateName. |
Chaîne | Aucune. | Oui. |
Réponse
Texte d'entrée dont les valeurs des infoTypes spécifiés ont été remplacées par les noms des infoTypes.
deidentifyWithType
Anonymisez les données sensibles dans le contenu textuel en remplaçant chaque valeur détectée 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 prendre en charge cet exemple spécifique, cette extension doit avoir été configurée pour prendre en charge 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>
Le résultat de cet exemple est le suivant :
{"text":"EMAIL_ADDRESS"}
Paramètres de requête
| Paramètre | Description | Type | Valeur par défaut | Obligatoire |
|---|---|---|---|---|
| texte | Texte à anonymiser. | Chaîne | Aucune. | Oui. |
Réponse
Texte d'entrée dont les valeurs des infoTypes spécifiés ont été remplacées par les noms des infoTypes. Par exemple,
{"text":"EMAIL_ADDRESS"}
redactImage
Masquez le texte qui appartient à l'une des catégories d'infoTypes. Le contenu masqué est détecté et obscurci 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 | Valeur par défaut | Obligatoire |
|---|---|---|---|---|
| image_data | Données de l'image encodées en base64. | Chaîne | Aucune. | Oui. |
| image_type | Constante du type d'image. Les valeurs disponibles sont IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG et IMAGE_SVG. | Chaîne | Aucune. | Oui. |
Réponse
Image avec texte masqué.
Documentation de référence sur la configuration
Utilisez les éléments suivants lorsque vous configurez et déployez cette extension pour 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 d'extension courantes
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 les valeurs des propriétés de configuration suivantes propres à cette extension.
| Propriété | Description | Par défaut | Obligatoire |
|---|---|---|---|
| projectId | ID du projet Google Cloud pour lequel l'API Cloud Data Loss Prevention est activée. | Aucune. | Oui. |
| infoTypes prédits | Types d'informations des données sensibles. Si ce paramètre est omis, 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. | Aucune. | Non. |
| identifiants | Lorsqu'il est saisi dans la console Apigee Edge, il s'agit du contenu du fichier de clé de votre compte de service. Lorsqu'il est envoyé à l'aide de l'API Management, il s'agit d'une valeur encodée en base64 générée à partir du fichier de clé du compte de service. | Aucune. | Oui. |