アイデンティティとセキュリティ

DLP による医療データの保護: スタートガイド

#healthcare

※この投稿は米国時間 2021 年 8 月 31 日に、Google Cloud blog に投稿されたものの抄訳です。

患者のデータを保護することは、医療従事者にとって最も重要です。世界各国で患者のデータの保護を要求する法律や規制が数多くあるのがその理由ですが、それだけでなく、患者のデータを保護することが医療従事者とその患者の間の信頼という点で基本的な要件となるからです。これによって、患者と医療従事者の間にある程度の緊張が生じます。患者にできる限り最善の治療を施すために、医療機関は多くの保護対象保健情報(PHI)を共有し、それを他の医療機関、保険会社、研究機関などとも共有します。データの共有によって治療の質が改善される可能性がある一方で、患者のプライバシーのリスクも大きくなります。

多くの医療機関や保険会社でクラウド テクノロジーが活用されているため、PHI の保護に関する懸念が高まっています。医療のエコシステムにはさまざまなデータタイプが存在し、それは多様で複雑です。つまり、数多くのさまざまなシステムや形式を保護しなければならないということになります。ここで、Cloud Data Loss Prevention(DLP)が役立ちます。Cloud DLP を使用すると、PHI/PII を識別して難読化することができ、患者のプライバシーを保護する保護レイヤを追加したうえで、そのデータの使用を可能にします。データ自体を変更またはマスクできるこの保護レイヤを追加すると、アクセス制御、保存データの暗号化、転送データの暗号化といった従来のセキュリティ対策が補完されます。これにより、より深いレベルの「最小権限」アクセス、つまりデータの最小化を実現できます。

Google Cloud では、多くの医療機関がグローバル規模のデータ インフラストラクチャを構築し、デプロイする際の支援を行っています。こうした医療機関では、Cloud Data Loss Prevention を使用して PHI を検出し、保護しています。

このシリーズの記事では、PHI を扱うことができる Google Cloud でのさまざまなタイプのデータ形式(構造化データ、csv など)とシステムについて説明し、そのデータ形式とシステム全体で Google DLP API を使用して機密データを保護できる仕組みについて説明することを目標としています。

DLP とは

お客様は、Cloud DLP で削除、バケット化、日付シフト、トークン化などの手法を使用して、機密データを検査しマスクすることができるため、リスクと利便性を両立できます。これは、削除すべきデータの判断が難しい場合のある、非構造化ワークロードやフリーテキストのワークロードを処理する場合に特に重要です。Google Cloud DLP では、システムやストレージに依存しない機能を数多く用意しています。このため、事実上すべてのワークロード、移行、リアルタイム アプリケーションで使用できます。

2021 年、Forrester Research によって、Google Cloud は「Forrester Wave™: 非構造化データ セキュリティ プラットフォーム、2021 年第 2 四半期レポート」のリーダーに選出され、現在のサービス カテゴリで評価対象のプロバイダの中で最高と評価されました。さらに Cloud は、個人情報(PII)をはじめとする機密データの保護に役立つ手法である難読化基準で最高のスコアを獲得しました。

Google Cloud DLP とそのコンポーネントについて説明している詳細な記事はたくさんありますが、この記事では医療機関が活用する Cloud DLP の次の主要機能に焦点を当てます。

  1. データの検出と分類

  2. データのマスキングと難読化

  3. 再識別リスクの測定 

医療機関が管理するデータの種類

どの医療機関でも、それぞれの組織に固有のデータニーズがありますが、通常、医療データは次の 2 つのバケットに分類されます。

  1. テキストベースのデータ

    1. このデータは通常、CSV、フラット ファイル、トランザクション データベース エントリの形式になります。

  2. HL7/FHIR/DICOM データ

  1. このデータは通常、医療の相互運用性基準を遵守する EMR およびその他のシステムから受信されます。

  2. HL7/FHIR データの場合、データは通常 JSON または XML オブジェクトとして形成されます。

  3. 医療画像の標準である DICOM は、多くの場合テキストが埋めこまれている画像ファイルを保存します。

これらの一般的な医療のデータ構造では、さまざまなデータソースとシンクを活用してデータが取り込まれ、保存、分析されます。医療データに関して一般的に活用されるサービスには以下のものがあります。

  1. Google Cloud Storage

  2. Google BigQuery

  3. Google Cloud SQL

  4. Google Cloud Pub/Sub

  5. Google Cloud Dataflow

医療データの管理と活用におけるインパクトという面から、Google Cloud のサービスのなかでもここで特筆すべきものとして挙げられるのは Google Healthcare API でしょう。Google Healthcare API の詳細については、こちらの概要の動画とドキュメントをご覧ください。この記事では、次のいくつかの主要機能に焦点を当てます。

  1. HL7 / FHIR データの取り込み

  2. DICOM データの取り込み

  3. Healthcare API の組み込み機能による DLP の活用

医療データ向け DLP のスタートガイド

ここで説明する DLP API を利用する場合は、最初にいくつかの重要な手順が必要となります。まず、Google Cloud Storage バケットをスキャンして定義する情報を探し、その情報を情報タイプの名前に置き換える簡単なユースケースから始めます。これは、例えば開発環境で、PHI の共通データストアを定期的にスキャンするために使用するのに適した方法です。

データの検査

最初のステップは、検索する必要のあるデータを DLP API に指示するテンプレートの作成です。この場合は、検査テンプレートを作成します(以下に例を示す)。検査テンプレートには、名前や社会保障番号など、編集を必要とする一般的なデータ要素をユーザーが発見できるようにする多くの組み込み infoType(150 以上)が含まれています。また、これまでの組み込み型検出器を拡張する必要がある場合に備えて、カスタム データタイプを構築することもできます。

機密データが存在する場所を知ることが、それを保護するための重要な一歩になります。Cloud DLP を使用すると、データの検出、検査、分類を行いやすくなり、データを適切に保護し、保証する最良の方法を把握するのに役立ちます。この検査は、ワークフローに組み込んで、データの損失を事前に検知して予防したり、継続的な検査に使用したりできます。これにより、想定外の領域でデータが見つかった場合にセキュリティの通知 / アラートを生成できます。

この記事では、FHIR データを匿名化するために Cloud Healthcare API に組み込まれているものと同様の検査テンプレートを作成する方法と、お客様がよく使用するいくつかの追加の infoType を説明します。他にも ICD10 コードなど、医療に役立つ多くの組み込みの infoType があります。また、カスタム infoType を取り入れて、固有のニーズに基づいてデータを照合するために正規表現を使用する方法も示しました。

  {
  "templateId": "exampleInspectTemplate",
  "inspectTemplate": {
    "inspectConfig": {
      "infoTypes": [
        {
          "name": "CREDIT_CARD_NUMBER"
        },
        {
          "name": "EMAIL_ADDRESS"
        },
        {
          "name": "IP_ADDRESS"
        },
        {
          "name": "MAC_ADDRESS_LOCAL"
        },
        {
          "name": "MAC_ADDRESS"
        },
        {
          "name": "PHONE_NUMBER"
        },
        {
          "name": "US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER"
        },
        {
          "name": "US_SOCIAL_SECURITY_NUMBER"
        },
        {
          "name": "US_VEHICLE_IDENTIFICATION_NUMBER"
        },
        {
          "name": "PASSPORT"
        },
        {
          "name": "AGE"
        },
        {
          "name": "DATE"
        },
        {
          "name": "LOCATION"
        },
        {
          "name": "PERSON_NAME"
        },
        {
          "name": "SWIFT_CODE"
        },
        {
          "name": "DATE_OF_BIRTH"
        },
        {
          "name": "STREET_ADDRESS"
        },
        {
          "name": "ETHNIC_GROUP"
        },
        {
          "name": "US_DRIVERS_LICENSE_NUMBER"
        }
      ],
      "minLikelihood": "POSSIBLE",
      "customInfoTypes": [
        {
          "infoType": {
            "name": "CUSTOM_ID1"
          },
          "regex": {
            "pattern": "(A[0-9]{5}-[0-9]{7})"
          }
        }
      ]
    }
  }
}

データの匿名化

次の匿名化ステップでは、作成した検査テンプレートに基づいて情報が見つかったら、DLP API に実行内容を指示します。匿名化テンプレートでは、次のようなさまざまなことを実行できます。

  1. 安全な一方向ハッシュによるトークン化

  2. 双方向の確定的暗号化またはフォーマット保存暗号化によるトークン化

  3. 日付シフト

  4. データ マスキング

  5. バケット化または一般化

  6. 上記の組み合わせとバリエーション

この記事のために、検出された infoType の名前(つまり、[DATE_OF_BIRTH])を使用して検査構成と一致するデータを編集する匿名化テンプレート(以下に示す)を作成しました。匿名化テンプレートで実行できるさまざまなオプションについては、こちらをご覧ください。

  {
  "deidentifyTemplates": [
    {
      "name": "projects/PROJECT_ID/deidentifyTemplates/Healthcare_demo",
      "displayName": "Healthcare_demo",
      "description": "Healthcare_demo",
      "createTime": "2021-08-12T15:20:00.572037Z",
      "updateTime": "2021-08-12T15:20:00.572037Z",
      "deidentifyConfig": {
        "infoTypeTransformations": {
          "transformations": [
            {
              "primitiveTransformation": {
                "replaceWithInfoTypeConfig": {

              }
            }
          ]
        }
      }
    }
  ],
  "nextPageToken": "********"
}

定期検査ジョブ

スキャン対象と機密データが検出されたときにとるアクションがわかったこの時点で、スキャンのスケジュールを設定できます。このプロセスはこちらの文書で詳しく説明されていますが、先に進む前に重要な注意点がいくつかあります。

  1. スキャンを構成するときは、スキャン対象の GCS バケット(または BigQuery データセット)を把握している必要があります

  2. スキャンを構成するときは、コストを削減するために、サンプリング レート(スキャン対象のデータの割合)を減らし、最後のスキャン以降に変更されたデータのみスキャンすることを検討してください

  3. スキャンの構成中に、アクションと呼ばれる DLP スキャンの通知と出力に関するいくつかのオプションが提供されます(以下を参照)

DLP-HCLS-starter-guide_3.jpg

これらのアクションには、分析と通知のためのさまざまな機能があります。オプションの詳細な説明は次のとおりです。

  1. BigQuery への公開: この設定で DLP スキャンの結果をすべて BigQuery データセットに公開して、将来分析する際に使用できます。

  2. Pub/Sub への公開: このオプションを選択すると、DLP スキャンの結果に関して選択した Pub/Sub トピックにメッセージが作成されます。これは、SIEM などの他のアプリケーションで結果を使用する場合に最適なオプションです。

  3. Security Command Center への公開: 結果は、セキュリティ チームによるレビューのために Security Command Center に公開できます。

  4. Data Catalog への公開: 使用中の環境で Data Catalog を使用して Google Cloud のデータを管理して把握する場合は、スキャン結果データをカタログに追加できます。

  5. メールで通知: このアクションでは、ジョブの完了時にプロジェクトのオーナーと編集者にメールを送信します。

Cloud Monitoring への公開: 検査結果を Google Cloud のオペレーション スイートの Cloud Monitoring に送信します。

結果を確認

このコンソールで、[データ損失防止(DLP)] に移動し、[検査] タブを選択します。次の画像に示されている内容が表示されます。

DLP-HCLS-starter-guide_2.jpg

ジョブ ID を選択すると、検出数、スキャン済みのバイト数、エラー数、検出された infoType を示す結果リスト、などのジョブの詳細が表示されます。

DLP-HCLS-starter-guide_1.jpg

上記のように、DLP アクションによって結果をさまざまな場所に送信できます。その柔軟性により、スキャン結果を分析する現在の BI ツールの特注ソリューション用の多くのオプションがあります。そのツールを利用できない場合は、結果を BigQuery に送信して データポータル ダッシュボードで結果を分析することをおすすめします。

次のステップ

この記事では、医療環境で PHI を保護するために DLP を活用する手順をご紹介しました。これで基本的な構成要素が設定されたので、次は使用を開始します。

以降のこのブログ投稿では、以下について説明します。

  1. 医療で一般的に使用されるさまざまなデータストアの DLP ユースケース

  2. Healthcare API の DLP

  3. 代替の匿名化メソッド

  4. スキャン結果の表示と管理

Google Cloud DLP は最新のテクノロジー環境向けに構築されています。上記の手順を利用することで、患者のデータを保護するための安全な基盤を構築できます。

Google Cloud チームが必要なサポートを提供いたします。DLP の使用を開始する方法やリスクを管理するための一般的なベスト プラクティスについて詳しくは、テクニカル アカウント マネージャーに連絡するか、Google Cloud アカウント チームにお問い合わせください。

-Google Cloud リード アーキテクト、Steve Kluger

-Google Cloud データ分析クラウド コンサルタント、Nelly Wilson