検査結果をアスペクトとして Knowledge Catalog に送信する

このドキュメントでは、BigQuery テーブルで機密データを検査し、検査結果を Knowledge Catalog に送信する方法について説明します。この操作により、BigQuery テーブルに関連付けられている Knowledge Catalog エントリにアスペクトが自動的に追加されます。

このドキュメントでは、組織やプロジェクト間で特定の側面値を持つデータを検索するために使用できるクエリの例についても説明します。

この機能は、Sensitive Data Protection の検査ジョブから得られたセンシティブ データの分類を使用して、Knowledge Catalog のメタデータを拡充する場合に便利です。

生成されたアスペクトには次の詳細が含まれます。

  • 検査ジョブの名前
  • テーブルで検出された情報タイプ(infoTypes

Knowledge Catalog について

Knowledge Catalog は、 Google Cloud リソースの統合インベントリを提供します。

Knowledge Catalog では、アスペクトを使用して、データにビジネス メタデータとテクニカル メタデータを追加し、リソースのコンテキストと知識を取得できます。 これにより、組織全体でデータを検索して検出したり、データアセットに対するデータガバナンスを有効にしたりできます。詳細については、 アスペクトをご覧ください。

仕組み

検査ジョブの結果に基づいて Knowledge Catalog アスペクトを自動的に作成するには、次の概要ワークフローに従います。

  1. BigQuery テーブルを検査する検査ジョブを作成または編集します。 手順については、BigQuery テーブル を検査するをご覧ください。

  2. [アクションを追加] ステップで、[Dataplex Universal Catalog に公開] を有効にします。

Sensitive Data Protection は、BigQuery テーブルに関連付けられている Knowledge Catalog entrySensitive Data Protection job result アスペクトを追加または更新します。その後、Knowledge Catalog で特定の側面値を使用して、組織やプロジェクトのすべてのデータを検索できます。クエリの例については、このドキュメントの検索 クエリの例をご覧ください。

結果の Knowledge Catalog アスペクトは、BigQuery テーブルと同じプロジェクトとリージョンに保存されます。

アスペクト フィールド

Sensitive Data Protection job result アスペクトには次のフィールドがあります。

ジョブ名
検査ジョブの完全なリソース名(例: projects/example-project/locations/us/dlpJobs/i-8992079400000000000)。
infoType の数
検査ジョブで検索された infoType 名(検査構成で指定)と、各 infoType の検出数。 検出結果がない infoType の数は 0 です。
終了時刻
検査ジョブが終了した日時。
完全スキャン
検査ジョブがテーブル内のすべての行をスキャンしたかどうか。たとえば、検査ジョブでサンプリングが有効になっている場合、このフィールドの値は False になります。
検出結果あり
検査ジョブで、スキャン対象の infoType が検出されたかどうか。

Dataplex API を有効にする

アスペクトを追加するデータを含む各プロジェクトで Dataplex API を有効にする必要があります。このセクション では、単一のプロジェクト、または組織やフォルダ内の すべてのプロジェクトで Dataplex API を有効にする方法について説明します

単一のプロジェクトで Dataplex API を有効にする

  1. Dataplex API を有効にするプロジェクトを選択します。

    プロジェクト セレクタに移動

  2. Dataplex API を有効にする

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    API の有効化

組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にする

このセクションでは、組織またはフォルダ内のすべてのプロジェクトを検索し、それらの各プロジェクトで Dataplex API を有効にするスクリプトについて説明します。

組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にするために必要な権限を取得するには、次の IAM ロールの付与を管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには 組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にするには、次の権限が必要です。

  • 組織またはフォルダ内のすべてのプロジェクトを検索するには: cloudasset.assets.searchAllResources 組織またはフォルダに対する
  • Dataplex API を有効にするには: serviceusage.services.use Dataplex API を有効にする各プロジェクトに対する

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

組織またはフォルダ内のすべてのプロジェクトで Dataplex API を有効にするには、次の手順を行います。

  1. コンソールで Cloud Shell をアクティブにします。 Google Cloud

    Cloud Shell をアクティブにする

    コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です 。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています 。セッションが初期化されるまで数秒かかることがあります。

  2. 次のスクリプトを実行します。

    #!/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

アスペクトを表示するためのロールと権限

BigQuery テーブルに関連付けられたアスペクトを検索するために必要な権限を取得するには、テーブルに対する次の IAM ロールの付与を管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには BigQuery テーブルに関連付けられたアスペクトを検索するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

BigQuery テーブルに関連付けられたアスペクトを検索するには、次の権限が必要です。

  • Knowledge Catalog エントリを表示する:
    • dataplex.entries.list
    • dataplex.entries.get
  • BigQuery データセットとテーブルを表示する:
    • bigquery.datasets.get
    • bigquery.tables.get

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Knowledge Catalog の使用に必要な権権の詳細については、Knowledge Catalog IAM 権限をご覧ください。

Sensitive Data Protection の検査ジョブを構成して実行する

Sensitive Data Protection の検査ジョブは、 the Google Cloud コンソールまたは DLP API を使用して構成および実行できます。

コンソール

  1. コンソールで、[ジョブまたはジョブトリガーを作成] ページに移動します。 Google Cloud

    [ジョブまたはジョブトリガーを作成] に移動

  2. プロジェクトを選択します。
  3. 必要な検査ジョブの詳細と、検査する BigQuery テーブルの詳細を入力します。手順については、 BigQuery テーブルを検査するをご覧ください。Sensitive Data Protection で検査できる情報タイプの一覧については、infoType 検出機能リファレンスをご覧ください。
  4. [アクションを追加] で、[Dataplex Universal Catalog に公開] を有効にします。
  5. [作成] をクリックします。ジョブはすぐに実行されます。

REST

次の例では、 projects.locations.dlpJobs.create リクエストを送信して BigQuery テーブルを検査し、結果を Knowledge Catalog に送信します。

リクエストのデータを使用する前に、 次のように置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は 英数字の文字列です。
  • LOCATION: リクエストを処理するリージョンまたはマルチリージョン(europe-west1us など)。使用可能な ロケーションについては、Sensitive Data Protection のロケーションをご覧ください。
  • BIGQUERY_DATASET_NAME: 検査するテーブルを含む BigQuery データセットの名前
  • BIGQUERY_TABLE_NAME: 検査する BigQuery テーブルの名前

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 を使用して検査ジョブの結果を取得する方法については、ジョブを取得するをご覧ください。

検索クエリの例

このセクションでは、Knowledge Catalog で特定の側面値で組織やプロジェクトのデータを検索するために使用できる検索クエリの例を示します。

検索できるのは、アクセス権を持つデータだけです。データアクセスは IAM 権限によって制御されます。詳細については、このドキュメントのアスペクトを表示するための ロールと権限をご覧ください。

これらのクエリの例は、Knowledge Catalog の [検索] ページの [検索] フィールドに入力できます。

検索に移動

クエリの作成方法については、 Knowledge 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

完全に検査されたテーブルのエントリを検索する

次のクエリは、Sensitive Data Protection が行ごとに検査したテーブルのエントリを返します。

aspect:sensitive-data-protection-job-result.isFullScan=True

完全に検査されなかったテーブルのエントリを検索する

次のクエリは、Sensitive Data Protection がサンプリングによって検査したテーブルのエントリを返します。

aspect:sensitive-data-protection-job-result.isFullScan=False

[Dataplex Universal Catalog に公開] アクションに移行する

非推奨の [Data Catalog に公開] アクションを使用するように構成されているジョブトリガーを移行するには、次の手順を行います。

  1. 検査結果を Data Catalog に公開するように構成されているジョブトリガーを編集します。ジョブ トリガーを開いて編集する方法については、既存のジョブ トリガーを更新するをご覧ください。
  2. [アクション] セクションで、[Data Catalog に公開] を無効にします。
  3. [Dataplex Universal Catalog に公開] を有効にします。
  4. [保存] をクリックします。