Sensitive Data Protection の組み込みの infoType 検出機能は、一般的なタイプのセンシティブ データを検出するのに有効です。カスタムの infoType 検出器を使用すると、独自の機密データ検出器を自由にカスタマイズできます。検査ルールによって、特定の infoType 検出機能の検出メカニズムを変更し、Sensitive Data Protection から返されるスキャン結果を絞り込むことができます。
組み込みの infoType 検出器から返される結果から値を除外または追加する場合は、新しいカスタム infoType を最初から作成し、Sensitive Data Protection が検索する基準をすべて定義します。また、Sensitive Data Protection の組み込みまたはカスタムの検出機能から返される検出結果を特定の基準で絞り込むこともできます。これを行うには、ノイズの低減、適合率と再現率の増加、スキャン結果の確実性調整に役立つ検査ルールを追加します。
このトピックでは、2 種類の検査ルールを使用して、指定したカスタム条件に基づいて特定の検索結果を除外または追加する方法について説明します。また、既存の infoType 検出器を変更する場合のシナリオをいくつか紹介します。
次の種類の検査ルールを使用できます。
- 排他ルール。誤った検出結果や不要な検出結果を除外するのに役立ちます。
- 起動ワードルール。テキスト コンテンツで追加の検出結果を検出するのに役立ちます。
- 調整ルール。検出結果が表示されるコンテキストに基づいて、検出結果の可能性を調整するのに役立ちます。
ターゲットとコンテキストの infoType
このドキュメントでは、ルールセット内の infoType を参照するために次の用語を使用します。
- ターゲット infoType: ルールセットで定義された条件が満たされたときに、機密データの保護が除外または調整する infoType。
- コンテキスト infoType: 検出された場合に、ターゲット infoType に関するコンテキストを提供する infoType。Sensitive Data Protection は、コンテキスト infoType を使用して、ターゲット infoType を除外または調整する必要があるかどうかを判断します。
ルールの順序付けとチェーン
Sensitive Data Protection では、ルールセットで指定した順序でルールが適用されます。したがって、ルールの順序は Sensitive Data Protection オペレーションの結果に影響する可能性があります。例については、このドキュメントの健康に関するドキュメントで個人名の可能性を高め、健康に関するドキュメントを除外するをご覧ください。
排他ルール
除外ルールは、次のような場合に役立ちます。
- infoType 検出器の重複によって生じた、重複したスキャン一致を結果から除外する場合。たとえば、メールアドレスと電話番号をスキャンする際に、電話番号の入ったメールアドレス(「206-555-0764@example.org」など)によって 2 つの結果がヒットする場合です。
- スキャン結果にノイズが発生している場合。たとえば、適正なメールアドレスのスキャンで、同じ仮のメールアドレス(「example@example.com」など)またはドメイン(「example.com」など)が無数に返される場合です。
- 結果から除外する用語や、フレーズ、文字の組み合わせのリストがある場合。
- 結果からデータ列全体を除外する必要がある場合。
- 正規表現と一致する文字列に近い検出結果を除外する必要があります。
- 画像内の他の検出結果との空間的な関係に基づいて、画像内の検出結果を除外する。
除外ルール API の概要
機密データの保護では、ExclusionRule オブジェクトで除外ルールを定義します。ExclusionRule で、次のいずれかを指定します。
Dictionaryオブジェクト。結果から除外する文字列のリストが含まれます。Regexオブジェクト。正規表現パターンを定義します。パターンに一致する文字列は結果から除外されます。ExcludeInfoTypesオブジェクト。infoType 検出器の配列が含まれます。ここにリストされている infoType 検出器のいずれかと検索結果が一致する場合、その検索結果は結果から除外されます。ExcludeByHotwordオブジェクト。これには、次のものが含まれます。- 起動ワードを定義する正規表現。
- 起動ワードの検出結果への近接度を定義する近接値。
検出結果が設定された近接範囲内にある場合、その検出結果は結果から除外されます。テーブルの場合、この除外ルールタイプを使用すると、結果からデータ列全体を除外できます。
ExcludeByImageFindingsオブジェクト。これには、次のものが含まれます。コンテキスト infoType のリスト。ターゲット infoType の検出結果を除外するかどうかを判断するために使用されます。
ターゲットとコンテキストの検出結果の境界ボックス間に必要な空間関係を指定する
ImageContainmentTypeオブジェクト。この要件が満たされていない場合、Sensitive Data Protection はターゲット infoType の検出結果を除外しません。
コンテキスト infoType の境界ボックスがターゲット infoType の検出結果と指定された関係にある場合、Sensitive Data Protection はターゲット infoType の検出結果を除外します。
ExcludeByImageFindingsを使用する場合は、matchingTypeフィールドをMATCHING_TYPE_RULE_SPECIFICに設定する必要があります。ExcludeByImageFindingsは TIFF 画像ではサポートされていません。TIFF 画像にこのルールを含むcontent.inspectリクエストは失敗します。
除外ルールのシナリオ例
次の各 JSON スニペットは、特定のシナリオにおける Sensitive Data Protection の構成方法を示しています。
EMAIL_ADDRESS 検出器スキャンから特定のメールアドレスを除外する
次の JSON スニペットと複数の言語のコードは、EMAIL_ADDRESS infoType 検出機能を使用するスキャンで、「example@example.com」との一致を避けるように、InspectConfig を使用して Sensitive Data Protection に指示する方法を示しています。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
...
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"rules":[
{
"exclusionRule":{
"dictionary":{
"wordList":{
"words":[
"example@example.com"
]
}
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
]
}
...
EMAIL_ADDRESS 検出器スキャンから特定のドメインで終わるメールアドレスを除外する
次の JSON スニペットと複数の言語のコードは、EMAIL_ADDRESS infoType 検出機能を使用するスキャンで、「@example.com」で終わるメールアドレスとの一致を避けるように、InspectConfig を使用して Sensitive Data Protection に指示する方法を示しています。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
...
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"rules":[
{
"exclusionRule":{
"regex":{
"pattern":".+@example.com"
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
]
}
...
部分文字列「TEST」を含むスキャン一致をすべて除外する
次の JSON スニペットと複数の言語で記述されたコードは、InspectConfig を使用して、トークン「TEST」を含むスキャン結果を指定した infoType のリストから除外するように機密データの保護へ示す方法を表したものです。
これは部分文字列ではなくトークンとして「TEST」と照合されるため、「TEST@email.com」のような文字列は一致しますが、「TESTER@email.com」は一致しないことにご注意ください。部分文字列で照合する場合は、辞書ではなく排他ルールで正規表現を使用します。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
...
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
},
{
"name":"DOMAIN_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"PERSON_NAME"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
},
{
"name":"DOMAIN_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"exclusionRule":{
"dictionary":{
"wordList":{
"words":[
"TEST"
]
}
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
カスタム infoType 検出機能のスキャンで部分文字列「Jimmy」を含むスキャンの一致を除外する
次の JSON スニペットと複数の言語のコードは、指定されたカスタム正規表現検出機能を使用するスキャンで、「Jimmy」という名前との一致を避けるように、InspectConfig を使用して Sensitive Data Protection に指示する方法を示しています。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
...
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"CUSTOM_NAME_DETECTOR"
},
"regex":{
"pattern":"[A-Z][a-z]{1,15}, [A-Z][a-z]{1,15}"
}
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"CUSTOM_NAME_DETECTOR"
}
],
"rules":[
{
"exclusionRule":{
"dictionary":{
"wordList":{
"words":[
"Jimmy"
]
}
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
PERSON_NAME 検出器スキャンからカスタム検出器と重複するスキャン一致を除外する
このシナリオでは、スニペットの最初の部分で定義されているカスタム正規表現検出機能を使用したスキャンで一致した結果を、PERSON_NAME 組み込み検出機能を使用した Sensitive Data Protection スキャンで一致させないようにします。
次の JSON スニペットと複数の言語のコードは、InspectConfig でカスタム正規表現検出機能と排他ルールの両方を指定しています。カスタム正規表現検出器では、結果から除外する名前を指定しています。排他ルールでは、PERSON_NAME のスキャンから返された結果がカスタム正規表現検出機能にも一致する場合、それらの結果は除外されるように指定します。この例で、VIP_DETECTOR は EXCLUSION_TYPE_EXCLUDE として指定されているため、結果自体が生成されません。影響があるのは PERSON_NAME 検出器によって生成される結果のみです。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
...
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"customInfoTypes":[
{
"infoType":{
"name":"VIP_DETECTOR"
},
"regex":{
"pattern":"Dana Williams|Quinn Garcia"
},
"exclusionType":"EXCLUSION_TYPE_EXCLUDE"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"exclusionRule":{
"excludeInfoTypes":{
"infoTypes":[
{
"name":"VIP_DETECTOR"
}
]
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
]
}
...
EMAIL_ADDRESS 検出器でも一致する場合に PERSON_NAME 検出器の一致を除外する
次の JSON スニペットと複数の言語のコードは、EMAIL_ADDRESS 検出器の一致が PERSON_NAME 検出器の一致と重複した場合に 1 つの一致のみを返すように、InspectConfig を使用して機密データの保護に指示する方法を示しています。こうすることで、「james@example.com」などのメールアドレスが PERSON_NAME 検出器と EMAIL_ADDRESS 検出器の両方で一致する状況を避けられます。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
...
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
},
{
"name":"EMAIL_ADDRESS"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"exclusionRule":{
"excludeInfoTypes":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
DOMAIN_NAME 検出器スキャンでメールアドレスの一部であるドメイン名の一致を除外する
次の JSON スニペットと複数の言語のコードは、EMAIL_ADDRESS 検出機能スキャンの一致と重複しない場合に、DOMAIN_NAME 検出機能スキャンの一致のみを返すように、InspectConfig を使用して Sensitive Data Protection に指示する方法を示しています。このシナリオで、メインのスキャンは DOMAIN_NAME 検出器スキャンです。ドメイン名がメールアドレスで使用されている場合、検出結果にドメイン名の一致が返されないようにします。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
...
"inspectConfig":{
"infoTypes":[
{
"name":"DOMAIN_NAME"
},
{
"name":"EMAIL_ADDRESS"
}
],
"customInfoTypes":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"exclusionType":"EXCLUSION_TYPE_EXCLUDE"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"DOMAIN_NAME"
}
],
"rules":[
{
"exclusionRule":{
"excludeInfoTypes":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
文字列の近くにある一致を省略する
次の例は、単語「SKU」が検出結果の前後 10 文字以内にある場合に、US_SOCIAL_SECURITY_NUMBER infoType 検出器で一致を除外する方法を示しています。
排他ルールにより、この例では 222-22-2222 は米国の社会保障番号として分類されません。
{
"item": {
"value": "The customer sent the product SKU 222-22-2222"
},
"inspectConfig": {
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"rules": [
{
"exclusionRule": {
"excludeByHotword": {
"hotwordRegex": {
"pattern": "(SKU)"
},
"proximity": {
"windowBefore": 10,
"windowAfter": 10
}
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
],
"includeQuote": true
}
}
データの列全体の検出結果を除外する
次の例は、列の名前が正規表現と一致する場合に、表形式データの列全体で検出結果を除外する方法を示しています。ここでは、US_SOCIAL_SECURITY_NUMBER infoType 検出器に一致する結果が [Fake Social Security Number] 列に含まれている場合、その検出結果は結果から除外されます。
この例では、111-11-1111 が [Fake Social Security Number] 列にあるため、222-22-2222 のみを返します。
{
"item": {
"table": {
"headers": [
{
"name": "Fake Social Security Number"
},
{
"name": "Real Social Security Number"
}
],
"rows": [
{
"values": [
{
"stringValue": "111-11-1111"
},
{
"stringValue": "222-22-2222"
}
]
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"includeQuote": true,
"ruleSet": [
{
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"rules": [
{
"exclusionRule": {
"excludeByHotword": {
"hotwordRegex": {
"pattern": "(Fake Social Security Number)"
},
"proximity": {
"windowBefore": 1
}
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
],
"minLikelihood": "POSSIBLE"
}
}
空間的関係に基づいて画像内の検出結果を省略する
次の JSON スニペットは、他の検出されたオブジェクトとの空間的な関係に基づいて、画像内の検出結果を除外するように機密データの保護を構成する方法を示しています。
パスポートの一部である場合は、人物の検出を除外する
このルールでは、パスポートの検出結果(OBJECT_TYPE/PERSON/PASSPORT)に含まれる人物の検出結果(OBJECT_TYPE/PERSON)を除外します。
{
"inspectConfig": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON"
},
{
"name": "OBJECT_TYPE/PERSON/PASSPORT"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON"
}
],
"rules": [
{
"exclusionRule": {
"excludeByImageFindings": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON/PASSPORT"
}
],
"imageContainmentType": {
"encloses": {}
}
},
"matchingType": "MATCHING_TYPE_RULE_SPECIFIC"
}
}
]
}
]
}
}
車両識別番号が含まれている場合は、ナンバー プレートの検出結果を除外する
このルールでは、VEHICLE_IDENTIFICATION_NUMBER の検出結果が完全に含まれている場合、ナンバー プレート(OBJECT_TYPE/LICENSE_PLATE)の検出結果が除外されます。
{
"inspectConfig": {
"infoTypes": [
{
"name": "OBJECT_TYPE/LICENSE_PLATE"
},
{
"name": "VEHICLE_IDENTIFICATION_NUMBER"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "OBJECT_TYPE/LICENSE_PLATE"
}
],
"rules": [
{
"exclusionRule": {
"excludeByImageFindings": {
"infoTypes": [
{
"name": "VEHICLE_IDENTIFICATION_NUMBER"
}
],
"imageContainmentType": {
"fullyInside": {}
}
},
"matchingType": "MATCHING_TYPE_RULE_SPECIFIC"
}
}
]
}
]
}
}
起動ワードルール
起動ワードルールは、次のような場合に役立ちます。
- スキャンの一致に割り当てられた可能性の値を、ホットワードへの一致の近接度に基づいて変更したい場合。たとえば、「patient(患者)」という単語への患者名の近接度に応じて、その名前に対する一致の可能性値を高く設定したい場合です。
- 構造化された表形式データを調べる際、列のヘッダー名に基づいて一致に割り当てられた可能性の値を変更したい場合。たとえば、ヘッダー
ACCOUNT_IDの列のデータに対し、US_SOCIAL_SECURITY_NUMBERの可能性値を高く設定したい場合です。
起動ワードルール API の概要
Sensitive Data Protection の InspectionRule オブジェクト内で、HotwordRule オブジェクトを指定します。このオブジェクトでは、ホットワードへの一定の近接度の範囲内において、検出結果の可能性の値を調整します。
InspectionRule オブジェクトは、ルールセットが適用される infoType 検出器のリストとともに、「ルールセット」として InspectionRuleSet オブジェクトにグループ化されます。ルールセット内のルールは、指定された順序で適用されます。
起動ワードルールのシナリオ例
次のコード スニペットは、起動ワードルールの構成方法を示しています。
ホットワード「patient」が近くにある場合に PERSON_NAME の一致の可能性を高める
次の JSON スニペットと複数の言語のコードは、医療データベースで患者名をスキャンするために、InspectConfig プロパティを使用する方法を示しています。Sensitive Data Protection の組み込み PERSON_NAME infoType 検出機能を使用できますが、その場合、Sensitive Data Protection では、患者名だけでなくすべての人の名前が一致してしまいます。これを修正するには、起動ワードルールを組み込んで、一致候補の最初の文字から特定の文字の近接度の範囲内で単語「patient」を探します。このパターンに一致した結果は特殊な基準を満たしているので、可能性として「very likely」を割り当てることができます。InspectConfig 内で最低限の Likelihood を VERY_LIKELY に設定しておくと、この構成に一致するもののみが結果で返されるようになります。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
...
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"patient"
},
"proximity":{
"windowBefore":50
},
"likelihoodAdjustment":{
"fixedLikelihood":"VERY_LIKELY"
}
}
}
]
}
],
"minLikelihood":"VERY_LIKELY"
}
...
ホットワードの詳細については、一致の可能性のカスタマイズをご覧ください。
調整ルール
調整ルールを使用すると、検出結果が表示されるコンテキストに基づいて、検出結果の可能性値を増減(ブーストとも呼ばれます)することで、検出精度を向上させることができます。
調整ルールは、次のような場合に役立ちます。
検出結果がコンテキスト infoType の検出結果と重複する場合に、ターゲット infoType の検出結果の可能性値を変更します。たとえば、
DOCUMENT_TYPE/CONTEXT/HEALTHに一致するドキュメントで検出されたPERSON_NAME検出結果の可能性値を増やします。画像内で検出された他の検出結果との空間的な関係に基づいて、ターゲット infoType の検出結果の可能性値を変更する。たとえば、
OBJECT_TYPE/PERSON/PHOTO_ID_CARDと一致する画像内で検出されたGENERIC_IDの検出結果の可能性値を増やします。
調整ルール API の概要
Sensitive Data Protection では、AdjustmentRule オブジェクトで調整ルールを定義します。AdjustmentRule で、次のものを指定します。
次のいずれかになります。
AdjustByMatchingInfoTypesオブジェクト。ターゲット infoType の検出結果がコンテキスト infoType の検出結果と重複する場合に、ターゲット infoType の検出結果の可能性値を調整します。このオブジェクトには次のものが含まれます。- コンテキスト infoType のリスト。ターゲット infoType の検出結果を調整するかどうかを判断するために使用されます。
- コンテキスト infoType の
min_likelihood値。検出されたコンテキスト検出結果の可能性の値がこの値より低い場合、Sensitive Data Protection はターゲット検出結果の可能性を調整しません。 matching_type値。MATCHING_TYPE_PARTIAL_MATCHに設定する必要があります。
AdjustByImageFindingsオブジェクト。コンテキスト infoType の境界ボックスがターゲット infoType の検出結果と指定された関係にある場合、ターゲット infoType の検出結果の可能性値を調整します。このオブジェクトには次のものが含まれます。コンテキスト infoType のリスト。ターゲット infoType の検出結果を調整するかどうかを判断するために使用されます。
ImageContainmentTypeオブジェクト。ターゲットとコンテキストの検出結果の境界ボックス間に必要な空間関係を指定します。この要件が満たされていない場合、Sensitive Data Protection はターゲット infoType の検出結果の可能性を調整しません。コンテキスト infoType の
min_likelihood値。検出されたコンテキスト検出結果の可能性の値がこの値より低い場合、Sensitive Data Protection はターゲット検出結果の可能性を調整しません。
AdjustByImageFindingsは TIFF 画像ではサポートされていません。TIFF 画像にこのルールを含むcontent.inspectリクエストは失敗します。
likelihood_adjustmentオブジェクト。新しい可能性を固定値または相対調整として指定します。
調整ルールのシナリオ例
次の JSON スニペットは、さまざまなシナリオで調整ルールを構成する方法を示しています。
健康に関するドキュメントで使用される場合、人名の可能性を高める
次の例では、の検出結果が DOCUMENT_TYPE/CONTEXT/HEALTH
の検出結果と重複する場合、PERSON_NAME の検出結果の可能性値を
VERY_LIKELY に引き上げます。
{
"parent": "projects/PROJECT_ID",
"inspectConfig": {
"infoTypes": [
{
"name": "PERSON_NAME"
},
{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "PERSON_NAME"
}
],
"rules": [
{
"adjustmentRule": {
"adjustByMatchingInfoTypes": {
"infoTypes": [
{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}
],
"minLikelihood": "POSSIBLE",
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
},
"item": {
"value": "My name is John and my arm is broken."
}
}
PROJECT_ID は、リクエストに関連付けられたプロジェクトの ID に置き換えます。
健康に関するドキュメントで個人名の可能性を高め、健康に関するドキュメントを除外する
次の例では、 の検出結果が DOCUMENT_TYPE/CONTEXT/HEALTH
の検出結果と重複する場合、PERSON_NAME の検出結果の可能性値を
VERY_LIKELY に引き上げます。ノイズを減らすため、この例では 2 番目のルールを指定しています。このルールでは、DOCUMENT_TYPE/CONTEXT/HEALTH の検出結果が検査結果から除外されます。
ルールセット内のルールを指定する順序は重要です。この例では、調整ルールが排他ルールの前に指定されているため、DOCUMENT_TYPE/CONTEXT/HEALTH の検出結果を使用して調整ルールにコンテキストを提供できます。除外ルールを最初に指定すると、DOCUMENT_TYPE/CONTEXT/HEALTH の検出結果は、調整ルールにコンテキストを提供するために使用される前に、結果セットから除外されます。
{
"parent": "projects/PROJECT_ID",
"inspectConfig": {
"infoTypes": [{
"name": "PERSON_NAME"
}, {
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}],
"minLikelihood": "VERY_UNLIKELY",
"ruleSet": [{
"infoTypes": [{
"name": "PERSON_NAME"
}],
"rules": [{
"adjustmentRule": {
"adjustByMatchingInfoTypes": {
"infoTypes": [{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}],
"minLikelihood": "VERY_UNLIKELY",
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}]
}, {
"infoTypes": [{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}],
"rules": [{
"exclusionRule": {
"excludeInfoTypes": {
"infoTypes": [{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}]
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}]
}]
},
"item": {
"value": "My name is John and my arm is broken."
}
}
PROJECT_ID は、リクエストに関連付けられたプロジェクトの ID に置き換えます。
写真付き身分証明書の人物の可能性を高める
次の例では、OBJECT_TYPE/PERSON/PHOTO_ID_CARD 検出結果の境界ボックス内に OBJECT_TYPE/PERSON 検出結果が表示された場合、その検出結果の可能性値を VERY_LIKELY に引き上げます。
...
"inspectConfig": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON"
},
{
"name": "OBJECT_TYPE/PERSON/PHOTO_ID_CARD"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON"
}
],
"rules": [
{
"adjustmentRule": {
"adjustByImageFindings": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON/PHOTO_ID_CARD"
}
],
"imageContainmentType": {
"encloses": {}
},
"minLikelihood": "POSSIBLE"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
}
...
個人識別子を含むパスポートの可能性を高める
次の例では、PERSON_NAME または DATE_OF_BIRTH の検出結果が完全に含まれている場合、OBJECT_TYPE/PERSON/PASSPORT の検出結果の可能性値を VERY_LIKELY に引き上げます。
...
"inspectConfig": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON/PASSPORT"
},
{
"name": "PERSON_NAME"
},
{
"name": "DATE_OF_BIRTH"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON/PASSPORT"
}
],
"rules": [
{
"adjustmentRule": {
"adjustByImageFindings": {
"infoTypes": [
{
"name": "PERSON_NAME"
},
{
"name": "DATE_OF_BIRTH"
}
],
"imageContainmentType": {
"fullyInside": {}
},
"minLikelihood": "POSSIBLE"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
}
...
複数の検査ルールのシナリオ
次の InspectConfig JSON スニペットと複数の言語のコードは、除外ルールと起動ワードルールの両方を適用する方法を示しています。このスニペットのルールセットには、起動ワードルールと、辞書および正規表現の排他ルールの両方が含まれています。rules 要素内の配列に 4 つのルールが指定されている点に注目してください。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection に認証するには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
...
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"patient"
},
"proximity":{
"windowBefore":10
},
"likelihoodAdjustment":{
"fixedLikelihood":"VERY_LIKELY"
}
}
},
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"doctor"
},
"proximity":{
"windowBefore":10
},
"likelihoodAdjustment":{
"fixedLikelihood":"UNLIKELY"
}
}
},
{
"exclusionRule":{
"dictionary":{
"wordList":{
"words":[
"Quasimodo"
]
}
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
},
{
"exclusionRule":{
"regex":{
"pattern":"REDACTED"
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
infoType 検出器の重複
組み込みの infoType 検出機能と同じ名前のカスタム infoType 検出機能を定義できます。「起動ワードルールのシナリオ例」セクションの例に示すように、組み込みの infoType と同じ名前のカスタム infoType 検出機能を作成すると、新しい infoType 検出機能によって検出された検出結果が、組み込み検出機能によって検出された検出結果に追加されます。この現象は、組み込みの infoType が InspectConfig オブジェクト内の infoType のリストに指定されている場合に限り発生します。
新しいカスタム infoType 検出器を作成するときは、サンプル コンテンツで十分にテストして、意図したとおりに動作することを確認します。