排解探索服務問題

本頁面說明如何解決 Sensitive Data Protection 探索服務的問題。如要進一步瞭解探索服務,請參閱「資料剖析」。如要瞭解如何查看與探索掃描設定相關的錯誤,請參閱「查看設定錯誤」。

服務代理容器未啟用 DLP API

建立組織層級掃描設定時,如果對選為服務代理容器的專案沒有 serviceusage.services.enable 權限,就會發生這個問題。Sensitive Data Protection 無法自動在專案中啟用 DLP API。

Permission denied to enable service [dlp.googleapis.com]

如要解決這個問題,請按照下列其中一種做法進行。無論是哪一種情況,您都必須取得必要權限。詳情請參閱「在組織或資料夾層級使用資料設定檔所需的角色」。

建立新的服務代理容器

  1. 請要求管理員授予您組織的專案建立者 (roles/resourcemanager.projectCreator) 角色。
  2. 編輯組織層級掃描設定。
  3. 在「Service agent container」(服務代理容器) 區段中,按一下「Create」(建立) 並按照提示操作,建立新的服務代理容器。
  4. 儲存設定。

更新服務代理容器

  1. 請要求管理員授予您具備 serviceusage.services.enable 權限的角色,並將該角色套用至您選為服務代理容器的專案。
  2. 查看掃描設定詳細資料,瞭解目前有哪些錯誤。
  3. 找出這項錯誤,然後按一下「修復」。

服務代理沒有讀取受存取控管資料欄的權限

如果資料表透過政策標記強制執行資料欄層級安全性,剖析這類資料表時就會發生這個問題。如果服務代理沒有存取受限資料欄的權限,Sensitive Data Protection 會顯示下列錯誤:

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」頁面

Sensitive Data Protection 會定期重試剖析失敗的資料。

如要進一步瞭解如何授予角色,請參閱「授予單一角色」。

服務代理沒有資料剖析存取權

當貴組織成員建立組織或資料夾層級的掃描設定後,就會發生這個問題。查看掃描設定詳細資料時,您會發現「Scan status」(掃描狀態) 的值為「Active with errors」(有效,但有錯誤)。查看錯誤時,Sensitive Data Protection 會顯示下列錯誤訊息:

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

發生這項錯誤的原因是,Sensitive Data Protection 在建立掃描設定時,無法自動將 DLP 組織資料剖析檔驅動程式角色授予服務代理。掃描設定的建立者沒有授予資料剖析存取權的權限,因此 Sensitive Data Protection 無法代為執行。

如要解決這個問題,請參閱「將資料剖析存取權授予服務代理」。

服務帳戶沒有查詢資料表的權限

如果 Sensitive Data Protection 嘗試剖析服務代理沒有查詢權限的資料表,就會發生這個問題。Sensitive Data Protection 顯示下列錯誤:

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. 在 Google Cloud 控制台啟用 Cloud Shell。

    啟用 Cloud Shell

    Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。

  2. 取得資料表目前的 IAM 政策,並輸出至 stdout:

    bq get-iam-policy TABLE
    

    將 TABLE 替換為 BigQuery 資料表的完整資源名稱,格式為 PROJECT_ID:DATASET_ID.TABLE_ID,例如 project-id:dataset-id.table-id。

  3. 將 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
    }
    

    Sensitive Data Protection 會定期重試剖析失敗的資料。

服務帳戶沒有將訊息發布至 Pub/Sub 主題的權限

如果 Sensitive Data Protection 嘗試將通知發布至服務代理沒有發布權限的 Pub/Sub 主題,就會發生這個問題。Sensitive Data Protection 顯示下列錯誤:

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 通知,最長兩週。兩週後,系統會捨棄通知。

檢查範本無法用於剖析其他區域的資料

如果 Sensitive Data Protection 嘗試剖析的資料,與檢查範本不在同一個區域,就會發生這個問題。Sensitive Data Protection 顯示下列錯誤:

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. 在「Inspection template details」(檢查範本詳細資料) 頁面,複製範本的完整資源名稱。完整資源名稱的格式如下:

    projects/PROJECT_ID/locations/REGION/inspectTemplates/TEMPLATE_ID
  3. 編輯掃描設定,並輸入新檢查範本的完整資源名稱。

  4. 按一下 [儲存]。

Sensitive Data Protection 會定期重試剖析失敗的資料。

Sensitive Data Protection 嘗試剖析不支援的資料表

如果 Sensitive Data Protection 嘗試剖析不支援的資料表,就會發生這個問題。不過,您仍會取得該資料表的部分設定檔,其中包含資料表的中繼資料。不過,部分設定檔會顯示下列錯誤:

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

如果不想收到不支援資料表的部分設定檔和錯誤,請按照下列步驟操作:

  1. 編輯掃描設定。
  2. 在「管理排程」步驟中,按一下「編輯排程」。
  3. 在隨即顯示的窗格中,按一下「條件」分頁標籤。
  4. 在「Tables to profile」(要剖析的資料表) 專區,按一下「Profile supported tables」(剖析支援的資料表)。

詳情請參閱「管理排程」。

預先建立的數據分析報表無法正常載入

請參閱「排解預先建立報表的錯誤」。

請參閱說明文件中的「排解錯誤」一節,瞭解如何根據資料機密程度控管 IAM 資源存取權。

後續步驟