Looker Query ID API 补丁通知

Looker 推出了强制性安全更新,以防止共享同一个 LookML 模型的经过身份验证的 Looker 用户发生元数据泄露风险。如需在实例中启用缓解措施,您可能需要更改某些 API 端点的使用情况。此补丁会影响官方支持的版本文档中列出的所有受支持的 Looker 版本。

有何变化?

Looker 已对您的系统应用强制性安全更新。由于部分 API 端点的行为发生了变化,您需要采取措施来启用安全更新,并调整您对任何已更新 API 的使用,以免在 API 脚本中引发错误。

对于 Looker 托管的实例,此补丁添加了一项新的旧版功能,名为停用数字查询 ID。启用此旧版功能后,以下 API 端点的使用方式会发生变化:

对于客户托管的实例,当实例升级到包含此补丁的 Looker 版本时,先前的 API 端点更改将会启用。

我需要做什么?

Google Cloud 建议所有客户完成以下两项操作:

更新 API 脚本

如果您使用的是下面所列的某个 API 端点,那么无论您使用的是哪个 Looker 版本或 API 版本,都可能需要采取措施。建议的操作因您使用的是 API 3.0/API 3.1 还是 API 4.0 而异。

  • GET /queries/<query_id>
  • POST /render_tasks/queries/<query_id>/<result_format>
  • GET /running_queries

如果您使用的是 API 4.0

如果您使用的是 API 4.0 且使用上一部分中列出的端点之一,请更改以下应用代码:

  • 将与 GET /queries/<query_id>POST /render_tasks/queries/<query_id>/<result_format> 端点一起使用的所有数字 query_ids(例如 32、124 等)替换为查询的 slug 值。有关查找查询的 Slug 值的说明,请参阅“如何查找查询的 Slug 值?”部分。
  • 只有 Looker 管理员才能使用任何使用 GET /running_queries 端点的应用。

如果您使用的是 API 3.0 或 3.1

如果您使用的是 API 3.0 或 API 3.1,并且使用上一部分中列出的端点之一,请更改以下应用代码:

  • GET /queries/<query_id> 端点将无法再正常使用。将 GET /queries/<query_id> 端点替换为 GET /queries/slug/<slug> 端点,以检索您之前获得的相同查询元数据。有关查找查询的 Slug 值的说明,请参阅“如何查找查询的 Slug 值?”部分。
  • POST /render_tasks/queries/<query_id>/<result_format> 端点将无法再正常使用。支持 API 3.1 的 Looker SDK 将同时支持 API 3.1 和 API 4.0。如果您未使用任何 Looker 的 SDK,请修改 http request path 以为该调用使用 4.0(而不是 3.1)。然后将所有数字 query_ids(例如 32、124 等)替换为查询的 slug 值。有关查找查询的 Slug 值的说明,请参阅“如何查找查询的 Slug 值?”部分。
  • 只有 Looker 管理员才能使用任何使用 GET /running_queries 端点的应用。

如何查找查询的 Slug 值?

您可以通过以下方式查找查询的 Slug 值:

  • 对于探索,您可以在探索网址中的 qid= 变量后面找到 Slug。

  • 您可以使用系统活动,通过与数字查询 ID 相关联的 Slug 值。

    1. 在 Looker 的“探索”菜单中,依次选择系统活动 > 历史记录“探索”

    2. 查询视图中,选择 ID链接维度。

    3. (可选)在“ID”维度上添加过滤条件,然后在查询 ID 过滤条件字段中输入查询的数字查询 ID。

    4. 点击运行

    5. 点击“探索”结果中数字查询 ID 旁边的 [Query] 链接,即可打开基于该数字查询 ID 的“探索”。

    6. 然后,您可以在探索网址中使用 Slug,该网址紧跟在网址中的 qid= 变量后面。

在 Looker 托管的 Looker(原始)实例上启用补丁

Google Cloud 建议所有 Looker 托管的客户启用新的禁止数字查询 ID 旧版功能

要启用禁止数字查询 ID,请执行以下操作:

  1. 前往 Looker 的“管理”菜单中的管理 > 旧版面板。

  2. 启用禁止数字查询 ID 切换开关:

在 Looker (Google Cloud Core) 实例上启用补丁

系统会自动在所有 Looker (Google Cloud Core) 实例上启用该补丁。您无需执行任何操作即可启用该补丁,但请务必更新包含更新后的 API 端点的所有 API 脚本

在客户托管的实例上启用补丁

所有客户托管的实例都应将其 Looker 实例更新为包含最新补丁的 Looker 版本。此补丁包含在 Looker 版本 23.18、23.20、24.0 和 24.2 以及 Looker ESR 版本 23.0、23.6、23.12 和 24.0 的最新更新中。在更新 Looker 实例之前,请务必更新包含任何已更新 API 端点的所有 API 脚本

如何判断我们是否使用了任何更新后的 API 端点?

您可以使用 API Usage System 活动探索来查看对 Looker 实例进行的 API 调用的列表。

  1. 在 Looker 探索菜单中,选择系统活动探索,然后选择 API 使用情况视图。

  2. 选择创建日期 > 日期端点维度,然后选择总用量衡量指标。

  3. 针对端点维度添加过滤条件,然后在过滤条件字段中添加以下端点:

    • /queries/:query_id
    • /render_tasks/queries/:query_id/:result_format
    • /running_queries
  4. 点击运行。Looker 会显示这些端点的使用情况信息。

如果我需要更多时间来更新 API 脚本,该怎么办?

请于太平洋时间 2 月 21 日下午 5 点之前与 Looker 支持团队联系,并告知我们,在更新您的 API 脚本之前,建议您停用“禁止数字查询 ID” 旧版功能

除了我需要针对此突发事件采取哪些额外措施之外,受影响的相关方是否需要采取其他措施来减轻可能的不利影响?

Looker 采取了哪些措施来防止将来出现类似问题?

Looker 和 Google 制定了可靠的安全计划,以主动预防和识别内部安全漏洞。您可以访问 https://cloud.google.com/looker/product/security 了解详情。

Looker 是否已通知监管机构?

Looker 遵守与此类问题披露相关的所有法规要求。