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

本页介绍了如何解决 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) 页面上向服务代理授予 Fine-Grained Reader 角色。

转到 IAM

Sensitive Data Protection 会定期重新尝试剖析之前未能成功剖析的数据。

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

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

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

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

发生此错误的原因是,在创建扫描配置时,敏感数据保护无法自动向服务代理授予 DLP Organization Data Profiles Driver 角色。扫描配置的创建者没有授予数据分析访问权限的权限,因此敏感数据保护功能无法代表他们执行此操作。

要解决此问题,请参阅向服务代理授予数据剖析访问权限

服务账号无权查询表

当敏感数据保护功能尝试剖析服务代理无权查询的表时,就会出现此问题。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. 确认该表仍然存在。如果表存在,请执行后续步骤。

  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
    }
    

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

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

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

当敏感数据保护功能尝试对不在检查模板所在区域中的数据执行剖析时,就会出现此问题。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. 检查模板详情页面上,复制模板的完整资源名称。完整资源名称采用以下格式:

    projects/PROJECT_ID/locations/REGION/inspectTemplates/TEMPLATE_ID
  3. 修改扫描配置,然后输入新检查模板的完整资源名称。

  4. 点击保存

Sensitive Data Protection 会定期重新尝试剖析之前未能成功剖析的数据。

敏感数据保护功能尝试对不受支持的表进行性能分析

当敏感数据保护功能尝试对不受支持的表进行分析时,就会出现此问题。对于该表,您仍然会获得包含该表元数据的部分配置文件。不过,部分配置文件会显示以下错误:

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

如果您不想为不受支持的表获取部分配置文件和错误,请按以下步骤操作:

  1. 修改扫描配置
  2. 管理时间表步骤中,点击 修改时间表
  3. 在随即显示的窗格中,点击条件标签页。
  4. 要分析的表部分中,点击分析受支持的表

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

预先创建的 Looker 报告无法正常加载

请参阅使用预先创建的报告排查错误

请参阅关于根据数据敏感性控制 IAM 对资源的访问权限的文档中的排查错误部分。