Cloud DLP APIで正規表現のカスタムinfoType検出器を使ってみる(Cloud Shell + curl編)

独自にカスタムしたinfoType検出器を使い、自分で指定した正規表現パターンでの情報検出を試してみました。
2023.05.09

はじめに

Cloud DLPはデータ内の機密情報有無を検出することができるGoogle Cloudのマネージドサービスです。

検出する情報を定義できるinfoType検出器はデフォルトでも150以上存在しますが、
今回は独自にカスタムしたinfoType検出器を使い、自分で指定した正規表現パターンでの情報検出を試してみました。

環境用意

※ 必要な権限付与については割愛し作業のみ記載します。

作業を行うGoogle Cloud プロジェクトでCloud Shellを起動します。

DLP APIを有効にします。

$ gcloud services enable dlp.googleapis.com

やってみた

サンプルをこちらのドキュメントから引用し、架空のカルテ番号をシミュレートした正規表現を設定して実行しました。

入力

Cloud Shellのエディタ機能で、リクエストする内容をjsonファイルとして保存します。
以下のjsonファイルを「inspect-request.json」という名前でホームディレクトリに保存します。

{
  "item":{
    "value":"Patients MRN 444-5-22222"
  },
  "inspectConfig":{
    "customInfoTypes":[
      {
        "infoType":{
          "name":"C_MRN"
        },
        "regex":{
          "pattern":"[1-9]{3}-[1-9]{1}-[1-9]{5}"
        },
        "likelihood":"POSSIBLE"
      }
    ]
  }
}

item.valueが検査したい文字列、 inspectConfig.customInfoTypes 内が検出ルールです。 content.inspect APIのパラメータの詳細はこちらのリファレンスに記載がありました。

実行と出力

ターミナルに戻り、以下のコマンドを実行します。 ※ [PROJECT_NAME] はご自身のプロジェクト名に変換してください。

実行

$ cd ~ && curl -s -H \
    "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H \
    "X-Goog-User-Project: [PROJECT_NAME]" \
    -H \
    "Content-Type: application/json" \
    https://dlp.googleapis.com/v2/projects/[PROJECT_NAME]/content:inspect \
    -d @inspect-request.json

出力

{
  "result": {
    "findings": [
      {
        "infoType": {
          "name": "C_MRN",
          "sensitivityScore": {
            "score": "SENSITIVITY_HIGH"
          }
        },
        "likelihood": "POSSIBLE",
        "location": {
          "byteRange": {
            "start": "13",
            "end": "24"
          },
          "codepointRange": {
            "start": "13",
            "end": "24"
          }
        },
        "createTime": "2023-05-09T08:28:42.302Z",
        "findingId": "2023-05-09T08:28:42.302977Z6029351097285534895"
      }
    ]
  }
}

入力データの13文字目から24文字目に、正規表現に合致するデータが検出されたことがわかります。

参考ドキュメント