Sensitive Data Protection では、情報タイプ(infoType)を使用してスキャンする対象を定義します。infoType は、名前、メールアドレス、電話番号、識別番号、クレジット カード番号などの機密データのタイプを表します。
Sensitive Data Protection で定義されているすべての infoType には、対応する検出機能があります。Sensitive Data Protection では、スキャンの構成に含まれる infoType 検出機能を使用して、検査の対象と検出結果の変換方法が決定されます。infoType の名前は、スキャン結果の表示や報告時にも使用されます。
このトピックでは infoType と infoType 検出器について詳しく説明し、Sensitive Data Protection を使用して機密データの内容をスキャンする際に infoType 検出器をどのように使用するかを紹介します。
匿名化を使用するタイミング
一般的なユースケースは次のとおりです。
- 外部の分析パートナーとデータを共有する: 第三者のパートナーや研究者が平文の個人情報にアクセスすることなくデータセットを分析できるように、直接識別子(名前、国民識別番号、口座番号など)をトークン化または仮名化します。
- 本番環境データセットを非本番環境にステージングする: 本番環境データベースを開発環境、テスト環境、トレーニング環境に複製する前に、機密性の高い顧客属性をマスクまたは一般化します。
- プライバシーに関する規制要件を遵守する: BigQuery と Cloud Storage のリポジトリ全体で、個人を特定できる機密情報(PII)と保護医療情報(PHI)を難読化し、GDPR や HIPAA などのコンプライアンス基準を満たします。
- ストリーミング イベント パイプラインで機密フィールドをサニタイズする: イベントが Pub/Sub を通過する際に、機密レコードをリアルタイムで変換してから、ダウンストリームのウェアハウスまたはアプリケーション データベースにデータを永続化します。
- リレーショナル データセット全体で参照整合性を維持する: 決定論的暗号変換を使用して、基盤となる識別子を公開することなく、異なるシステム間で安全な結合とテーブル間の分析を可能にします。
infoType 検出器の指定
コンテンツをスキャンするように Sensitive Data Protection を設定する場合は、スキャンの構成で使用する infoType 検出機能を含めます。
たとえば、次の JSON は DLP API に対する単純なスキャン リクエストを示しています。inspectConfig で PHONE_NUMBER 検出機能が指定されています。これは Sensitive Data Protection に対して、指定された文字列内で電話番号をスキャンするように指示しています。
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:inspect?key={YOUR_API_KEY}
{
"item":{
"value":"My phone number is (415) 555-0890"
},
"inspectConfig":{
"includeQuote":true,
"minLikelihood":"POSSIBLE",
"infoTypes":{
"name":"PHONE_NUMBER"
}
}
}
上記のリクエストから、次の結果が返されます。
{
"result":{
"findings":[
{
"quote":"(415) 555-0890",
"infoType":{
"name":"PHONE_NUMBER"
},
"likelihood":"VERY_LIKELY",
"location":{
"byteRange":{
"start":"19",
"end":"33"
},
"codepointRange":{
"start":"19",
"end":"33"
}
},
"createTime":"2018-10-29T23:46:34.535Z"
}
]
}
}
スキャン構成では必ず infoType を指定します。infoType を指定しないと、Sensitive Data Protection はデフォルトの infoType リストを使用します。デフォルトの infoType のスキャンは、スキャンするコンテンツの量によって時間またはコストが大幅に増えることがあります。
infoType 検出器を使用してコンテンツをスキャンする方法の詳細については、入門ガイドの検査、秘匿化、匿名化に関するトピックをご覧ください。
infoType 検出器の種類
情報タイプ(「infoType」)検出機能は、Sensitive Data Protection がセンシティブ データ検出するために使用するメカニズムです。
Sensitive Data Protection には、いくつかの種類の infoType 検出機能があります。ここではすべての種類をまとめています。
- 組み込みの infoType 検出機能は、Sensitive Data Protection に組み込まれています。国またはリージョンに固有の機密データのタイプと、世界中のどこでも適用できるデータタイプに対応する検出器が含まれています。
- カスタム infoType 検出器は、ユーザー自身が作成する検出器です。カスタム infoType 検出器には、次の 3 種類があります。
- 標準のカスタム辞書検出器は、Sensitive Data Protection に対応する単純な単語リストです。含まれる単語やフレーズの数が数万個までのリストでは、標準のカスタム辞書検出器を使用します。単語リストが大幅に変更される予定がない場合、標準のカスタム辞書検出器の使用をおすすめします。
- 格納されるカスタム辞書検出器は、Cloud Storage または BigQuery に保存されている単語やフレーズの大規模なリストを使用して、Sensitive Data Protection によって生成されます。含まれる単語やフレーズの数が数千万個までの大規模なリストでは、格納されるカスタム辞書検出器を使用します。
- 正規表現(regex)検出器を使用すると、機密データの保護は正規表現パターンに基づいて一致を検出できます。
スキャン結果を絞り込むには、検査ルールを作成します。
組み込みの infoType 検出器
組み込みの infoType 検出器は Sensitive Data Protection に組み込まれています。この種類には、国や地域に固有の機密データタイプに対応する検出器が含まれています。機密データタイプとしては、フランスの国民登録番号(NIR)(FRANCE_NIR)、英国の運転免許証番号(UK_DRIVERS_LICENSE_NUMBER)、米国の社会保障番号(US_SOCIAL_SECURITY_NUMBER)などがあります。また、個人名(PERSON_NAME)、電話番号(PHONE_NUMBER)、メールアドレス(EMAIL_ADDRESS)、クレジット カード番号(CREDIT_CARD_NUMBER)などの、世界のどこにも適用できるデータタイプもあります。infoType に対応するコンテンツを検出するために、Sensitive Data Protection はパターン マッチング、チェックサム、ML、コンテキスト分析などのさまざまな手法を活用します。
組み込みの infoType 検出器のリストは常に更新されています。現在サポートされている組み込みの infoType の全リストについては、infoType 検出器リファレンスをご覧ください。
組み込みの infoType 検出器の全リストは、機密データの保護の infoTypes.list メソッドを呼び出して表示することもできます。
カスタムの infoType 検出器
カスタム infoType 検出器には、次の 3 種類があります。
スキャン結果を絞り込むには、検査ルールを作成します。
標準のカスタム辞書検出器
標準のカスタム辞書検出器では、最大でも数万個の単語やフレーズを含む小規模のリストを照合します。標準のカスタム辞書は、この辞書独自の一意の検出器として使用できます。
カスタム辞書検出器は、正規表現や組み込みの検出器で簡単に照合できない単語やフレーズのリストをスキャンする場合に役立ちます。たとえば、会議室をスキャンする場合に、会議室が通常、番号ではなく割り当てられている名前(都道府県名や地域名、ランドマーク、架空の文字など)で呼ばれているとします。こうした会議室名のリストを含めて、標準のカスタム辞書検出器を作成できます。Sensitive Data Protection は、各会議室名のコンテンツをスキャンし、コンテキスト内でいずれかの会議室名が検出されると一致を返します。機密データの保護で辞書の単語とフレーズを照合する方法については、標準のカスタム辞書検出器の作成の「辞書の照合の詳細」セクションをご覧ください。
標準のカスタム辞書 infoType 検出器の働きと実際の使用例については、標準のカスタム辞書検出器の作成をご覧ください。
格納されるカスタム辞書検出器
格納されるカスタム辞書検出器を使用するのは、スキャンする単語やフレーズの数が 2~3 個を超える場合や、単語やフレーズのリストが頻繁に変更される場合です。格納されるカスタム辞書検出器では、最大で数千万個もの単語やフレーズに対する照合を実施できます。
格納されるカスタム辞書検出器は、本来非常に大規模なカスタム検出器であるため、正規表現のカスタム検出器と標準のカスタム辞書検出器のどちらとも異なる方法で作成されます。格納されるカスタム辞書には、それぞれ次の 2 つのコンポーネントがあります。
- 作成、定義するフレーズのリスト。このリストは、Cloud Storage 内のテキスト ファイルまたは BigQuery テーブル内の列として保存されます。
- 生成された辞書ファイル。フレーズリストに基づいて Sensitive Data Protection によって生成されます。辞書ファイルは Cloud Storage に保存され、ソースフレーズ データのコピーと、検索やマッチングに役立つブルーム フィルタで構成されます。辞書ファイルは直接編集できません。
単語リストを作成し、機密データの保護を使用してカスタム辞書を生成したら、他の infoType 検出器と同様の方法で、格納されるカスタム辞書検出器を使用するスキャンを開始またはスケジュールします。
格納されるカスタム辞書検出器の働きと実際の使用例については、格納されるカスタム辞書検出器の作成をご覧ください。
正規表現
正規表現(regex)カスタム infoType 検出器を使用すると、機密データの保護で正規表現パターンに基づいて一致を検出するための独自の infoType 検出器を作成できます。たとえば、###-#-##### という形式のカルテ番号があるとします。この場合、次のような正規表現パターンを定義できます。
[1-9]{3}-[1-9]{1}-[1-9]{5}
Sensitive Data Protection では、次のような項目が照合されます。
123-4-56789
各カスタム infoType の一致に割り当てる可能性も指定できます。つまり、Sensitive Data Protection で指定したシーケンスと一致すると、指定した可能性が割り当てられます。カスタム正規表現によって定義されたシーケンスが一般性が高く、他のランダムなシーケンスと容易に一致する場合に、Sensitive Data Protection によってすべての一致に VERY_LIKELY のラベルを付けたくないため、これは有効です。スキャン結果の信頼性が損なわれ、誤った情報を匿名化するおそれがあります。
正規表現のカスタム infoType 検出機能の詳細と実際の使用例については、カスタム正規表現検出機能の作成をご覧ください。