Looker 推出了强制性安全更新,以防止共享同一个 LookML 模型的经过身份验证的 Looker 用户发生元数据泄露风险。如需在实例中启用缓解措施,您可能需要更改某些 API 端点的使用情况。此补丁会影响官方支持的版本文档中列出的所有受支持的 Looker 版本。
有何变化?
Looker 已对您的系统应用强制性安全更新。由于部分 API 端点的行为发生了变化,您需要采取措施来启用安全更新,并调整您对任何已更新 API 的使用,以免在 API 脚本中引发错误。
对于 Looker 托管的实例,此补丁添加了一项新的旧版功能,名为停用数字查询 ID。启用此旧版功能后,以下 API 端点的使用方式会发生变化:
GET /queries/<query_id>
端点需要query_id
的 Slug。被赋予数字查询 ID 的query_id
将返回 404 错误。POST /render_tasks/queries/<query_id>/<result_format>
端点需要query_id
的 Slug。被赋予数字查询 ID 的query_id
将返回 404 错误。GET /running_queries
端点仅限 Looker 管理员使用。
对于客户托管的实例,当实例升级到包含此补丁的 Looker 版本时,先前的 API 端点更改将会启用。
我需要做什么?
Google Cloud 建议所有客户完成以下两项操作:
更新所有包含已更新的 API 端点的 API 脚本。如不如下文所述更新 API 脚本,可能会导致应用出错。如需了解如何使用系统活动查看 API 端点使用情况,请参阅本文档的“如何判断我们是否在使用更新后的 API 端点?”部分。
启用补丁更新。如需了解相关说明,请参阅与您的 Looker 实例对应的部分:
更新 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 值。
在 Looker 的“探索”菜单中,依次选择系统活动 > 历史记录“探索”。
在查询视图中,选择 ID 和链接维度。
(可选)在“ID”维度上添加过滤条件,然后在查询 ID 过滤条件字段中输入查询的数字查询 ID。
点击运行。
点击“探索”结果中数字查询 ID 旁边的
[Query]
链接,即可打开基于该数字查询 ID 的“探索”。然后,您可以在探索网址中使用 Slug,该网址紧跟在网址中的
qid=
变量后面。
在 Looker 托管的 Looker(原始)实例上启用补丁
Google Cloud 建议所有 Looker 托管的客户启用新的禁止数字查询 ID 旧版功能。
要启用禁止数字查询 ID,请执行以下操作:
前往 Looker 的“管理”菜单中的管理 > 旧版面板。
启用禁止数字查询 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 调用的列表。
在 Looker 探索菜单中,选择系统活动探索,然后选择 API 使用情况视图。
选择创建日期 > 日期和端点维度,然后选择总用量衡量指标。
针对端点维度添加过滤条件,然后在过滤条件字段中添加以下端点:
/queries/:query_id
/render_tasks/queries/:query_id/:result_format
/running_queries
点击运行。Looker 会显示这些端点的使用情况信息。
如果我需要更多时间来更新 API 脚本,该怎么办?
请于太平洋时间 2 月 21 日下午 5 点之前与 Looker 支持团队联系,并告知我们,在更新您的 API 脚本之前,建议您停用“禁止数字查询 ID” 旧版功能。
除了我需要针对此突发事件采取哪些额外措施之外,受影响的相关方是否需要采取其他措施来减轻可能的不利影响?
否
Looker 采取了哪些措施来防止将来出现类似问题?
Looker 和 Google 制定了可靠的安全计划,以主动预防和识别内部安全漏洞。您可以访问 https://cloud.google.com/looker/product/security 了解详情。
Looker 是否已通知监管机构?
Looker 遵守与此类问题披露相关的所有法规要求。