バージョン: 1.3.0
この拡張機能を使用すると、コンテンツや画像に含まれる機密データを難読化できます。たとえば、クレジット カード番号、名前、社会保障番号を秘匿化できます。
前提条件
ここでは、この拡張機能の構成と使用に関するリファレンスを提供します。ExtensionCallout ポリシーで API プロキシ経由で拡張機能を使用する前に、次のことを行う必要があります。
プロジェクトで Google Cloud DLP API を有効にします。
拡張機能のために必要となるアクセスレベルに権限を付与します。
拡張機能の追加と構成を行うときに、構成リファレンスを使用して、生成されたキーの JSON ファイルのコンテンツを使用します。
Cloud Data Loss Prevention(DLP)について
Cloud Data Loss Prevention(DLP)は、機密データを識別して管理するため、テキスト、画像、その他のデータを検査する API です。
詳しくは、DLP の概要をご覧ください。この拡張機能が公開する API のリファレンスについては、Cloud Data Loss Prevention(DLP)API をご覧ください。
例
次の例は、ExtensionCallout ポリシーを使用して Cloud DLP 拡張機能アクションのサポートを構成する方法を示しています。
このサンプルコードを簡単にするため、以下の例では AssignMessage ポリシーを使用して、Trace ツールに表示するフロー変数の値を設定し、拡張機能のレスポンス値を取得します。
アスタリスクによるマスキング
この例では、deidentifyWithMask
アクションを使用して、ポリシーで指定された文字(ここでは *
文字)で指定されたタイプのテキストをマスクします。
次の AssignMessage ポリシーは、明確にする目的で request.content
変数を設定します。通常は、クライアントのリクエストからリクエストを取得します。
<?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>
次の ExtensionCallout ポリシーは request.content 変数の値を取得し、これを Cloud DLP 拡張機能(ここでは example-dlp
と呼ばれます)に渡します。この拡張機能は、URL
と EMAIL_ADDRESS
の infoTypes に基づいた値をマスクするように構成されています。
<?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>
次の AssignMessage ポリシーは、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>
このコードからの出力の例は次のとおりです。
{"text":"Visit my site at ******************* Or contact me at *****************."}
名前によるマスキング
この例は deidentifyWithType
アクションを使用して、指定されたテキストのタイプを infoType 名自身でマスクします。たとえば、メールアドレス gladys@example.com
を EMAIL_ADDRESS
に置き換えます。
次の AssignMessage ポリシーは、明確にする目的で request.content
変数を設定します。通常は、クライアントのリクエストからリクエストを取得します。
<?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>
次の ExtensionCallout ポリシーは、request.content
変数の値を取得し、これを Cloud DLP 拡張機能(ここでは example-dlp
と呼ばれます)に渡します。この拡張機能は、URL
と EMAIL_ADDRESS
の infoTypes に基づいた値をマスクするように構成されています。
<?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>
次の AssignMessage ポリシーは、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>
このコードからの出力の例は次のとおりです。
{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}
アクション
deidentifyWithMask
text
の機密データを匿名化し、mask
文字でデータをマスクします。このアクションは、拡張機能の構成の infoTypes
プロパティで指定された text
の部分をマスクします。
機密データをマスキングすると、文字がアスタリスク(*)やハッシュ(#)などの記号に置き換えられます。機密データの種類は、拡張機能の構成で構成できます。
構文
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify",
"mask" : "masking-character"
}]]></Input>
例
次の例では、マスク対象の入力は input.email.address
フロー変数に保存されたメールアドレスです。この特定の例をサポートするには、この拡張機能が EMAIL_ADDRESS infoType をサポートするように構成されている必要があります。infoType のリストについては、infoType 検出器リファレンスをご覧ください。
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
この例の出力は次のようになります。
{"text":"*****************"}
リクエスト パラメータ
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
text | 匿名化するテキスト。 | 文字列 | なし | ○ |
mask | 機密データをマスクするために使用する文字。 | 文字列 | なし | ○ |
レスポンス
入力テキストの値は、指定された infoTypes から指定文字に置き換えられます。次に例を示します。
{"text":"*********"}
deidentifyWithTemplate
匿名化するテキストとその処理方法を構成するテンプレートを使用して、テキスト コンテンツ内の機密データを匿名化します。
テンプレートは、検査の目的や匿名化の方法などの構成を API 呼び出しの実装から分離するのに役立ちます。テンプレートを使用することで構成を再利用でき、ユーザー間、データセット間での一貫性が保たれます。
テンプレートで匿名化するコンテンツを表す infoTypes を指定します。infoType のリストについては、infoType 検出器リファレンスをご覧ください。匿名化でテンプレートの infoTypes
プロパティで指定されたテキストの部分をマスクします。
構文
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
"templateName" : "path-to-template"
}]]></Input>
例
次の例では、匿名化する入力は request.content
フロー変数で実行されるリクエストの本文です。
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "{request.content}"
"templateName" : "projects/[PROJECT_ID]/deidentifyTemplates/1231258663242"
}]]></Input>
この例の出力は匿名化されたリクエスト コンテンツです。
リクエスト パラメータ
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
text | 匿名化するテキスト。これは匿名化プロセスが作動する対象です。 | オブジェクト | なし | ○ |
templateName | 使用するテンプレート。これは、テンプレートへのパスで、形式は projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID となります。Google API でテンプレートを作成する場合、レスポンスの name プロパティ値を templateName として使用します。 |
文字列 | なし | ○ |
レスポンス
入力テキストの値は、指定された infoTypes から infoType 名に置き換えられます。
deidentifyWithType
テキスト コンテンツ内の機密データを、一致する各値を infoType の名前で置き換えることによって匿名化します。infoType のリストについては、infoType 検出器リファレンスをご覧ください。このアクションは、拡張機能の構成の infoTypes
プロパティで指定された text
の部分をマスクします。
次の例では、サービスによって電話番号が識別されると、その番号が infoType 自体の名前で置き換えられます。
入力テキスト:
John Smith, 123 Main St, Seattle, WA 98122, 206-555-0123.
処理後のテキスト:
John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.
構文
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
}]]></Input>
例
次の例では、マスク対象の入力は input.email.address
フロー変数に保存されたメールアドレスです。この特定の例をサポートするには、この拡張機能が EMAIL_ADDRESS infoType をサポートするように構成されている必要があります。infoType のリストについては、infoType 検出器リファレンスをご覧ください。
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.email.address}"
}]]></Input>
この例の出力は次のようになります。
{"text":"EMAIL_ADDRESS"}
リクエスト パラメータ
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
text | 匿名化するテキスト。 | 文字列 | なし | ○ |
レスポンス
入力テキストの値は、指定された infoTypes から infoType 名に置き換えられます。次に例を示します。
{"text":"EMAIL_ADDRESS"}
redactImage
infoType カテゴリのいずれかに分類されるテキストを秘匿化します。秘匿化されたコンテンツが検出されると、不透明な矩形で難読化されます。このアクションは、拡張機能の構成の infoTypes
プロパティで指定された image_data
の部分をマスクします。
infoType のリストについては、infoType 検出器リファレンスをご覧ください。
リクエスト パラメータ
<Action>redactImage</Action>
<Input><![CDATA[{
"image_data" : "base64-encoded-image-to-analyze",
"image_type" : "type-of-image"
}]]></Input>
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
image_data | base64 でエンコードされた画像データ。 | 文字列 | なし | ○ |
image_type | 画像タイプの定数。有効な値は、IMAGE_JPEG、IMAGE_BMP、IMAGE_PNG、IMAGE_SVG です。 | 文字列 | なし | ○ |
レスポンス
テキストが秘匿化された画像。
構成リファレンス
この拡張機能を API プロキシで使用するように構成してデプロイする場合は、以下のプロパティを使用します。Apigee Console で拡張機能を構成する手順については、拡張機能の追加と構成をご覧ください。
拡張機能の共通プロパティ
すべての拡張機能には次のプロパティがあります。
プロパティ | 説明 | デフォルト | 必須 |
---|---|---|---|
name |
この拡張機能に付ける名前。 | なし | ○ |
packageName |
Apigee Edge から提供された拡張機能パッケージの名前。 | なし | ○ |
version |
拡張機能を構成する拡張機能パッケージのバージョン番号。 | なし | ○ |
configuration |
追加する拡張機能に固有の構成値。この拡張機能パッケージのプロパティをご覧ください。 | なし | ○ |
この拡張機能パッケージのプロパティ
この拡張機能に固有の以下の構成プロパティに値を指定します。
プロパティ | 説明 | デフォルト | 必須 |
---|---|---|---|
projectId | Cloud Data Loss Prevention API が有効にされている GCP プロジェクトのプロジェクト ID。 | なし | ○ |
infoType | 機密データの情報タイプ。省略すると、サービスはすべての組み込みタイプを検出します。Google Cloud DLP サービスがサポートする infoTypes のリストについては、infoType 検出器リファレンスをご覧ください。 | なし | × |
credentials | Apigee Edge コンソール内で入力する場合は、サービス アカウントのキーファイルの内容です。管理 API を使用して設定する場合は、サービス アカウント キー のファイルから生成された、base64 でエンコード済みの値です。 | なし | ○ |