Looker 发布了一项强制性安全更新,以防止共享同一 LookML 模型的经过身份验证的 Looker 用户之间存在元数据泄露风险。如需在您的实例中启用缓解措施,您可能需要更改某些 API 端点的使用方式。此补丁会影响官方支持的版本文档中列出的所有受支持的 Looker 版本。
具体变化
Looker 已向您的系统应用一项强制性安全更新。由于某些 API 端点的行为发生了变化,因此您需要采取措施来启用安全更新,并调整对所有已更新 API 的使用方式,以免在 API 脚本中导致错误。
对于 Looker 托管的实例,此补丁添加了一项名为禁止使用数字查询 ID 的新旧版功能。启用此旧版功能后,以下 API 端点的使用方式会发生变化:
GET /queries/<query_id>
端点需要为query_id
提供短标签。如果为query_id
指定数字查询 ID,则会返回 404 错误。POST /render_tasks/queries/<query_id>/<result_format>
端点需要为query_id
提供一个标记。如果为query_id
指定数字查询 ID,则会返回 404 错误。- 只有 Looker 管理员可以使用
GET /running_queries
端点。
对于客户托管的实例,当实例升级到包含此补丁的 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 值?”部分。 - 使用
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 值。
在 Looker 探索菜单中,依次选择 System Activity > History Explore。
在查询视图中,选择 ID 和关联维度。
(可选)在 ID 维度上添加过滤条件,然后在查询 ID 过滤条件字段中输入查询的数字查询 ID。
点击运行。
点击“探索”结果中数字查询 ID 旁边的
[Query]
链接,系统就会根据该数字查询 ID 打开“探索”页面。然后,您可以在“探索”的网址中使用该短标签,该短标签位于网址中的
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 用量系统活动探索查看对 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 遵循与披露此类问题相关的所有适当监管要求。