このチュートリアルでは、Cloud DLP 用 Cloud Data Fusion pluginを使用して機密情報を含むデータを秘匿化する方法について説明します。
シナリオ
顧客の機密情報を秘匿化する必要があるシナリオを考えてみましょう。
サポートチームは、サポート チケットで処理した各サポートケースの詳細を記録しています。サポート チケットのすべての情報は、CSV ファイルに格納されます。サポート技術者は、機密情報と見なされる顧客情報は記録しないことになっていますが、間違って記録してしまうこともあります。CSV ファイルにお客様の電話番号が含まれていることに気づきました。
CSV ファイル全体で、電話番号がすべて見えないようにしなければなりません。そこで、Cloud DLP プラグインを使用して顧客の機密データを秘匿化する Cloud Data Fusion パイプラインを作成します。
このチュートリアルでは、次の処理を行うパイプラインを作成します。
- 顧客の電話番号を
#
文字でマスクして秘匿化します。 - マスクされた機密データと機密情報でないデータを Cloud Storage バケットに格納します。
パイプラインを作成する
顧客の機密データを秘匿化するパイプラインを作成します。ビルドするパイプラインによって、次の処理が行われます。
- Cloud Storage ソース プラグインを使用して入力データを読み取ります。
- Cloud DLP プラグインを Hub からデプロイします。
- Cloud Storage シンク プラグインを使用して出力データを書き出します。
顧客データを読み込む
このチュートリアルでは、一般公開されている Cloud Storage バケットにある入力データセット CallCenterRecords.csv
を使用します。
Cloud Data Fusion インスタンスを開き、menu [メニュー] > [Studio] をクリックします。
[ソース] メニューで [Cloud Storage] プラグインをクリックします。
[Cloud Storage] ノードで、[プロパティ] をクリックします。
[Reference name] フィールドに名前を入力します。
[パス] フィールドに「
gs://datafusion-sample-datasets/CallCenterRecords.csv
」と入力します。[形式] フィールドで
CSV
を選択します。[出力スキーマ] で、[オフセット] フィールドと [ボディ] フィールドを削除します。
(追加)をクリックして、次のフィールドに入力します。- 日付
- 銀行
- 州
- 郵便番号
- メモ
[検証] をクリックして、エラーを確認します。
[閉じる] をクリックします。
機密データの秘匿化
Cloud DLP Redact プラグインは、入力データ ストリーム内の機密レコードを識別し、定義した変換をそれらのレコードに適用します。データのレコードが選択した事前定義されている Cloud DLP フィルタまたは自分で定義したカスタム テンプレートと一致すると、そのレコードは機密と見なされます。
このチュートリアルでは、チームのサポート担当者が誤って記録していたお客様の電話番号を秘匿化します。担当者がサポート チケットの Notes セクションに入力した機密情報は、CSV ファイルの Notes 列にあります。カスタム Cloud DLP テンプレートを作成し、プラグインのプロパティ メニューでテンプレート ID を指定します。
Cloud DLP プラグインをデプロイする
Cloud Data Fusion インスタンスで、[Hub] をクリックします。
[Cloud DLP] プラグインをクリックします。
[デプロイ] をクリックします。
[完了] をクリックします。
[
閉じる] をクリックして、Cloud DLP ダイアログを閉じます。[
閉じる] をクリックして Hub を終了します。
カスタム テンプレートを作成する
Google Cloud コンソールで、[Cloud DLP] ページに移動します。
[作成] メニューで [テンプレート] を選択します。
[テンプレート ID] フィールドに、テンプレートの ID を入力します。
[続行] をクリックします。
[検出の設定] フィールドで、[infoType を管理] をクリックします。
[組み込み] タブで、フィルタを使用して「電話番号」を検索します。
PHONE_NUMBER を選択します。
[完了> 作成] をクリックします。
詳細については、Cloud DLP テンプレートの作成をご覧ください。
Cloud DLP Redact 変換を適用する
Cloud Data Fusion の [Studio] ページに移動し、[変換] メニューをクリックして展開します。
Cloud DLP [Redact] プラグインをクリックします。
[Cloud Storage] ノードから [Redact] ノードに接続矢印をドラッグします。
ポインタを Redact ノードの上に置き、[Properties] をクリックします。
[カスタム テンプレート] を
Yes
に設定します。[テンプレート ID] フィールドに、作成したカスタム テンプレートのテンプレート ID を入力します。
[マッチング] フィールドで、[ノート] の [カスタム テンプレート] に [マスキング] を適用します。
[マスキング文字] フィールドに
#
を入力します。[検証] をクリックして、エラーを確認します。
[閉じる] をクリックします。
出力データを保存する
パイプラインの結果を Cloud Storage ファイルに保存します。
[Studio] ページで、[シンク] メニューをクリックして展開します。
[Cloud Storage] をクリックします。
[Redact] ノードから [Cloud Storage2] ノードに接続矢印をドラッグします。
ポインタを [Cloud Storage2] ノードの上に置き、[プロパティ] をクリックします。
[Reference name] フィールドに名前を入力します。
[パス] フィールドに、パイプライン結果を保存する Cloud Storage バケットのパスを入力します。Cloud Data Fusion がバケットを作成します。必ずバケット命名ガイドラインに準拠してください。
[形式] フィールドで [CSV] を選択します。
[Validate] をクリックして、エラーがないことを確認します。
[閉じる] をクリックします。
プレビュー モードでパイプラインを実行する
デプロイする前に、パイプラインをプレビュー モードで実行します。
[プレビュー] をクリックし、[実行] をクリックします。
[実行] をクリックするとるパイプラインのステータスが表示されます。ステータスは [開始] で始まり、次に [停止]、次に [実行] となります。
プレビューの実行が完了したら、Redact ノードで [Preview Data] をクリックし、入力データと出力データを並べて比較します。電話番号が
#
文字でマスクされていることを確認します。
別のデータ型を秘匿化する
プレビューの実行結果を確認すると、Notes 欄にはまだ他にもメールアドレスという機密情報が残っていることに気づきます。それで Cloud DLP テンプレートに戻って、メールアドレスも秘匿化するように編集します。
Google Cloud コンソールで、[Cloud DLP] ページに移動します。
[設定] タブで、テンプレートを選択します。
[編集] をクリックします。
[infoType を管理] をクリックします。
[組み込み] タブで、「OR」「メールアドレス」を検索するフィルタを使用するようにします。
すべて選択して [完了] をクリックします。
[保存] をクリックします。
再度パイプラインをプレビュー モードで実行します。 Cloud Data Fusion は、更新された Cloud DLP テンプレートを自動的に使用します。
電話番号とメールアドレスの両方が
#
文字でマスクされていることを確認します。
パイプラインをデプロイして実行する
[プレビュー] モードがオフになっていることを確認します。
[保存] をクリックします。[保存] をクリックすると、パイプラインの名前を入力するよう求められます。次に、[OK] をクリックします。
[デプロイ] をクリックします。
デプロイが完了したら、[実行] をクリックします。パイプラインの実行には数分を要する場合があります。待機している間に、パイプラインの [ステータス] はプロビジョニング、開始中、実行中、プロビジョニング解除中、成功と推移します。
結果を見る
Google Cloud コンソールで、Cloud Storage ページに移動します。
ストレージ ブラウザで、シンク Cloud Storage プラグイン プロパティに指定したシンク Cloud Storage バケットに移動します。
リンク URL のリンクをクリックし、結果の CSV ファイルをダウンロードします。 電話番号とメールアドレスが
#
文字でマスクされていることを確認します。