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 值?”部分。
  • 使用 GET /running_queries 端点的任何应用都将仅限 Looker 管理员使用。

如果您使用的是 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 值?”部分。
  • 使用 GET /running_queries 端点的任何应用都将仅限 Looker 管理员使用。

如何查找查询的 Slug 值?

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

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

  • 您可以使用系统活动查找与数值查询 ID 关联的 Slug 值。

    1. 在 Looker 探索菜单中,依次选择 System Activity > History Explore

    2. 查询视图中,选择 ID关联维度。

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

    4. 点击运行

    5. 点击“探索”结果中数字查询 ID 旁边的 [Query] 链接,系统就会根据该数字查询 ID 打开“探索”页面。

    6. 然后,您可以在“探索”的网址中使用该短标签,该短标签位于网址中的 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 用量系统活动探索查看对 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 遵循与披露此类问题相关的所有适当监管要求。