検査結果をアスペクトとして 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 エントリSensitive 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 です。
終了時刻
検査ジョブが終了した日時。
Is Full Scan
検査ジョブがテーブル内のすべての行をスキャンしたかどうか。たとえば、検査ジョブでサンプリングが有効になっている場合、このフィールドの値は 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 ロールを付与するよう管理者に依頼してください。

  • 組織またはフォルダに対する 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 を有効にするには、次の操作を行います。

  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 の検査ジョブを構成して実行する

機密データの保護の検査ジョブは、 Google Cloud コンソールまたは DLP API を使用して構成および実行できます。

コンソール

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

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

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

REST

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

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

  • 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 が 1 行ずつ検査したテーブルのエントリを返します。

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

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

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

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

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

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

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