起動ワードルールを使用すると、組み込みとカスタムの infoType 検出器を強力なコンテキスト ルールで拡張できます起動ワードルールは、検出結果の近くで起動ワードがあるかどうかに応じて、検出結果の可能性を調整するように Sensitive Data Protection に指示します。起動ワードルールは、ルールセットで指定される検査ルールの一種です。各ルールは、組み込みまたはカスタムの infoType のセットに適用されます。
起動ワードルールの詳細
infoType 検出器にはホットワード ルールを 1 つ以上含めることができます。あるいは、まったく含めなくてもかまいません。検査構成で、次のように rules 配列内に各 HotwordRule オブジェクトを定義します。
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"REGEX_PATTERN"
},
"proximity":{
"windowAfter":"NUM_CHARS_TO_CONSIDER_AFTER_FINDING",
"windowBefore":"NUM_CHARS_TO_CONSIDER_BEFORE_FINDING"
}
"likelihoodAdjustment":{
"fixedLikelihood":"LIKELIHOOD_VALUE"
-- OR --
"relativeLikelihood":"LIKELIHOOD_ADJUSTMENT"
},
}
},
...
]
次のように置き換えます。
- REGEX_PATTERN: 何をホットワードとして限定するかを定義する正規表現(
Regexオブジェクト)。 - NUM_CHARS_TO_CONSIDER_AFTER_FINDING: 検出結果の後の文字の範囲。機密データの保護はこの範囲を分析して、結果の近くで起動ワードが発生しているかどうかを確認します。
NUM_CHARS_TO_CONSIDER_BEFORE_FINDING: 検出結果の前の文字の範囲。機密データの保護はこの範囲を分析して、結果の近くで起動ワードが発生しているかどうかを確認します。
LIKELIHOOD_VALUE: 結果を設定する固定された
Likelihoodレベル。LIKELIHOOD_ADJUSTMENT: Sensitive Data Protection が結果の可能性を増減させる必要がある数値。正の整数は可能性レベルを増やし、負の整数は減らします。たとえば、検出ルールを適用しない状態で結果が
POSSIBLEになる場合に、relativeLikelihoodの値が 1 であれば、その結果はLIKELYにアップグレードされます。relativeLikelihoodが -1 の場合、検出結果はUNLIKELYにダウングレードされます。可能性は、VERY_UNLIKELYを下回ることも、VERY_LIKELYを超えることもできません。この場合、可能性レベルは変わりません。たとえば、基本の可能性がVERY_LIKELYで、relativeLikelihoodが 1 の場合、最終的な可能性はVERY_LIKELYのままです。
ホットワードの例: カルテ番号を照合する
カルテ番号(MRN)などのカスタム infoType を「###-#-#####」の形式で検出するとします。また、Sensitive Data Protection で、ホットワード「MRN」に続く各検出結果の一致の可能性を高める必要があります。
値の例:
- 123-4-56789 は
POSSIBLEとして一致します。 - MRN 123-4-56789 は
VERY_LIKELYとして一致します。
次の JSON の例とコード スニペットは、起動ワードルールの構成方法を示しています。この例では、カスタム正規表現検出機能を使用します。
この例では、次の点に注意してください。
- このリクエストでは、正規表現
[0-9]{3}-[0-9]{1}-[0-9]{5}と一致する文字列の検出器であるC_MRNカスタム infoType が定義されています。 - 正規表現
(?i)(mrn|medical)(?-i)は起動ワードを定義します。Sensitive Data Protection は、proximityフィールドで定義された文字の範囲内でこの起動ワードを検索します。 - セット
proximity内に起動ワードがあるC_MRNの検出結果ごとに、Sensitive Data Protection は可能性レベルを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 クイックスタートをご覧ください。
HTTP メソッドと URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
PROJECT_ID の部分は、プロジェクト ID で置き換えます。
JSON 入力:
{
"item":{
"value":"Patient's MRN 444-5-22222 and just a number 333-2-33333"
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"C_MRN"
},
"regex":{
"pattern":"[0-9]{3}-[0-9]{1}-[0-9]{5}"
},
"likelihood":"POSSIBLE",
}
],
"ruleSet":[
{
"infoTypes": [{"name" : "C_MRN"}],
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"(?i)(mrn|medical)(?-i)"
},
"likelihoodAdjustment":{
"fixedLikelihood":"VERY_LIKELY"
},
"proximity":{
"windowBefore":10
}
}
}
]
}
]
}
}
JSON 出力(一部を省略):
{
"result": {
"findings": [
{
"infoType": {
"name": "C_MRN"
},
"likelihood": "VERY_LIKELY",
"location": {
"byteRange": {
"start": "14",
"end": "25"
},
"codepointRange": { ... }
}
},
{
"infoType": {
"name": "C_MRN"
},
"likelihood": "POSSIBLE",
"byteRange": {
"start": "44",
"end": "55"
},
"codepointRange": { ... }
}
}
]
}
}
出力は、Sensitive Data Protection が C_MRN カスタム infoType 検出機能を使用して、医療記録番号を正しく識別したことを示しています。さらに、起動ワードルールのコンテキスト照合により、Sensitive Data Protection は設定どおり、セットproximity内の MRN を持つ最初の結果に可能性VERY_LIKELYを割り当てました。2 番目の結果ではコンテキストが不足しているため、likelihood は POSSIBLE に留まっています。
起動ワードの例: テーブル列に一致する可能性を設定する
この例では、データの列全体に一致する可能性を設定する方法を示します。この方法は、たとえば、検査結果からデータの列を除外する場合に役立ちます。
以下のテーブルを例に取り上げます。1 つの列にはプレースホルダの社会保障番号(SSN)が含まれ、もう 1 つの列には実際の SSN が含まれています。
| 偽の社会保障番号 | 実際の社会保障番号 |
|---|---|
| 111-11-1111 | 222-22-2222 |
検査結果のノイズを最小限に抑えるには、Fake Social Security Number 列の検出結果を除外します。この列に低い可能性レベルを割り当てます。次に、その可能性レベルのマッチを結果から除外するようにリクエストを設定します。
この例では、次の点に注意してください。
- 起動ワードルールが
US_SOCIAL_SECURITY_NUMBERinfoType に適用されます。 - 起動ワードの正規表現
(Fake Social Security Number)には、プレースホルダの値を持つ列の名前が含まれます。 windowBeforeプロパティは 1 に設定されています。つまり、起動ワードは列ヘッダーにあり、検出結果は列内に存在する必要があります。- この列の
US_SOCIAL_SECURITY_NUMBERの各検出結果について、Sensitive Data Protection により可能性レベルがVERY_UNLIKELYに設定されます。 minLikelihoodプロパティはPOSSIBLEに設定されています。つまり、可能性レベルがPOSSIBLE未満の検出結果は検査結果から除外されます。
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
HTTP メソッドと URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
PROJECT_ID の部分は、プロジェクト ID で置き換えます。
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 入力:{
"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": [
{
"hotwordRule": {
"hotwordRegex": {
"pattern": "(Fake Social Security Number)"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_UNLIKELY"
},
"proximity": {
"windowBefore": 1
}
}
}
]
}
],
"minLikelihood": "POSSIBLE"
}
}
JSON 出力:
{
"result": {
"findings": [
{
"quote": "222-22-2222",
"infoType": {
"name": "US_SOCIAL_SECURITY_NUMBER"
},
"likelihood": "VERY_LIKELY",
"location": {
"byteRange": {
"end": "11"
},
"codepointRange": {
"end": "11"
},
"contentLocations": [
{
"recordLocation": {
"fieldId": {
"name": "Real Social Security Number"
},
"tableLocation": {}
}
}
]
},
"createTime": "TIMESTAMP",
"findingId": "TIMESTAMP"
}
]
}
}
Fake Social Security Number 列の値 111-11-1111 は起動ワードルールと一致したため、Sensitive Data Protection は VERY_UNLIKELY 可能性レベルを割り当てます。このレベルは、検査構成(POSSIBLE)で設定された最低の可能性よりも低いため、この検出結果は検査結果から除外されます。
ルールセットを削除することで、この例を試すことができます。Sensitive Data Protection の結果には 111-11-1111 が含まれています。