検出サービスの問題のトラブルシューティング

このページでは、機密データの保護の検出サービスの問題を解決する方法について説明します。検出サービスの詳細については、データ プロファイルをご覧ください。

サービス エージェントに、アクセス制御された列を読み取る権限がない

この問題は、ポリシータグを使用して列レベルのセキュリティを適用するテーブルをプロファイリングすると発生します。サービス エージェントが制限付きの列にアクセスする権限がない場合、機密データの保護は次のエラーを表示します。

Permission denied for DLP API service account 'SERVICE_AGENT_ID'
while accessing a BigQuery table. Access Denied: BigQuery BigQuery: User does
not have permission to access policy tag "POLICY_TAG_ID" on column FIELD_NAME.

この問題を解決するには、Identity and Access Management(IAM)ページで、サービス エージェントにきめ細かい読み取りのロールを付与します。

[IAM] に移動

機密データの保護は、プロファイリングに失敗したプロファイリング テーブルを定期的に再試行します。

ロールの付与の詳細については、単一のロールを付与するをご覧ください。

サービス エージェントにデータ プロファイリング アクセス権がない

この問題は、組織内のユーザーが組織レベルまたはフォルダレベルのスキャン構成を作成した後に発生します。スキャン構成の詳細を表示すると、[Scan status] の値が [Active with errors] になります。エラーを表示すると、機密データの保護には次のエラー メッセージが表示されます。

None of the driver projects (PROJECT_ID) have MISSING_PERMISSION
permission for organizations/ORGANIZATION_ID.

このエラーは、スキャン構成の作成中に機密データの保護によって DLP 組織データ プロファイル ドライバのロールがサービス エージェントに自動的に付与できなかったために発生しました。スキャン構成の作成者にはデータ プロファイリング アクセス権を付与する権限がないため、機密データの保護が代理でこれを行うことはできません。

この問題を解決するには、サービス エージェントへデータ プロファイリングのアクセス権を付与するをご覧ください。

サービス アカウントに、テーブルをクエリする権限がない

この問題は、サービス エージェントがクエリする権限のないテーブルを機密データの保護がプロファイリングしようとしたときに発生します。機密データの保護には次のエラーが表示されます。

Permission denied error: Permission denied for DLP API service account 'SERVICE_AGENT_ID'
while accessing BigQuery table. Access Denied: Table TABLE: User does not have
permission to query table TABLE. Permission denied for DLP API service account
'SERVICE_AGENT_ID' while accessing BigQuery table. Access Denied: Table TABLE:
User does not have permission to query TABLE. [TIMESTAMP]

この問題を解決する方法は次のとおりです。

  1. テーブルがまだ存在することを確認します。テーブルが存在する場合は、次の手順を実行します。

  2. Cloud Shell をアクティブにする。

    Cloud Shell をアクティブにする

    Cloud Shell を承認するように求められたら、[承認] をクリックします。

    Google Cloud CLI から bq コマンドライン ツールを使用する場合は、Google Cloud CLI をインストールして初期化します。

  3. テーブルの現在の IAM ポリシーを取得し、stdout に出力します。

    bq get-iam-policy TABLE
    

    TABLE は、BigQuery テーブルの完全なリソース名を PROJECT_ID:DATASET_ID.TABLE_ID の形式に置き換えます(例:project-id:dataset-id.table-id)。

  4. DLP API サービス エージェントroles/dlp.serviceAgent)のロールをサービス エージェントに付与します。

    bq add-iam-policy-binding --member=serviceAccount:SERVICE_AGENT_ID \
        --role=roles/dlp.serviceAgent TABLE
    

    次のように置き換えます。

    • SERVICE_AGENT_ID: テーブルに対してクエリを行う必要のあるサービス エージェントの ID(例: service-0123456789@dlp-api.iam.gserviceaccount.com)。
    • TABLE: BigQuery テーブルの完全なリソース名。形式は PROJECT_ID:DATASET_ID.TABLE_ID(例:project-id:dataset-id.table-id)。

      出力は次のようになります。

    Successfully added member 'SERVICE_AGENT_ID' to role 'roles/dlp.serviceAgent' in IAM policy for table 'TABLE':
    
    {
     "bindings": [
       {
         "members": [
           "serviceAccount:SERVICE_AGENT_ID"
         ],
         "role": "roles/dlp.serviceAgent"
       }
     ],
     "etag": "BwXNAPbVq+A=",
     "version": 1
    }
    

    機密データの保護は、プロファイリングに失敗したプロファイリング テーブルを定期的に再試行します。

サービス アカウントに Pub/Sub トピックにパブリッシュする権限がありません

この問題は、サービス エージェントに公開アクセス権がない Pub/Sub トピックに機密データの保護が通知を公開しようとしたときに発生します。機密データの保護には次のエラーが表示されます。

Permission missing to publish notifications on Cloud Pub/Sub topic 'TOPIC_NAME'.
The DLP API service account 'SERVICE_AGENT_ID' must must have at least the Pub/Sub Publisher role.

この問題を解決するには、サービス エージェントにプロジェクトまたはトピック レベルで公開アクセス権を付与します。公開アクセス権を持つロールの例として、Pub/Sub パブリッシャーのロールがあります。

Pub/Sub トピックの構成または権限に問題がある場合、Sensitive Data Protection は Pub/Sub 通知の送信を最大 2 週間再試行します。2 週間が経過すると、通知は破棄されます。

検査テンプレートは、異なるリージョンのプロファイル データには使用できません

この問題は、機密データの保護が、検査テンプレートが存在する同じリージョンに存在しないデータをプロファイリングしようとしたときに発生します。機密データの保護には次のエラーが表示されます。

Data in region DATA_REGION cannot be profiled using template in region
TEMPLATE_REGION. Regional template can only be used to profile data
in the same region. If profiling data in multiple regions, use a global template.

このエラー メッセージでは、DATA_REGION はデータが存在するリージョンで、TEMPLATE_REGION は検査テンプレートが存在するリージョンです。

この問題を解決するには、リージョン固有のテンプレートを global リージョンにコピーします。

  1. 検査テンプレートを global リージョンにコピーします

  2. [検査テンプレートの詳細] ページで、テンプレートの完全なリソース名をコピーします。完全なリソース名の形式は次のとおりです。

    projects/PROJECT_ID/locations/REGION/inspectTemplates/TEMPLATE_ID
  3. スキャン構成を編集して、新しい検査テンプレートの完全なリソース名を入力します。

  4. [保存] をクリックします。

機密データの保護は、プロファイリングに失敗したプロファイリング テーブルを定期的に再試行します。

機密データの保護がサポートされていないテーブルをプロファイリングしようとした

この問題は、機密データの保護がサポートされていないテーブルをプロファイリングしようとしたときに発生します。このテーブルのメタデータを含む部分的なプロファイルは引き続き取得されます。ただし、部分的なプロファイルに関する次のエラーが表示されます。

Unimplemented error: Table of type `TABLE_TYPE` is not currently supported for inspection. [DATE_TIME].

サポートされていないテーブルについて部分的なプロファイルとエラーを表示しない場合は、次の手順を行います。

  1. スキャンの設定を編集します
  2. [スケジュールの管理] の手順で、 [スケジュールの編集] をクリックします。
  3. 表示されたペインで [条件] タブをクリックします。
  4. [プロファイリングするテーブル] セクションで、[サポートされているテーブルをプロファイリングする] をクリックします。

詳細については、スケジュールの管理をご覧ください。