このドキュメントでは、BigQuery テーブルで機密データを検査し、検査結果を Dataplex Universal Catalog に送信する方法について説明します。このアクションにより、BigQuery テーブルに関連付けられている Dataplex Universal Catalog エントリにアスペクトが自動的に追加されます。
このドキュメントでは、特定のアスペクト値を使用して組織やプロジェクト間でデータを検索するために使用できるクエリの例も示します。
この機能は、センシティブ データの保護の検査ジョブから取得したセンシティブ データの分類を使用して、Dataplex Universal Catalog のメタデータの質を高める場合に便利です。
生成されたアスペクトには、次の詳細が含まれます。
- 検査ジョブの名前
- テーブルで検出された情報タイプ(infoTypes)
Dataplex Universal Catalog について
Dataplex Universal Catalog は、 Google Cloud リソースの統合インベントリを提供します。
Dataplex Universal Catalog では、アスペクトを使用して、データにビジネス メタデータとテクニカル メタデータを追加し、リソースのコンテキストと知識を取得できます。これにより、組織全体でデータを検索して検出し、データアセットに対するデータ ガバナンスを有効にできます。詳細については、アスペクトをご覧ください。
仕組み
検査ジョブの結果に基づいて Dataplex Universal Catalog のアスペクトを自動的に作成するには、次の概要ワークフローを行います。
BigQuery テーブルを検査する検査ジョブを作成または編集します。手順については、BigQuery テーブルを検査するをご覧ください。
[アクションを追加] ステップで、[Dataplex Universal Catalog に公開] を有効にします。
機密データの保護は、BigQuery テーブルに関連付けられた Dataplex Universal Catalog エントリの Sensitive Data Protection job result
アスペクトを追加または更新します。その後、Dataplex Universal Catalog で、特定のアスペクト値を持つ組織またはプロジェクトのすべてのデータを検索できます。クエリの例については、このドキュメントの検索クエリの例をご覧ください。
結果の Dataplex Universal Catalog アスペクトは、BigQuery テーブルと同じプロジェクトとリージョンに保存されます。
アスペクト フィールド
Sensitive Data Protection job result
アスペクトには次のフィールドがあります。
- ジョブ名
- 検査ジョブの完全なリソース名(例:
projects/example-project/locations/us/dlpJobs/i-8992079400000000000
)。 - InfoType の数
- 検査ジョブが検索した infoType の名前(検査構成で指定)と、各 infoType の検出数。結果がない infoType のカウントは
0
です。 - 終了時刻
- 検査ジョブが終了した日時。
- Is Full Scan
- 検査ジョブがテーブル内のすべての行をスキャンしたかどうか。たとえば、検査ジョブでサンプリングが有効になっている場合、このフィールドの値は
False
になります。 - 検出結果あり
- 検査ジョブでスキャンした infoType が検出されたかどうか。
Dataplex API を有効にする
アスペクトを追加するデータを含む各プロジェクトで、Dataplex API を有効にする必要があります。このセクションでは、単一のプロジェクトまたは組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にする方法について説明します。
単一のプロジェクトで Dataplex API を有効にする
Dataplex API を有効にするプロジェクトを選択します。
-
Enable the Dataplex API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にする
このセクションでは、組織またはフォルダ内のすべてのプロジェクトを検索し、それらの各プロジェクトで Dataplex API を有効にするスクリプトについて説明します。
組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にするために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
組織またはフォルダに対する Cloud Asset 閲覧者 (
roles/cloudasset.viewer
) -
Dataplex API を有効にする各プロジェクトに対する DLP ユーザー (
roles/dlp.user
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にするには、次の権限が必要です。
-
組織またはフォルダ内のすべてのプロジェクトを検索する: 組織またはフォルダに対する
cloudasset.assets.searchAllResources
-
Dataplex API を有効にするには:
Dataplex API を有効にする各プロジェクトに対する
serviceusage.services.use
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にするには、次の操作を行います。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
次のスクリプトを実行します。
#!/bin/bash RESOURCE_ID="RESOURCE_ID" gcloud asset search-all-resources \ --scope="RESOURCE_TYPE/$RESOURCE_ID" \ --asset-types="cloudresourcemanager.googleapis.com/Project" \ --format="value(name)" | while read project_name; do project_id=$(echo "$project_name" | sed 's|.*/||') gcloud services enable "dataplex.googleapis.com" --project="$project_id" done
次のように置き換えます。
RESOURCE_ID
: プロジェクトを含むリソースの組織番号またはフォルダ番号RESOURCE_TYPE
: プロジェクトを含むリソースのタイプ(organizations
またはfolders
)
-
Dataplex Catalog 閲覧者 (
roles/dataplex.catalogViewer
) -
BigQuery データ閲覧者 (
roles/bigquery.dataViewer
) -
Dataplex Universal Catalog エントリを表示する:
-
dataplex.entries.list
-
dataplex.entries.get
-
-
BigQuery データセットとテーブルを表示する:
-
bigquery.datasets.get
-
bigquery.tables.get
-
-
Google Cloud コンソールで、[ジョブまたはジョブトリガーを作成] ページに移動します。
- プロジェクトを選択します。
- 必要な検査ジョブの詳細と、検査する BigQuery テーブルの詳細を入力します。手順については、BigQuery テーブルを検査するをご覧ください。Sensitive Data Protection で検査できる情報の種類の一覧については、infoType 検出器リファレンスをご覧ください。
- [アクションを追加] で、[Dataplex Universal Catalog に公開] を有効にします。
- [作成] をクリックします。ジョブはすぐに実行されます。
-
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です。 -
LOCATION
: リクエストを処理するリージョンまたはマルチリージョン(europe-west1
、us
など)。使用可能なロケーションについては、Sensitive Data Protection のロケーションをご覧ください。 -
BIGQUERY_DATASET_NAME
: 検査するテーブルを含む BigQuery データセットの名前 -
BIGQUERY_TABLE_NAME
: 検査する BigQuery テーブルの名前
アスペクトを表示するためのロールと権限
BigQuery テーブルに関連付けられたアスペクトを検索するために必要な権限を取得するには、テーブルに対する次の IAM ロールを付与するよう管理者に依頼してください。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、BigQuery テーブルに関連付けられたアスペクトを検索するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
BigQuery テーブルに関連付けられたアスペクトを検索するには、次の権限が必要です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Dataplex Universal Catalog の使用に必要な権限の詳細については、Dataplex Universal Catalog の IAM 権限をご覧ください。
機密データの保護の検査ジョブを構成して実行する
機密データの保護の検査ジョブは、 Google Cloud コンソールまたは DLP API を使用して構成および実行できます。
コンソール
REST
次の例では、BigQuery テーブルを検査し、結果を Dataplex Universal Catalog に送信する projects.locations.dlpJobs.create
リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
HTTP メソッドと URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dlpJobs
リクエストの本文(JSON):
{ "inspectJob": { "storageConfig": { "bigQueryOptions": { "tableReference": { "projectId": "PROJECT_ID", "datasetId": "BIGQUERY_DATASET_NAME", "tableId": "BIGQUERY_TABLE_NAME" } } }, "inspectConfig": { "infoTypes": [ { "name": "EMAIL_ADDRESS" }, { "name": "PERSON_NAME" }, { "name": "US_SOCIAL_SECURITY_NUMBER" }, { "name": "PHONE_NUMBER" } ], "includeQuote": true, "minLikelihood": "UNLIKELY", "limits": { "maxFindingsPerRequest": 100 } }, "actions": [ { "publishFindingsToDataplexCatalog": {} } ] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/dlpJobs/JOB_ID", "type": "INSPECT_JOB", "state": "PENDING", "inspectDetails": { "requestedOptions": { "snapshotInspectTemplate": {}, "jobConfig": { "storageConfig": { "bigQueryOptions": { "tableReference": { "projectId": "PROJECT_ID", "datasetId": "BIGQUERY_DATASET_NAME", "tableId": "BIGQUERY_TABLE_NAME" } } }, "inspectConfig": { "infoTypes": [ { "name": "EMAIL_ADDRESS" }, { "name": "PERSON_NAME" }, { "name": "US_SOCIAL_SECURITY_NUMBER" }, { "name": "PHONE_NUMBER" } ], "minLikelihood": "UNLIKELY", "limits": { "maxFindingsPerRequest": 100 }, "includeQuote": true }, "actions": [ { "publishFindingsToDataplexCatalog": {} } ] } }, "result": {} }, "createTime": "2025-09-09T00:29:55.951374Z", "lastModified": "2025-09-09T00:29:58.022967Z" }
DLP API を使用して検査ジョブの結果を取得する方法については、ジョブを取得するをご覧ください。
検索クエリの例
このセクションでは、Dataplex Universal Catalog で特定のアスペクト値を持つ組織やプロジェクトのデータを検索するために使用できる検索クエリの例を示します。
検索できるのは、アクセス権を持つデータだけです。データ アクセスは IAM 権限によって制御されます。詳細については、このドキュメントのアスペクトを表示するためのロールと権限をご覧ください。
これらのクエリ例は、Dataplex Universal Catalog の [検索] ページの [検索] フィールドに入力できます。
クエリの作成方法については、Dataplex Universal Catalog の検索構文をご覧ください。
Sensitive Data Protection ジョブの結果アスペクトを持つすべてのテーブルのエントリを検索する
aspect:sensitive-data-protection-job-result
検出結果のある検査済みテーブルのエントリを見つける
aspect:sensitive-data-protection-job-result.hasFindings=True
検出結果のない検査済みテーブルのエントリを見つける
aspect:sensitive-data-protection-job-result.hasFindings=False
完全に検査されたテーブルのエントリを見つける
次のクエリは、機密データの保護が行ごとに検査したテーブルのエントリを返します。
aspect:sensitive-data-protection-job-result.isFullScan=True
完全に検査されなかったテーブルのエントリを見つける
次のクエリは、機密データの保護がサンプリングによって検査したテーブルのエントリを返します。
aspect:sensitive-data-protection-job-result.isFullScan=False