Estás viendo la documentación de Apigee Edge.
Ir a la documentación de
Apigee X. info
Versión: 2.0.2
Usa esta extensión para ocultar datos sensibles del contenido y las imágenes. Por ejemplo, puedes ocultar números de tarjetas de crédito, nombres y números de seguridad social.
Requisitos previos
En este contenido, se proporciona información de referencia para configurar y usar esta extensión. Antes de usar la extensión desde un proxy de API con la política ExtensionCallout, debes hacer lo siguiente:
Habilita la API de Google Cloud DLP para tu proyecto.
Otorga permiso para el nivel de acceso que desees para la extensión.
Usa la consola de Google Cloud para generar una clave para la cuenta de servicio.
Usa el contenido del archivo JSON de la clave resultante cuando agregues y configures la extensión con la referencia de configuración.
Acerca de Cloud Data Loss Prevention (DLP)
Cloud Data Loss Prevention (DLP) es una API para inspeccionar texto, imágenes y otros datos para identificar y administrar datos sensibles.
Para obtener más información, consulta la descripción general de DLP. Para consultar la API que expone esta extensión, consulta la API de Cloud Data Loss Prevention (DLP).
Ejemplos
En los siguientes ejemplos, se ilustra cómo configurar la compatibilidad con las acciones de extensión de Cloud DLP con la política ExtensionCallout.
Para facilitar la prueba de este código de muestra, estos ejemplos usan una política AssignMessage para establecer valores de variables de flujo y recuperar valores de respuesta de extensión para mostrarlos en la herramienta de Trace.
Máscara con estrellas
En este ejemplo, se usa la acción deidentifyWithMask para enmascarar los tipos de texto especificados con un carácter indicado en la política (en este caso, el carácter *).
La siguiente política de AssignMessage establece la variable request.content a modo de ilustración. Normalmente, recuperarías el contenido de la solicitud del cliente.
<?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 siguiente política de ExtensionCallout recupera el valor de la variable request.content y lo pasa a una extensión de Cloud DLP (aquí, llamada example-dlp). Esa extensión se configuró para enmascarar valores según los infoTypes URL y 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 siguiente política AssignMessage recupera el resultado de la extensión para mostrarlo en la herramienta de seguimiento.
<?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>
A continuación, se muestra un ejemplo del resultado de este código.
{"text":"Visit my site at ******************* Or contact me at *****************."}
Máscara con nombre
En este ejemplo, se usa la acción deidentifyWithType para enmascarar los tipos de texto especificados con el nombre del infotipo. Por ejemplo, reemplazaría la dirección de correo electrónico gladys@example.com por EMAIL_ADDRESS.
La siguiente política de AssignMessage establece la variable request.content a modo de ilustración. Normalmente, recuperarías el contenido de la solicitud del cliente.
<?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 siguiente política ExtensionCallout recupera el valor de la variable request.content y lo pasa a una extensión de Cloud DLP (aquí, llamada example-dlp). Esa extensión se configuró para enmascarar valores según los infoTypes URL y 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 siguiente política AssignMessage recupera el resultado de la extensión para mostrarlo en la herramienta de seguimiento.
<?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>
A continuación, se muestra un ejemplo del resultado de este código.
{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}
Acciones
deidentifyWithMask
Desidentifica los datos sensibles de text y enmascáralos con el carácter mask. Esta acción enmascara las partes de text especificadas por la propiedad infoTypes en la configuración de la extensión.
El enmascaramiento de datos sensibles reemplaza los caracteres por un símbolo, como un asterisco (*) o un numeral (#). Los tipos de datos sensibles se pueden configurar en la configuración de la extensión.
Sintaxis
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify",
"mask" : "masking-character"
}]]></Input>
Ejemplo
En el siguiente ejemplo, la entrada para enmascarar es una dirección de correo electrónico almacenada en una variable de flujo input.email.address. Para admitir este ejemplo específico, se debe haber configurado esta extensión para admitir el infotipo EMAIL_ADDRESS. Para obtener una lista de los Infotipos, consulta la Referencia del detector de Infotipos.
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
El resultado de este ejemplo sería el siguiente:
{"text":"*****************"}
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| texto | Es el texto que se desidentificará. | String | Ninguno | Sí. |
| mascarilla | Carácter que se usará para enmascarar los datos sensibles. | String | Ninguno | Sí. |
Respuesta
Es el texto de entrada con los valores de los Infotipos especificados reemplazados por el carácter especificado. Por ejemplo:
{"text":"*********"}
deidentifyWithTemplate
Desidentificar datos sensibles en contenidos de texto con una plantilla que configura qué texto se debe desidentificar y cómo controlarlo.
Las plantillas son útiles para separar la configuración, como qué inspeccionas y cómo lo desidentificas, de la implementación de tus llamadas a la API. Las plantillas proporcionan una forma de reutilizar la configuración y habilitar la coherencia entre los usuarios y los conjuntos de datos.
En tu plantilla, especificarás infoTypes que representen el contenido que se debe anonimizar. Para obtener una lista de los Infotipos, consulta la Referencia del detector de Infotipos. La seudoanonimización enmascara las partes del texto especificadas por la propiedad infoTypes en la plantilla.
Sintaxis
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
"templateName" : "path-to-template"
}]]></Input>
Ejemplo
En el siguiente ejemplo, la entrada para anonimizar es el cuerpo de la solicitud que transporta la variable de flujo request.content.
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "{request.content}"
"templateName" : "projects/[PROJECT_ID]/deidentifyTemplates/1231258663242"
}]]></Input>
El resultado de este ejemplo sería el contenido de la solicitud anonimizado.
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| texto | Es el texto que se desidentificará. Es sobre lo que opera el proceso de desidentificación. | Objeto | Ninguno | Sí. |
| templateName | Es la plantilla que se usará. Será una ruta de acceso a la plantilla con el siguiente formato: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Cuando crees la plantilla con la API de Google, usa el valor de la propiedad name de la respuesta como templateName. |
String | Ninguno | Sí. |
Respuesta
Es el texto de entrada con los valores de los infotipos especificados reemplazados por los nombres de los infotipos.
deidentifyWithType
Desidentifica datos sensibles en contenido de texto reemplazando cada valor coincidente por el nombre del infoType. Para obtener una lista de los Infotipos, consulta la Referencia del detector de Infotipos. Esta acción enmascara las partes de text especificadas por la propiedad infoTypes en la configuración de la extensión.
En el siguiente ejemplo, el servicio reconoce el número de teléfono y, luego, lo reemplaza por el nombre del infotipo.
Texto de entrada:
John Smith, 123 Main St, Seattle, WA 98122, 206-555-0123.Texto del resultado:
John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.
Sintaxis
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
}]]></Input>
Ejemplo
En el siguiente ejemplo, la entrada para enmascarar es una dirección de correo electrónico almacenada en una variable de flujo input.email.address. Para admitir este ejemplo específico, se debe haber configurado esta extensión para admitir el infotipo EMAIL_ADDRESS. Para obtener una lista de los Infotipos, consulta la Referencia del detector de Infotipos.
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.email.address}"
}]]></Input>
El resultado de este ejemplo sería el siguiente:
{"text":"EMAIL_ADDRESS"}
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| texto | Es el texto que se desidentificará. | String | Ninguno | Sí. |
Respuesta
Es el texto de entrada con los valores de los infotipos especificados reemplazados por los nombres de los infotipos. Por ejemplo:
{"text":"EMAIL_ADDRESS"}
redactImage
Oculta el texto que pertenece a una de las categorías de infoType. El contenido censurado se detecta y se oculta con un rectángulo opaco. Esta acción enmascara las partes de image_data especificadas por la propiedad infoTypes en la configuración de la extensión.
Para obtener una lista de los Infotipos, consulta la Referencia del detector de Infotipos.
Parámetros de solicitud
<Action>redactImage</Action>
<Input><![CDATA[{
"image_data" : "base64-encoded-image-to-analyze",
"image_type" : "type-of-image"
}]]></Input>
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| image_data | Son los datos de la imagen codificados en base64. | String | Ninguno | Sí. |
| image_type | Constante del tipo de imagen. Los valores disponibles son IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG y IMAGE_SVG. | String | Ninguno | Sí. |
Respuesta
Imagen con el texto oculto.
Referencia de configuración
Usa la siguiente información cuando configures e implementes esta extensión para usarla en proxies de API. Si deseas conocer los pasos para configurar una extensión con la consola de Apigee, consulta Cómo agregar y configurar una extensión.
Propiedades comunes de las extensiones
Las siguientes propiedades están presentes para cada extensión.
| Propiedad | Descripción | Predeterminado | Obligatorio |
|---|---|---|---|
name |
Nombre que asignas a esta configuración de la extensión. | Ninguna | Sí |
packageName |
Nombre del paquete de extensiones proporcionado por Apigee Edge. | Ninguna | Sí |
version |
El número de versión del paquete de extensiones desde el que quieres configurar la extensión. | Ninguna | Sí |
configuration |
Es un valor de configuración específico para la extensión que agregas. Consulta Propiedades para este paquete de extensiones | Ninguna | Sí |
Propiedades de este paquete de extensión
Especifica valores para las siguientes propiedades de configuración específicas de esta extensión.
| Propiedad | Descripción | Predeterminado | Obligatorio |
|---|---|---|---|
| ID de proyecto | Es el ID del proyecto de Google Cloud para el que está habilitada la API de Cloud Data Loss Prevention. | Ninguno | Sí. |
| predichos | Son los tipos de información de los datos sensibles. Si se omite, el servicio detectará todos los tipos integrados. Para obtener una lista de los infoTypes compatibles con el servicio de DLP de Google Cloud, consulta la Referencia del detector de Infotipo. | Ninguno | Núm. |
| credenciales | Cuando se ingresa en la consola de Apigee Edge, este es el contenido del archivo de claves de tu cuenta de servicio. Cuando se envía a través de la API de administración, es un valor codificado en Base64 que se genera a partir del archivo de claves de la cuenta de servicio. | Ninguno | Sí. |