Looker 已提供強制性的安全性更新,以防範已驗證的 Looker 使用者在共用相同 LookML 模型時,發生中繼資料外洩的風險。如要在執行個體中啟用緩解措施,您可能需要變更特定 API 端點的用法。此修補程式會影響「官方支援的版本」文件中列出的所有支援 Looker 版本。
異動內容
Looker 已為您的系統套用強制性安全性更新。由於部分 API 端點的行為有所變更,您必須採取行動來啟用安全性更新,並調整對任何已更新 API 的使用方式,以免在 API 指令碼中造成錯誤。
針對由 Looker 代管的執行個體,此修補程式會新增舊版功能,稱為「Disallow Numeric Query IDs」。啟用這項舊版功能後,下列 API 端點的使用方式會有所變更:
GET /queries/<query_id>
端點需要query_id
的縮寫。提供數字查詢 ID 的query_id
會傳回 404 錯誤。POST /render_tasks/queries/<query_id>/<result_format>
端點需要query_id
的縮寫。提供數字查詢 ID 的query_id
會傳回 404 錯誤。GET /running_queries
端點僅供 Looker 管理員使用。
對於客戶代管的執行個體,當執行個體升級至包含此修補程式的 Looker 版本時,系統會啟用先前的 API 端點變更。
我需要做些什麼?
Google Cloud 建議所有客戶完成下列兩項行動:
更新任何包含任何已更新的 API 端點的 API 指令碼。如果您未按照下文所述更新 API 指令碼,可能會導致應用程式發生錯誤。如要瞭解如何使用「系統活動」查看 API 端點用量,請參閱本文的「如何判斷是否使用任何更新的 API 端點?」一節。
啟用修補更新。如需操作說明,請參閱與 Looker 例項相對應的部分:
更新 API 指令碼
無論您使用的是哪個 Looker 版本或 API 版本,如果您使用的是下列 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 值。如要瞭解如何找出查詢的短標值,請參閱「如何找出查詢的短標值?」一節。 - 使用
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>
端點,即可擷取先前取得的相同查詢中繼資料。如要瞭解如何找出查詢的短標值,請參閱「如何找出查詢的短標值?」一節。 - 「
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 值。如要瞭解如何找出查詢的短標值,請參閱「如何找出查詢的短標值?」一節。 - 使用
GET /running_queries
端點的任何應用程式,都只能由 Looker 管理員存取。
如何查看查詢的短標值?
您可以透過下列方式找出查詢的短標值:
如要取得探索專區的網址,請在網址中找到
qid=
變數後方的探索專區網址。您可以使用「系統活動」查看與數字查詢 ID 相關聯的短代碼值。
在 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 版本。請務必先更新任何包含更新 API 端點的 API 指令碼,再更新 Looker 執行個體。
如何判斷是否使用任何更新版 API 端點?
您可以使用 API 用量系統活動探索工具,查看對 Looker 執行個體發出的 API 呼叫清單。
在 Looker 的「探索」選單中,依序選取「系統活動」探索項目,然後選取「API 用量」檢視畫面。
選取「建立日期 > 日期」和「端點」維度,以及「總使用量」評估資料。
在「端點」維度上新增篩選器,並在篩選器欄位中加入下列端點:
/queries/:query_id
/render_tasks/queries/:query_id/:result_format
/running_queries
按一下「執行」。Looker 會顯示這些端點的使用資訊。
如果我需要更多時間更新 API 指令碼,該怎麼辦?
請在 2 月 21 日下午 5 點 (太平洋時間) 前與 Looker 支援團隊聯絡,並告知我們您希望停用「Disallow Numeric Query IDs」舊版功能,直到您更新 API 指令碼為止。
除了我需要為這起事件採取的行動之外,受影響的各方是否需要採取其他步驟,以減輕可能的負面影響?
否
Looker 採取了哪些措施,以免日後發生類似問題?
Looker 和 Google 會維護完善的安全防護計畫,主動防範並找出內部安全漏洞。如需瞭解詳情,請前往 https://cloud.google.com/looker/product/security。
Looker 是否已通知監管機關?
Looker 會遵守所有相關的適用監管規定,揭露這類問題。