Você está visualizando a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
Versão: 2.0.0
Use essa extensão para ocultar dados sensíveis de conteúdo e imagens. Por exemplo, você pode editar números de cartão de crédito, nomes e CPFs.
Pré-requisitos
Este conteúdo oferece uma referência para configurar e usar essa extensão. Antes de usar a extensão de um proxy de API com a política ExtensionCallout, você precisa:
Ative a API Google Cloud DLP no projeto.
Conceda permissão para o nível de acesso que você quer para a extensão.
Use o Console do GCP para gerar uma chave para a conta de serviço.
Use o conteúdo do arquivo JSON de chave resultante ao adicionar e configurar a extensão usando a referência de configuração.
Sobre a Prevenção contra perda de dados na nuvem (DLP)
O Cloud Data Loss Prevention (DLP) é uma API para inspecionar textos, imagens e outros dados e identificar e gerenciar dados sensíveis.
Para mais informações, consulte a Visão geral do DLP. Para referência à API exposta por essa extensão, consulte API Cloud Data Loss Prevention (DLP).
Amostras
Os exemplos a seguir ilustram como configurar o suporte a ações de extensão do Cloud DLP usando a política ExtensionCallout.
Para facilitar o teste desse código de exemplo, esses exemplos usam uma política AssignMessage para definir valores de variáveis de fluxo e extrair valores de resposta de extensão para exibição na ferramenta de rastreamento.
Máscara com estrelas
Este exemplo usa a ação deidentifyWithMask
para mascarar os tipos de texto especificados com um caractere especificado na política, neste caso, o caractere *
.
A política AssignMessage a seguir define a variável request.content
para fins de ilustração. Normalmente, você recupera o conteúdo da solicitação do 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>
A política ExtensionCallout a seguir recupera o valor da variável request.content e o transmite a uma extensão do Cloud DLP (neste caso, chamada de example-dlp
). Essa extensão foi configurada para mascarar valores com base nos infoTypes URL
e 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>
A política AssignMessage a seguir recupera a saída da extensão para exibição na ferramenta de rastreamento.
<?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>
Confira a seguir um exemplo de saída desse código.
{"text":"Visit my site at ******************* Or contact me at *****************."}
Máscara com nome
Este exemplo usa a ação deidentifyWithType
para mascarar os tipos de texto especificados com o próprio nome do infotype. Por exemplo, ele substituiria o endereço de e-mail gladys@example.com
por EMAIL_ADDRESS
.
A política AssignMessage a seguir define a variável request.content
para fins de ilustração. Normalmente, você recupera o conteúdo da solicitação do 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>
A política ExtensionCallout a seguir recupera o valor da variável request.content
e o transmite a uma extensão do Cloud DLP (neste caso, chamada de example-dlp
). Essa extensão foi configurada para mascarar valores com base nos infoTypes URL
e 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>
A política AssignMessage a seguir recupera a saída da extensão para exibição na ferramenta de rastreamento.
<?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>
Confira a seguir um exemplo de saída desse código.
{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}
Ações
deidentifyWithMask
Desidentifique os dados sensíveis de text
e os mascara com o caractere mask
. Essa ação mascara as partes de text
especificadas pela propriedade infoTypes
na configuração da extensão.
O mascaramento de dados sensíveis substitui os caracteres por um símbolo, como um asterisco (*) ou um hash (#). Os tipos de dados sensíveis podem ser configurados na configuração da extensão.
Sintaxe
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify",
"mask" : "masking-character"
}]]></Input>
Exemplo
No exemplo abaixo, a entrada a ser mascarada é um endereço de e-mail armazenado em uma variável de fluxo input.email.address
. Para oferecer suporte a esse exemplo específico, a extensão precisa ter sido configurada para oferecer suporte ao infoType EMAIL_ADDRESS. Para uma lista de infoTypes, consulte Referência do detector de infoType.
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
A saída para este exemplo seria a seguinte:
{"text":"*****************"}
Parâmetros de solicitação
Parâmetro | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
texto | Texto a ser desidentificado. | String | Nenhum. | Sim. |
máscara | Caractere a ser usado para mascarar dados sensíveis. | String | Nenhum. | Sim. |
Resposta
O texto de entrada com os valores dos infoTypes especificados substituídos pelo caractere especificado. Por exemplo,
{"text":"*********"}
deidentifyWithTemplate
Desidentifique dados sensíveis em conteúdo de texto usando um modelo que configure o texto a ser desidentificado e como processá-lo.
Os modelos são úteis para desassociar a configuração. Por exemplo, o que você inspeciona e como desidentifica esse item da implementação das chamadas de API. Os modelos fornecem uma maneira de reutilizar a configuração e ter consistência entre usuários e conjuntos de dados.
No modelo, você vai especificar os infoTypes que representam o conteúdo a ser desidentificado. Para uma lista de infoTypes, consulte Referência do detector de infoType. A remoção de identificação mascara as partes do texto especificadas pela propriedade infoTypes
no modelo.
Sintaxe
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
"templateName" : "path-to-template"
}]]></Input>
Exemplo
No exemplo abaixo, a entrada para desidentificação é o corpo da solicitação transmitida pela variável de fluxo request.content
.
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "{request.content}"
"templateName" : "projects/[PROJECT_ID]/deidentifyTemplates/1231258663242"
}]]></Input>
A saída para este exemplo seria o conteúdo da solicitação sem identificação.
Parâmetros de solicitação
Parâmetro | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
texto | O texto a ser desidentificado. É sobre isso que o processo de desidentificação opera. | Objeto | Nenhum. | Sim. |
templateName | O modelo a ser usado. Será um caminho para o modelo no seguinte formato: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID . Ao criar o modelo com a API Google, use o valor da propriedade name da resposta como templateName . |
String | Nenhum. | Sim. |
Resposta
O texto de entrada com os valores dos infoTypes especificados substituídos pelos nomes dos infoTypes.
deidentifyWithType
Desidentifique dados sensíveis no conteúdo de texto, substituindo cada valor correspondente pelo nome do infoType. Para uma lista de infoTypes, consulte Referência do detector de infoType. Essa ação mascara as partes de text
especificadas pela propriedade infoTypes
na configuração da extensão.
No exemplo abaixo, o número de telefone é reconhecido pelo serviço e substituído pelo nome do próprio infoType.
Texto de entrada:
John Smith, 123 Main St, Seattle, WA 98122, 206-555-0123.
Texto do resultado:
John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.
Sintaxe
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
}]]></Input>
Exemplo
No exemplo abaixo, a entrada a ser mascarada é um endereço de e-mail armazenado em uma variável de fluxo input.email.address
. Para oferecer suporte a esse exemplo específico, a extensão precisa ter sido configurada para oferecer suporte ao infoType EMAIL_ADDRESS. Para uma lista de infoTypes, consulte Referência do detector de infoType.
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.email.address}"
}]]></Input>
A saída para este exemplo seria a seguinte:
{"text":"EMAIL_ADDRESS"}
Parâmetros de solicitação
Parâmetro | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
texto | O texto a ser desidentificado. | String | Nenhum. | Sim. |
Resposta
O texto de entrada com os valores dos infoTypes especificados substituídos pelos nomes dos infoTypes. Por exemplo,
{"text":"EMAIL_ADDRESS"}
redactImage
Ocultar o texto que se enquadra em uma das categorias de infoType. O conteúdo editado é detectado e obscurecido com um retângulo opaco. Essa ação mascara as partes de image_data
especificadas pela propriedade infoTypes
na configuração da extensão.
Para uma lista de infoTypes, consulte Referência do detector de infoType.
Parâmetros de solicitação
<Action>redactImage</Action>
<Input><![CDATA[{
"image_data" : "base64-encoded-image-to-analyze",
"image_type" : "type-of-image"
}]]></Input>
Parâmetro | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
image_data | Os dados da imagem codificados em base64. | String | Nenhum. | Sim. |
image_type | Constante do tipo de imagem. Os valores disponíveis são IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG e IMAGE_SVG. | String | Nenhum. | Sim. |
Resposta
A imagem com o texto censurado.
Referência de configuração
Use as informações a seguir ao configurar e implantar essa extensão para uso em proxies de API. Para saber como configurar uma extensão usando o console da Apigee, consulte Adicionar e configurar uma extensão.
Propriedades de extensão comuns
As propriedades a seguir estão presentes para cada extensão.
Propriedade | Descrição | Padrão | Obrigatório |
---|---|---|---|
name |
Nome que será dado a esta configuração da extensão. | Nenhum | Sim |
packageName |
Nome do pacote de extensão fornecido pelo Apigee Edge. | Nenhum | Sim |
version |
Número da versão do pacote de extensão a partir do qual você está configurando uma extensão. | Nenhum | Sim |
configuration |
Valor de configuração específico da extensão que você está adicionando. Consulte Propriedades para este pacote de extensão. | Nenhum | Sim |
Propriedades deste pacote de extensão
Especifique valores para as seguintes propriedades de configuração específicas desta extensão.
Propriedade | Descrição | Padrão | Obrigatório |
---|---|---|---|
projectId | O ID do projeto do GCP em que a API Cloud Data Loss Prevention está ativada. | Nenhum. | Sim. |
infoTypes | Tipos de informações dos dados sensíveis. Se omitido, o serviço vai detectar todos os tipos integrados. Para conferir uma lista de infoTypes compatíveis com o serviço do Google Cloud DLP, consulte a Referência do detector de infoType. | Nenhum. | Não. |
credenciais | Quando inserido no console do Apigee Edge, esse é o conteúdo do arquivo de chave da conta de serviço. Quando enviado pela API de gerenciamento, é um valor codificado em base64 gerado a partir do arquivo de chave da conta de serviço. | Nenhum. | Sim. |