數位果子 BLOG
本站是數位果子的部落格網站。

Google API Key 常被用於 Google Maps Platform、YouTube Data API、Gemini API、Google Places API、Geocoding API,以及其他 Google Cloud 服務。
當網站、App 或系統需要呼叫 Google API 時,程式會透過 API Key 識別所屬的 Google Cloud 專案,並將 API 使用量及可能產生的費用記錄到該專案。
但如果 API Key 被公開放在 GitHub、網站原始碼、外掛設定畫面、教學文件或公開表單中,其他人就可能複製並濫用。Google 官方提醒,公開 API Key 可能造成未授權存取或非預期費用,因此應設定使用限制、定期檢查使用狀況,並刪除不再使用的金鑰。
本文將說明如何判斷 Google API Key 是否被盜用、如何查看異常流量,以及發現問題後應該立即採取哪些處理措施。



讓更多人搜尋到你的產品?現在有機會免費行銷 20 天!
現在越來越多品牌開始透過 內容行銷,讓產品被 Google 搜尋到。
我們現在開放 20 天免費內容行銷體驗,透過搜尋曝光與內容推廣,幫助你的產品被更多人看見。
API Key 遭到外部使用時,不一定會立即收到明確的「金鑰遭竊」通知。多數情況是管理者先看到流量、請求來源或帳單出現異常,才發現問題。
以下幾種情況都值得立即檢查。
原本每天只有幾百次或幾千次 API 請求,卻突然增加到數萬次、數十萬次,甚至在深夜或系統沒有使用者時持續產生流量。
這可能代表:
Google Cloud 的 API 指標可以用來查看 API 請求數量、錯誤率、延遲及不同服務的使用趨勢,協助判斷流量是否符合正常使用模式。
如果原本每月只使用免費額度,或費用一直維持在固定範圍,卻突然收到預算警示、信用卡扣款通知或帳單費用暴增,就要立即檢查。
特別是下列服務可能因大量呼叫而產生費用:
費用增加不一定代表金鑰遭竊,也可能是網站流量增加、程式重複請求或計費方式改變,但都應盡快確認。
Google Cloud 預算功能可以追蹤實際支出與預算的差距,並在達到指定門檻時寄送通知。預算警示主要用於提醒,不等於自動停止服務。
例如公司只使用 Google Maps,卻在 API 使用報表中看到其他未預期的 Google API 請求。
這可能表示:
如果 API Key 沒有設定「API 限制」,取得金鑰的人可能嘗試呼叫同一專案中已啟用的其他 API。Google 官方建議將金鑰限制為只能呼叫實際需要的 API,以降低金鑰外洩後的影響。
如果 API Key 原本只供公司官網使用,卻發現流量來自其他網域、IP 位址、Android App 或 iOS App,就可能已被複製。
常見異常包括:
這時應檢查金鑰是否有設定正確的應用程式限制。
如果 Google 偵測到憑證可能遭到公開,有時會寄送安全通知給專案擁有者、管理員或安全聯絡人。
通知內容可能提到:
收到此類郵件時,不要只修改預算或關閉通知,應直接檢查金鑰使用狀況並進行替換。
發現的情況 | 可能原因 | 風險程度 | 建議處理 |
|---|---|---|---|
API 請求量短時間暴增 | 程式錯誤、爬蟲或金鑰遭濫用 | 高 | 檢查流量來源並暫停舊金鑰 |
Google Cloud 費用突然增加 | 大量未授權請求或重複呼叫 | 高 | 查看帳單明細、輪替金鑰 |
出現未使用過的 API | 金鑰未設定 API 限制 | 高 | 限制 API 並關閉不需要的服務 |
流量來自陌生網域 | API Key 被其他網站複製 | 高 | 更換金鑰並設定 HTTP referrer |
流量來自陌生 IP | 伺服器金鑰遭外洩 | 高 | 更換金鑰並設定固定 IP |
只有網站流量增加 | 正常訪客成長或廣告帶入流量 | 中 | 對照 GA4 與 API 使用量 |
修改網站後流量增加 | 程式重複呼叫 API | 中 | 請工程師檢查程式 |
收到 Google 安全通知 | 金鑰可能出現在公開位置 | 高 | 立即建立新金鑰並刪除舊金鑰 |
金鑰出現在 GitHub | 原始碼公開造成外洩 | 極高 | 立即輪替,不能只刪除程式碼 |
金鑰完全沒有限制 | 任何來源都可能嘗試使用 | 高 | 加入應用程式與 API 限制 |
前往:
請使用管理該 API Key 的 Google 帳號登入,並在頁面上方選擇正確的 Google Cloud 專案。
如果公司有多個網站或多個專案,務必先確認目前選擇的是哪一個專案,避免查看到錯誤資料。
前往:
在這個頁面中,可以查看:
Google Cloud 提供 API 使用指標,讓管理者追蹤不同 Google API 的使用狀況並找出異常。
建議將時間範圍切換為:
如果流量是突然增加,可以先看最近24小時,再與前一天或上一週相同時段比較。
在「API 與服務」頁面中選擇特定 API,例如:
進入單一 API 頁面後,檢查:
如果網站訪客只有幾百人,API 卻出現數十萬次呼叫,就不太合理。
前往:
找到需要檢查的 API Key,確認以下項目:
建議每把金鑰都使用容易辨識的名稱,例如:
不要使用「API Key 1」「API Key 2」這類無法判斷用途的名稱。
只看請求數量還不夠,還要確認流量來源是否符合預期。
網站前端常見於 Google Maps JavaScript API。這類金鑰會出現在瀏覽器載入的程式中,因此重點不是完全隱藏,而是設定「網站限制」。
應檢查允許的網站來源是否只包含自己的網域,例如:
https://example.com/*
https://www.example.com/*
若有測試站,也可以加入:
https://test.example.com/*
不要只設定過度寬鬆的來源,例如:
*
http://*
https://*
這類設定等於沒有有效限制。
後端伺服器應設定固定 IP 位址限制,只允許公司的伺服器呼叫。
例如:
203.0.113.10
203.0.113.11
如果伺服器 IP 會變動,應先確認主機商是否能提供固定 IP,再設定限制。
Android 應用程式應限制:
如果測試版和正式版使用不同簽章,可能需要分別設定或建立不同金鑰。
iOS 應用程式應限制特定 Bundle ID,例如:
com.example.companyapp
部分 API 的監控資訊可能不足以直接顯示完整使用者來源。這時可以交叉比對:
如果 API 請求量增加,但網站流量、App 使用者及伺服器工作量都沒有增加,就要提高警覺。
Google Cloud Monitoring 可以利用服務執行階段指標查看 API 請求量。
常見指標為:
serviceruntime.googleapis.com/api/request_count
該指標可以搭配 credential_id 標籤篩選特定 API Key 的唯一識別資訊,協助判斷個別金鑰的使用量。
可依下列方向建立圖表:
如果不熟悉 Metrics Explorer,也可以先從「API 與服務」資訊主頁觀察;需要深入調查時,再請工程師使用 Cloud Monitoring 或 Cloud Logging 分析。
Cloud Audit Logs 主要能記錄 Google Cloud 資源中的管理與存取活動,例如:
API Keys 服務支援部分稽核記錄,可以用來追蹤誰在何時管理或修改金鑰。
但需要注意:
稽核記錄不一定能完整告訴你,是哪一個外部人士複製並使用了金鑰。
因此調查時要分成兩個方向:
兩者必須搭配檢查。
在刪除舊金鑰之前,先記錄:
保留資料有助於後續與工程師、主機商、Google Cloud Billing 支援團隊或公司內部資安人員確認問題。
不要直接在舊金鑰上反覆修改後繼續使用。若已經懷疑外洩,較安全的做法是建立新金鑰。
前往:
依序操作:
Google 官方對憑證遭入侵的處理建議,是建立新的 API Key、套用與原金鑰相符的必要限制、將新金鑰部署至所有使用位置,確認運作後再刪除舊金鑰。
常見需要替換的位置包括:
.env 環境變數替換後,要實際測試:
REQUEST_DENIEDAPI_KEY_INVALID確認新金鑰已正常運作後,應盡快刪除舊金鑰。
不要因為舊金鑰「暫時沒有流量」就保留。API Key 通常不會因長時間未使用而自動失效,外洩金鑰若沒有被撤銷或輪替,仍可能持續遭到利用。
如果無法立即確認所有程式是否已換新,可以先:
但若費用正在快速增加,應優先阻止損失,必要時直接刪除或停用舊金鑰。
每一把新金鑰至少應設定兩種限制。
依使用環境選擇:
只允許金鑰呼叫真正需要的 API。
例如網站只使用 Google Maps JavaScript API,就不要讓同一把金鑰同時存取所有已啟用的 Google API。
Google 官方指出,加入金鑰限制可以降低 API Key 遭入侵後造成的影響。
不安全。
只要金鑰曾經被提交到公開 GitHub 儲存庫,即使後來刪除該行程式碼,金鑰仍可能存在於:
因此正確做法不是只刪除公開程式碼,而是:
Google 官方也建議避免將 API Key 直接寫入程式碼,應改用環境變數或存放在原始碼目錄之外的設定檔。
不一定。
某些 Google Maps 前端服務本來就需要由瀏覽器載入 API Key,因此使用者可能在瀏覽器開發者工具或網站原始碼中看到金鑰。
這種情況的安全重點不是「完全看不到金鑰」,而是:
看到金鑰不代表一定遭到濫用,但「看得到而且沒有限制」就具有較高風險。
是否能退款需要由 Google Cloud Billing 團隊依個案判斷,不能保證一定退費。
發現異常費用後,建議先完成:
Google Cloud Billing 問題通常需要由帳單帳戶管理員聯絡支援;若不是帳單管理員,官方也提供其他問題處理入口。
官方入口:
請注意,聯絡支援之前仍應先停止異常使用,避免等待處理期間繼續產生費用。
不要讓官網、App、測試站與後端伺服器共用同一把 API Key。
建議至少拆分成:
這樣即使其中一把外洩,也能縮小影響範圍。
不應保留「不受限制」的正式環境 API Key。
至少設定:
伺服器端金鑰應放在:
前往:
可依公司正常使用金額設定多個警示門檻,例如:
預算警示能協助提早發現異常,但通常不會自動限制 API 或停止計費。
可依正常流量設定:
配額太低可能造成正常服務中斷,設定前應先觀察一段時間的實際流量。
建議定期盤點:
Google 官方建議定期輪替 API Key,建立替代金鑰、更新應用程式後,再刪除舊金鑰。
如果只是前端網站使用的 Google Maps API Key,而且已正確限制網域與 API,通常不代表一定外洩。
但如果金鑰:
就應立即輪替。
常見原因包括:
www 網域可以先查看瀏覽器開發者工具中的錯誤訊息,再依實際網域補充限制。
可以,但正在使用舊金鑰的網站或系統可能立即停止運作。
較穩妥的流程是:
如果異常費用正快速增加,則應優先阻止損失。
停用專案帳單可能使該專案中的計費服務停止,但也可能造成正式網站、App 或其他雲端服務中斷。
因此應先確認:
不要在未確認影響範圍前隨意關閉整個付款帳戶。
不會。刪除金鑰只能阻止後續繼續使用,不會自動取消已經產生的帳單。
如有異常費用,仍需保留證據並聯絡 Google Cloud Billing 支援。
不一樣。
API Key 通常用於識別呼叫 API 的專案或應用程式;服務帳戶金鑰則可能代表服務帳戶身分,並依其 IAM 權限存取 Google Cloud 資源。
如果外洩的是 JSON 格式服務帳戶金鑰,風險通常更高,應立即停用或刪除該金鑰、檢查服務帳戶權限及稽核記錄,而不能只依照一般 API Key 的方式處理。
以下網址請以一般文字連結或按鈕方式放入 WordPress,不要使用「嵌入內容」區塊。
判斷 Google API Key 是否被盜用,不能只看金鑰是否出現在網站程式中,而要綜合檢查:
一旦懷疑金鑰已外洩,應先保存紀錄、建立新金鑰、替換正式系統,再刪除舊金鑰。不要只修改程式碼或刪除公開貼文,因為舊金鑰仍可能已被其他人保存。
如果您的網站使用 Google Maps、Google API、GA4、Google Ads 或其他 Google Cloud 服務,卻不確定網站流量、廣告轉換與 API 使用量之間的關係,可以從網站架構、數據追蹤與行銷流程重新盤點。
數位果子科技有限公司 提供:
我們的服務重點為網站、數位行銷、SEO內容與廣告投放,不提供 Google 帳號救援、Google Cloud 帳務申訴或官方客服代理服務。若涉及 API 異常費用或退款,仍應透過 Google Cloud 官方 Billing 支援管道提出。
數位果子科技有限公司
合作專線:0970-357-535
LINE:cherng65