Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. informações
Versão: 1.5.1
Use esta extensão para ocultar dados sensíveis de conteúdo e imagens. Por exemplo, você pode encobrir números de cartão de crédito, nomes e CPF ou CNPJ.
Pré-requisitos
Este conteúdo oferece referência para configurar e usar essa extensão. Antes de usar a extensão de um proxy de API com a política Extension callout, você precisa fazer o seguinte:
Ative a API Google Cloud DLP no projeto.
Conceda permissão para o nível de acesso que você quiser à extensão.
Use o console do GCP para gerar uma chave para a conta de serviço.
Use o conteúdo do arquivo JSON da chave resultante ao adicionar e configurar a extensão com a referência de configuração.
Sobre o Cloud Data Loss Prevention (DLP)
O Cloud Data Loss Prevention (DLP) é uma API para inspecionar textos, imagens e outros dados com o objetivo de identificar e gerenciar dados sensíveis.
Para mais informações, consulte a Visão geral da DLP. Para consultar a API que essa extensão expõe, consulte API Cloud Data Loss Prevention (DLP).
Exemplos
Os exemplos a seguir ilustram como configurar o suporte para ações de extensão do Cloud DLP usando a política Extension callout.
Para facilitar o teste com este exemplo de código, estes exemplos usam uma políticaAssignMessage para definir valores de variáveis de fluxo e recuperar valores de resposta de extensão para exibição na ferramenta Trace.
Máscara com estrelas
Esse exemplo usa a ação deidentifyWithMask
para mascarar os tipos de texto especificados com um caractere definido na política, aqui, o caractere *
.
A política AttributionMessage a seguir define a variável request.content
para fins ilustrativos. Normalmente, você recuperaria 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 ExtensionHeadline a seguir recupera o valor da variável request.content e o transmite para uma extensão do Cloud DLP (chamada 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 AttributionMessage a seguir recupera a saída da extensão para exibição na ferramenta 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>
Veja 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 de infotype. Por exemplo, ele substituiria o endereço de e-mail gladys@example.com
por EMAIL_ADDRESS
.
A política AttributionMessage a seguir define a variável request.content
para fins ilustrativos. Normalmente, você recuperaria 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 ExtensionExtension a seguir recupera o valor da variável request.content
e o transmite para uma extensão do Cloud DLP (aqui, chamada 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 AttributionMessage a seguir recupera a saída da extensão para exibição na ferramenta 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>
Veja 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 confidenciais de text
e mascare os dados com o caractere mask
. Essa ação mascara as partes de text
especificadas pela propriedade infoTypes
na configuração de extensão.
O mascaramento de dados confidenciais substitui os caracteres por um símbolo, como um asterisco (*) ou um hash (#). Os tipos de dados sensíveis podem ser definidos 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 para mascarar é um endereço de e-mail armazenado em uma variável de fluxo input.email.address
. Para oferecer suporte a este exemplo específico, essa extensão precisa ter sido configurada para ser compatível com o infoType EMAIL_ADDRESS. Para ver uma lista de infoTypes, consulte Referência do detector de infoTypes.
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
A saída desse 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 valores dos infoTypes especificados substituídos pelo caractere especificado. Por exemplo,
{"text":"*********"}
deidentifyWithTemplate
Desidentifique dados confidenciais no conteúdo do texto usando um modelo que configura qual texto deve ser desidentificado e como processá-lo.
Os modelos são úteis para desacoplar a configuração, como o que você inspeciona e como você a desidentifica da implementação de suas chamadas de API. Os modelos oferecem uma maneira de reutilizar a configuração e ter consistência entre usuários e conjuntos de dados.
No seu modelo, você especifica infoTypes que representam o conteúdo a ser desidentificado. Para ver uma lista de infoTypes, consulte Referência dos detectores de InfoType. A desidentificaçã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 a seguir, a entrada para desidentificar é o corpo da solicitação transportada 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 desse exemplo seria o conteúdo da solicitação desidentificada.
Parâmetros de solicitação
Parâmetro | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
texto | O texto a ser desidentificado. É para isso que opera o processo de desidentificação. | Objeto | Nenhum. | Sim. |
templateName | O modelo a ser usado. Ele será um caminho para o modelo no seguinte formato: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID . Ao criar o modelo com a API do Google, use o valor da propriedade name da resposta como templateName . |
String | Nenhum. | Sim. |
Resposta
O texto de entrada com valores dos infoTypes especificados substituídos pelos nomes de infoType.
deidentifyWithType
Desidentifique dados confidenciais no conteúdo de texto, substituindo cada valor correspondente pelo nome do infoType. Para ver uma lista de infoTypes, consulte Referência dos detectores de InfoType. Essa ação mascara as partes de text
especificadas pela propriedade infoTypes
na configuração de extensão.
No exemplo a seguir, 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 para mascarar é um endereço de e-mail armazenado em uma variável de fluxo input.email.address
. Para oferecer suporte a este exemplo específico, essa extensão precisa ter sido configurada para ser compatível com o infoType EMAIL_ADDRESS. Para ver uma lista de infoTypes, consulte Referência do detector de infoTypes.
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.email.address}"
}]]></Input>
A saída desse 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 valores dos infoTypes especificados substituídos pelos nomes de infoType. Por exemplo,
{"text":"EMAIL_ADDRESS"}
redactImage
Edite o texto que se enquadra em uma das categorias de infoType. O conteúdo encoberto é detectado e ocultado com um retângulo opaco. Essa ação mascara as partes de image_data
especificadas pela propriedade infoTypes
na configuração de extensão.
Para ver uma lista de infoTypes, consulte Referência dos detectores 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 de 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, IMAGE_SVG. | String | Nenhum. | Sim. |
Resposta
A imagem com texto encoberto.
Referência de configuração
Use o código a seguir ao configurar e implantar a extensão para uso em proxies de API. Para saber como configurar uma extensão usando o console da Apigee, consulte Como 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 propriedades de configuração a seguir 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 detectará todos os tipos integrados. Para ver uma lista de infoTypes compatíveis com o serviço do Google Cloud DLP, consulte 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 Management, ele é um valor codificado em base64 gerado no arquivo de chave da conta de serviço. | Nenhum. | Sim. |