Google Dataplex にて BigQuery に対する Sensitive Data Discovery の実行結果を表示してみた

## 概要

Google Dataplex にて BigQuery に対する Sensitive Data Discovery の実行結果を表示してみました。下記のようにタグが設定されるようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/85966fda-1aae-d6e5-5e5b-171c121c5281.png)

センシティブデータを検出するサービスとして Cloud DLP (Data Loss Prevention)というサービスがあったようなのですが、Sensitive Data Discovery というサービスに組み込まれたようです。

> Cloud Data Loss Prevention (Cloud DLP) is now a part of Sensitive Data Protection. The API name remains the same: Cloud Data Loss Prevention API (DLP API). For information about the services that make up Sensitive Data Protection, see Sensitive Data Protection overview.

引用元：[データ プロファイル  | Sensitive Data Protection Documentation  | Google Cloud](https://cloud.google.com/sensitive-data-protection/docs/data-profiles?hl=ja)

> Cloud Data Loss Prevention(Cloud DLP)は、Sensitive Data Protection の一部になりました。API の名前は Cloud Data Loss Prevention API(DLP API)のままです。Sensitive Data Protection を構成するサービスの詳細については、「Sensitive Data Protection の概要」を参照してください。

上記の翻訳

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/38c18fe5-adfb-ee7b-cdf7-3325194c9172.png)

引用元：[データ プロファイル  | Sensitive Data Protection Documentation  | Google Cloud](https://cloud.google.com/sensitive-data-protection/docs/data-profiles?hl=ja)

Sensitive Data Discovery の実行結果に基づきタグを実行したいと考えて、当初は Dataplex にタグを設定する手順を検証しましたが、BigQuery にデータを格納したほうがタグ付けする際には容易に利用できる可能性もあります。Dataplex と BigQuery のどちらにもデータを登録できるため、どちらにも登録する方がいいかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/7abaff64-948d-8080-6df2-f7f6bb3097b0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/b3acaa1f-e20b-7251-8c6c-e9368b600913.png)


本記事では、下記のサービスを利用できることを前提としています。

- BigQuery
- Dataplex
- Sensitive Data Protection

## 実施手順

### 1. BigQuery にテーブル作成とデータの挿入を実施

#### 1-1. テーブル作成

```sql
CREATE OR REPLACE TABLE bq-publisher-01.data_profiling_test.profile_table_10 ( 
  ID STRING,
  family_namae STRING,
  First_name STRING,
  mail_address STRING,
  address STRING,
  Customer_Lever STRING,
  Description STRING
);
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/ffb19caa-5fef-9e02-5606-067ddfc26a00.png)


#### 1-2. データの挿入

```sql
INSERT INTO
  bq-publisher-01.data_profiling_test.profile_table_10 (
    ID,
    family_namae,
    First_name,
    mail_address,
    address,
    Customer_Lever,
    Description
  )
VALUES 
  ('1', 'Yamada', 'Taro', 'taro.yamada@example.com', 'Tokyo', 'Gold', 'First customer'),
  ('2', 'Suzuki', 'Hanako', 'hanako.suzuki@example.com', 'Osaka', 'Silver', 'Second customer'),
  ('3', 'Tanaka', 'Ichiro', 'ichiro.tanaka@example.com', 'Nagoya', 'Gold', 'Third customer'),
  ('4', 'Sato', 'Jiro', 'jiro.sato@example.com', 'Fukuoka', 'Bronze', 'Fourth customer'),
  ('5', 'Kobayashi', 'Saburo', 'saburo.kobayashi@example.com', 'Sapporo', 'Silver', 'Fifth customer');
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/7b2c35bd-0555-8c66-ddb3-4526b92d0ebf.png)


#### 1-3. データの確認

```sql
SELECT * FROM bq-publisher-01.data_profiling_test.profile_table_10  LIMIT 5
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d98993b3-49c4-5c1e-f9d3-5aa57e7cf94e.png)


### 2. Sensitive Data Protection （Cloud Data Loss Prevention API）を実行

#### 2-1. Navigation Menu にて `Security` -> `Sensitive Data Protection`を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/038a5d5f-a144-f7b4-8766-8234a0d5d621.png)

#### 2-2. `DISCOVERY` -> `SCAN CONFIGURATION` -> `+ CREATE CONFIGURATION`を選択 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/955022c5-366a-f580-f6a8-0766bc1b41e7.png)

#### 2-3. `Select a discovery type`にて`BigQuery`を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/2f0a9191-a551-e374-4860-125291e03715.png)

#### 2-4. `Select scope`にて`Scan one talbe(test mode)`を選択して作成したテーブルを指定。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/403ea93c-9b37-72ac-e524-ceca1cb48ed1.png)

#### 2-5. `Manage Schedules`にてデフォルトのまま`CONTINUE`を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/a0e96781-a868-20c2-b7e7-948f5a94d424.png)

#### 2-6. `Select inspection template`にてデフォルトのまま`CONTINUE`を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d8ab96ea-d8c3-55e7-6b1f-1ef711eab10f.png)

#### 2-7. `Add actions`にて`Send to Dataplex as tags`にチェックが入っていることを確認の上`CONTINUE`を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/5c925d52-e068-277e-80aa-4854aeddc3c5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/9ce70dc0-4190-2b94-bad3-b0ef5300133a.png)

#### 2-8. `Set location to store configuration`にてデフォルトのまま`CONTINUE`を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f8b96945-2e52-7deb-9283-b55a12693033.png)

#### 2-9. `Review and create`にてデフォルトのまま`CREATE`を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f8474310-df03-8403-1c70-80f63856df8c.png)

#### 2-10. `Confirm configuration creation`ウィンドウにて`CREATE CONFIGURATION`を選択 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c09cbdd2-0f44-81e3-52f0-0c954461cf0b.png)

#### 2-11. `DISCOVERY` -> `PROFILES`をクリックして作成した Cofiguration が作成されたことを確認（下記図では一番下の項目） し、実行が完了されることを待機

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/79a19271-a9f6-655b-79e5-02b7c932dfe1.png)

#### 2-12. 作成した Cofiguration が完了したことを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/8c587f52-cd6b-db6f-be53-34e910b92014.png)

### 3. Dataplex にて確認

#### 3-1. 作成した Configuration の詳細ページにて`Dataplex entry`という項目の値をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/ec70c0d7-5b2a-717f-7068-dd752e0d4b02.png)

#### 3-2. Dataplex の画面に移動後、`Tags`にタグが追加されたことを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/fc3f302a-2432-e9c8-9cd3-64e78dd0d53d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/85966fda-1aae-d6e5-5e5b-171c121c5281.png)

## 実行結果を BigQuery に書き込む際の追加の手順

### 1. Configuration 作成時の`Add actions`の`Save data profile copies to BigQuery`にて書き込み先のテーブル名を指定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/7abaff64-948d-8080-6df2-f7f6bb3097b0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/41bfb9d1-1828-0e5b-b7f8-7c715f320963.png)

### 2. 指定したテーブル名に`latest_v1`というものが不可されたテーブルに json 形式で格納されていることを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/b3acaa1f-e20b-7251-8c6c-e9368b600913.png)