排查与发现服务相关的问题

本页面介绍如何解决敏感数据保护发现服务的问题。如需详细了解发现服务,请参阅数据分析文件

服务代理无权读取受访问权限控制的列

在对通过政策标记执行列级安全性的表进行分析时,会发生此问题。如果服务代理无权访问受限列,则敏感数据保护会显示以下错误:

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) 页面上向服务代理授予 Fine-Grained Reader 角色。

转到 IAM

敏感数据保护会定期重试其无法分析的分析表。

如需详细了解如何授予角色,请参阅授予单个角色

服务代理没有数据分析访问权限

当组织中的人员创建组织级或文件夹级扫描配置后,会发生此问题。查看扫描配置详细信息时,您会看到扫描状态的值为处于生效状态但有错误。当您查看错误时,敏感数据保护会显示以下错误消息:

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 Service Agent (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 Publisher 角色。

如果 Pub/Sub 主题存在配置或权限问题,敏感数据保护会在最多两周内重新尝试发送 Pub/Sub 通知。两周后,系统将舍弃该通知。

检查模板不能用于剖析其他区域中的数据

当敏感数据保护尝试分析的数据与检查模板所在的区域不同时,就会出现此问题。敏感数据保护会显示以下错误:

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. 在显示的窗格中,点击 Conditions 标签页。
  4. 要分析的表部分中,点击分析支持的表

如需了解详情,请参阅管理时间表