検査結果をアスペクトとして 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. [アクションを追加] ステップで、[Knowledge Catalog に公開] を有効にします。

機密データの保護は、 Sensitive Data Protection job resultアスペクトを、Knowledge Catalog エントリに関連付けられた BigQuery テーブルに追加または更新します。その後、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 権限が必要です。プロジェクトを作成した場合は、所有者ロール(roles/owner)を介してこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(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. Google Cloud コンソールで Cloud Shell をアクティブにします。

    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 を使用して構成および実行できます。

Console

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

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

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

REST

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

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

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は 英数字からなる文字列です
  • LOCATION: リクエストを処理するリージョンまたはマルチリージョン(例: europe-west1、us)。使用可能な ロケーションについては、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 の検索構文をご覧ください。

機密データの保護のジョブ結果アスペクトを持つすべてのテーブルのエントリを検索する

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

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

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

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