如何判斷 Google API Key 是否被盜用?異常流量、費用暴增與處理方式完整教學

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 天免費內容行銷體驗,透過搜尋曝光與內容推廣,幫助你的產品被更多人看見。

Google API Key 被盜用會出現哪些跡象?

API Key 遭到外部使用時,不一定會立即收到明確的「金鑰遭竊」通知。多數情況是管理者先看到流量、請求來源或帳單出現異常,才發現問題。

以下幾種情況都值得立即檢查。

1. API 使用量突然暴增

原本每天只有幾百次或幾千次 API 請求,卻突然增加到數萬次、數十萬次,甚至在深夜或系統沒有使用者時持續產生流量。

這可能代表:

  • 網站程式發生無限迴圈
  • 前端重複載入 API
  • 爬蟲或機器人持續觸發功能
  • API Key 被其他網站或程式使用
  • 惡意人士利用金鑰大量發送請求

Google Cloud 的 API 指標可以用來查看 API 請求數量、錯誤率、延遲及不同服務的使用趨勢,協助判斷流量是否符合正常使用模式。

2. Google Cloud 費用突然增加

如果原本每月只使用免費額度,或費用一直維持在固定範圍,卻突然收到預算警示、信用卡扣款通知或帳單費用暴增,就要立即檢查。

特別是下列服務可能因大量呼叫而產生費用:

  • Google Maps JavaScript API
  • Places API
  • Geocoding API
  • Routes API
  • Street View Static API
  • Gemini API
  • Vision API
  • Translation API
  • Speech-to-Text API

費用增加不一定代表金鑰遭竊,也可能是網站流量增加、程式重複請求或計費方式改變,但都應盡快確認。

Google Cloud 預算功能可以追蹤實際支出與預算的差距,並在達到指定門檻時寄送通知。預算警示主要用於提醒,不等於自動停止服務。

3. 出現不認識的 API 服務

例如公司只使用 Google Maps,卻在 API 使用報表中看到其他未預期的 Google API 請求。

這可能表示:

  • 同一把 API Key 沒有限制可使用的 API
  • 開發人員曾測試其他 API,但沒有關閉
  • 其他程式取得金鑰後呼叫不同服務
  • 專案中還有其他成員建立或使用金鑰

如果 API Key 沒有設定「API 限制」,取得金鑰的人可能嘗試呼叫同一專案中已啟用的其他 API。Google 官方建議將金鑰限制為只能呼叫實際需要的 API,以降低金鑰外洩後的影響。

4. 請求來源不是自己的網站或伺服器

如果 API Key 原本只供公司官網使用,卻發現流量來自其他網域、IP 位址、Android App 或 iOS App,就可能已被複製。

常見異常包括:

  • 不認識的網站網域
  • 海外或未知伺服器 IP
  • 非公司開發的 Android 套件名稱
  • 不認識的 iOS Bundle ID
  • 不符合營業時間的固定大量流量
  • 與網站訪客數完全不成比例的 API 呼叫量

這時應檢查金鑰是否有設定正確的應用程式限制。

5. 收到 Google 的金鑰暴露或安全警示

如果 Google 偵測到憑證可能遭到公開,有時會寄送安全通知給專案擁有者、管理員或安全聯絡人。

通知內容可能提到:

  • API Key 可能已公開
  • 金鑰沒有設定限制
  • 偵測到異常 API 使用
  • 專案費用異常增加
  • 憑證可能出現在公開程式碼儲存庫

收到此類郵件時,不要只修改預算或關閉通知,應直接檢查金鑰使用狀況並進行替換。


Google API Key 是否被盜用快速對照表

發現的情況
可能原因
風險程度
建議處理
API 請求量短時間暴增
程式錯誤、爬蟲或金鑰遭濫用
檢查流量來源並暫停舊金鑰
Google Cloud 費用突然增加
大量未授權請求或重複呼叫
查看帳單明細、輪替金鑰
出現未使用過的 API
金鑰未設定 API 限制
限制 API 並關閉不需要的服務
流量來自陌生網域
API Key 被其他網站複製
更換金鑰並設定 HTTP referrer
流量來自陌生 IP
伺服器金鑰遭外洩
更換金鑰並設定固定 IP
只有網站流量增加
正常訪客成長或廣告帶入流量
對照 GA4 與 API 使用量
修改網站後流量增加
程式重複呼叫 API
請工程師檢查程式
收到 Google 安全通知
金鑰可能出現在公開位置
立即建立新金鑰並刪除舊金鑰
金鑰出現在 GitHub
原始碼公開造成外洩
極高
立即輪替,不能只刪除程式碼
金鑰完全沒有限制
任何來源都可能嘗試使用
加入應用程式與 API 限制

如何查看 Google API Key 的使用量?

步驟一:登入 Google Cloud Console

前往:

Google Cloud Console

請使用管理該 API Key 的 Google 帳號登入,並在頁面上方選擇正確的 Google Cloud 專案。

如果公司有多個網站或多個專案,務必先確認目前選擇的是哪一個專案,避免查看到錯誤資料。


步驟二:進入 API 與服務資訊主頁

前往:

Google Cloud API 與服務資訊主頁

在這個頁面中,可以查看:

  • 最近的 API 流量
  • 各項 API 的請求次數
  • 錯誤率
  • 延遲時間
  • 已啟用的 API
  • 哪些服務使用量最高

Google Cloud 提供 API 使用指標,讓管理者追蹤不同 Google API 的使用狀況並找出異常。

建議將時間範圍切換為:

  • 最近1小時
  • 最近6小時
  • 最近24小時
  • 最近7天
  • 最近30天

如果流量是突然增加,可以先看最近24小時,再與前一天或上一週相同時段比較。


步驟三:查看單一 API 的使用狀況

在「API 與服務」頁面中選擇特定 API,例如:

  • Maps JavaScript API
  • Places API
  • Geocoding API
  • YouTube Data API
  • Generative Language API
  • Cloud Translation API

進入單一 API 頁面後,檢查:

  1. 每分鐘或每天的請求次數
  2. 成功與失敗請求比例
  3. 4xx、5xx 錯誤數量
  4. 流量開始增加的時間
  5. 是否與網站改版、活動或廣告投放時間吻合

如果網站訪客只有幾百人,API 卻出現數十萬次呼叫,就不太合理。


步驟四:進入憑證頁面查看 API Key

前往:

Google Cloud 憑證管理頁面

找到需要檢查的 API Key,確認以下項目:

  • 金鑰名稱
  • 建立日期
  • 是否仍在使用
  • 應用程式限制
  • API 限制
  • 是否有不認識的其他金鑰
  • 是否有 OAuth 用戶端或服務帳戶憑證

建議每把金鑰都使用容易辨識的名稱,例如:

  • 官網前端-Google Maps
  • 訂房系統後端-Places API
  • 行動 App Android 正式版
  • 內部測試環境
  • 開發人員本機測試

不要使用「API Key 1」「API Key 2」這類無法判斷用途的名稱。


如何判斷流量是不是自己的?

只看請求數量還不夠,還要確認流量來源是否符合預期。

情況一:網站前端使用的 API Key

網站前端常見於 Google Maps JavaScript API。這類金鑰會出現在瀏覽器載入的程式中,因此重點不是完全隱藏,而是設定「網站限制」。

應檢查允許的網站來源是否只包含自己的網域,例如:

https://example.com/*
https://www.example.com/*

若有測試站,也可以加入:

https://test.example.com/*

不要只設定過度寬鬆的來源,例如:

*
http://*
https://*

這類設定等於沒有有效限制。

情況二:伺服器後端使用的 API Key

後端伺服器應設定固定 IP 位址限制,只允許公司的伺服器呼叫。

例如:

203.0.113.10
203.0.113.11

如果伺服器 IP 會變動,應先確認主機商是否能提供固定 IP,再設定限制。

情況三:Android App 使用的 API Key

Android 應用程式應限制:

  • Android 套件名稱
  • SHA-1 憑證指紋

如果測試版和正式版使用不同簽章,可能需要分別設定或建立不同金鑰。

情況四:iOS App 使用的 API Key

iOS 應用程式應限制特定 Bundle ID,例如:

com.example.companyapp

情況五:無法判斷來源

部分 API 的監控資訊可能不足以直接顯示完整使用者來源。這時可以交叉比對:

  • Google Cloud API 使用量
  • Cloud Logging
  • 網站伺服器存取紀錄
  • CDN 或 Cloudflare 紀錄
  • GA4 流量
  • 程式部署紀錄
  • Google Cloud 帳單明細

如果 API 請求量增加,但網站流量、App 使用者及伺服器工作量都沒有增加,就要提高警覺。


如何使用 Cloud Monitoring 找出異常請求?

Google Cloud Monitoring 可以利用服務執行階段指標查看 API 請求量。

常見指標為:

serviceruntime.googleapis.com/api/request_count

該指標可以搭配 credential_id 標籤篩選特定 API Key 的唯一識別資訊,協助判斷個別金鑰的使用量。

可依下列方向建立圖表:

  • 每分鐘請求數
  • 每小時請求數
  • 各 API 服務的請求量
  • 不同回應代碼的數量
  • 特定 API Key 的流量趨勢
  • 前一天與本日流量比較

如果不熟悉 Metrics Explorer,也可以先從「API 與服務」資訊主頁觀察;需要深入調查時,再請工程師使用 Cloud Monitoring 或 Cloud Logging 分析。


Cloud Audit Logs 能不能查出誰使用 API Key?

Cloud Audit Logs 主要能記錄 Google Cloud 資源中的管理與存取活動,例如:

  • 建立 API Key
  • 修改 API Key
  • 更新金鑰限制
  • 刪除 API Key
  • 查詢金鑰資訊

API Keys 服務支援部分稽核記錄,可以用來追蹤誰在何時管理或修改金鑰。

但需要注意:

稽核記錄不一定能完整告訴你,是哪一個外部人士複製並使用了金鑰。

因此調查時要分成兩個方向:

  1. 誰修改、建立或刪除了金鑰
  2. 哪些服務、時間與來源正在使用金鑰

兩者必須搭配檢查。


發現 Google API Key 可能被盜用,應該怎麼處理?

第一階段:立即保留證據

在刪除舊金鑰之前,先記錄:

  • API Key 名稱
  • 金鑰 ID
  • 異常發生時間
  • API 請求量截圖
  • 帳單異常截圖
  • 使用中的 API 名稱
  • 已設定的限制
  • 可疑網域或 IP
  • Google 寄來的警示信
  • 最近的程式部署時間

保留資料有助於後續與工程師、主機商、Google Cloud Billing 支援團隊或公司內部資安人員確認問題。


第二階段:建立新的 API Key

不要直接在舊金鑰上反覆修改後繼續使用。若已經懷疑外洩,較安全的做法是建立新金鑰。

前往:

Google Cloud 憑證管理頁面

依序操作:

  1. 點選「建立憑證」
  2. 選擇「API 金鑰」
  3. 為新金鑰設定名稱
  4. 設定應用程式限制
  5. 設定 API 限制
  6. 儲存設定

Google 官方對憑證遭入侵的處理建議,是建立新的 API Key、套用與原金鑰相符的必要限制、將新金鑰部署至所有使用位置,確認運作後再刪除舊金鑰。


第三階段:替換網站、App 或伺服器中的舊金鑰

常見需要替換的位置包括:

  • WordPress 外掛
  • WordPress 佈景主題
  • 網站 JavaScript
  • PHP、Python、Node.js 或 Java 程式
  • .env 環境變數
  • 主機控制台的環境設定
  • Google Cloud Run
  • App Engine
  • Firebase
  • GitHub Actions
  • CI/CD 部署設定
  • Android App
  • iOS App
  • Make、Zapier 或其他自動化平台
  • 公司內部測試工具

替換後,要實際測試:

  • 地圖是否正常顯示
  • 地址搜尋是否正常
  • 路線規劃是否正常
  • 後端 API 是否成功
  • App 是否能正常載入
  • 是否出現 REQUEST_DENIED
  • 是否出現 API_KEY_INVALID
  • 是否出現 referrer 或 IP 限制錯誤

第四階段:停用或刪除舊 API Key

確認新金鑰已正常運作後,應盡快刪除舊金鑰。

不要因為舊金鑰「暫時沒有流量」就保留。API Key 通常不會因長時間未使用而自動失效,外洩金鑰若沒有被撤銷或輪替,仍可能持續遭到利用。

如果無法立即確認所有程式是否已換新,可以先:

  1. 對舊金鑰加入嚴格限制
  2. 觀察必要服務是否受到影響
  3. 完成新金鑰部署
  4. 再刪除舊金鑰

但若費用正在快速增加,應優先阻止損失,必要時直接刪除或停用舊金鑰。


第五階段:限制新 API Key

每一把新金鑰至少應設定兩種限制。

應用程式限制

依使用環境選擇:

  • 網站:HTTP 參照網址
  • 後端伺服器:IP 位址
  • Android App:套件名稱與 SHA-1
  • iOS App:Bundle ID

API 限制

只允許金鑰呼叫真正需要的 API。

例如網站只使用 Google Maps JavaScript API,就不要讓同一把金鑰同時存取所有已啟用的 Google API。

Google 官方指出,加入金鑰限制可以降低 API Key 遭入侵後造成的影響。


API Key 出現在 GitHub,刪除程式碼就安全了嗎?

不安全。

只要金鑰曾經被提交到公開 GitHub 儲存庫,即使後來刪除該行程式碼,金鑰仍可能存在於:

  • Git commit 歷史紀錄
  • Fork 儲存庫
  • 搜尋引擎快取
  • 自動掃描工具的資料庫
  • 其他人下載的程式碼
  • CI/CD 執行紀錄
  • 討論區或 Pull Request

因此正確做法不是只刪除公開程式碼,而是:

  1. 立即建立新 API Key
  2. 更新正式環境
  3. 刪除或撤銷舊 API Key
  4. 清理 Git 歷史紀錄
  5. 將金鑰改放到環境變數或祕密管理服務
  6. 檢查是否有其他憑證一併外洩

Google 官方也建議避免將 API Key 直接寫入程式碼,應改用環境變數或存放在原始碼目錄之外的設定檔。


API Key 放在網站前端,就一定等於被盜嗎?

不一定。

某些 Google Maps 前端服務本來就需要由瀏覽器載入 API Key,因此使用者可能在瀏覽器開發者工具或網站原始碼中看到金鑰。

這種情況的安全重點不是「完全看不到金鑰」,而是:

  • 限制允許使用的網站網域
  • 限制只能呼叫必要 API
  • 不要讓前端金鑰存取敏感或後端服務
  • 不要與伺服器後端共用同一把金鑰
  • 定期監控使用量與帳單

看到金鑰不代表一定遭到濫用,但「看得到而且沒有限制」就具有較高風險。


Google API Key 遭盜用造成費用,可以申請退款嗎?

是否能退款需要由 Google Cloud Billing 團隊依個案判斷,不能保證一定退費。

發現異常費用後,建議先完成:

  1. 停止或替換遭濫用的 API Key
  2. 設定應用程式與 API 限制
  3. 保存異常用量及帳單證據
  4. 檢查付款帳戶與專案權限
  5. 聯絡 Google Cloud Billing 支援

Google Cloud Billing 問題通常需要由帳單帳戶管理員聯絡支援;若不是帳單管理員,官方也提供其他問題處理入口。

官方入口:

Google Cloud 帳單問題處理說明

Google Cloud Billing 支援

請注意,聯絡支援之前仍應先停止異常使用,避免等待處理期間繼續產生費用。


如何預防 Google API Key 再次被盜用?

1. 不同系統使用不同金鑰

不要讓官網、App、測試站與後端伺服器共用同一把 API Key。

建議至少拆分成:

  • 正式網站金鑰
  • 測試網站金鑰
  • 後端伺服器金鑰
  • Android App 金鑰
  • iOS App 金鑰
  • 開發測試金鑰

這樣即使其中一把外洩,也能縮小影響範圍。

2. 每把金鑰都設定限制

不應保留「不受限制」的正式環境 API Key。

至少設定:

  • 使用來源限制
  • API 服務限制

3. 不要直接寫入公開原始碼

伺服器端金鑰應放在:

  • 環境變數
  • Secret Manager
  • 主機商的祕密設定
  • CI/CD Secret
  • 受權限保護的設定檔

4. 建立預算與費用警示

前往:

Google Cloud Billing

可依公司正常使用金額設定多個警示門檻,例如:

  • 達預算50%
  • 達預算80%
  • 達預算100%
  • 超過預算120%

預算警示能協助提早發現異常,但通常不會自動限制 API 或停止計費。

5. 設定 API 配額

可依正常流量設定:

  • 每分鐘請求上限
  • 每位使用者每分鐘上限
  • 每日使用上限
  • 特定 API 配額

配額太低可能造成正常服務中斷,設定前應先觀察一段時間的實際流量。

6. 定期檢查與輪替金鑰

建議定期盤點:

  • 哪些金鑰仍在使用
  • 哪些金鑰沒有任何限制
  • 哪些金鑰名稱無法辨識
  • 哪些金鑰屬於離職人員或舊系統
  • 哪些 API 已不再使用
  • 哪些專案仍連結付款帳戶

Google 官方建議定期輪替 API Key,建立替代金鑰、更新應用程式後,再刪除舊金鑰。


常見問題

Google API Key 被看到,就一定要更換嗎?

如果只是前端網站使用的 Google Maps API Key,而且已正確限制網域與 API,通常不代表一定外洩。

但如果金鑰:

  • 沒有任何限制
  • 被貼到公開 GitHub
  • 被貼到論壇或文件
  • 出現在不應公開的後端程式
  • 已出現異常流量

就應立即輪替。

限制 API Key 後,網站地圖不能顯示怎麼辦?

常見原因包括:

  • 沒有加入 www 網域
  • HTTP 與 HTTPS 設定不一致
  • 子網域未加入
  • 測試站網域未加入
  • 限制了錯誤的 API
  • Google Maps 功能同時需要多項 API
  • 設定尚未完全生效

可以先查看瀏覽器開發者工具中的錯誤訊息,再依實際網域補充限制。

可以直接把舊 API Key 刪掉嗎?

可以,但正在使用舊金鑰的網站或系統可能立即停止運作。

較穩妥的流程是:

  1. 建立新金鑰
  2. 加入正確限制
  3. 更新所有系統
  4. 完成測試
  5. 刪除舊金鑰

如果異常費用正快速增加,則應優先阻止損失。

關閉 Google Cloud 帳單就能停止費用嗎?

停用專案帳單可能使該專案中的計費服務停止,但也可能造成正式網站、App 或其他雲端服務中斷。

因此應先確認:

  • 哪些服務正在運作
  • 是否有正式系統依賴該專案
  • 是否能先撤銷問題金鑰
  • 是否只需要停用特定 API

不要在未確認影響範圍前隨意關閉整個付款帳戶。

刪除 API Key 後,已經產生的費用會消失嗎?

不會。刪除金鑰只能阻止後續繼續使用,不會自動取消已經產生的帳單。

如有異常費用,仍需保留證據並聯絡 Google Cloud Billing 支援。

API Key 和服務帳戶金鑰一樣嗎?

不一樣。

API Key 通常用於識別呼叫 API 的專案或應用程式;服務帳戶金鑰則可能代表服務帳戶身分,並依其 IAM 權限存取 Google Cloud 資源。

如果外洩的是 JSON 格式服務帳戶金鑰,風險通常更高,應立即停用或刪除該金鑰、檢查服務帳戶權限及稽核記錄,而不能只依照一般 API Key 的方式處理。


Google 官方重要連結

以下網址請以一般文字連結或按鈕方式放入 WordPress,不要使用「嵌入內容」區塊。

Google Cloud 管理頁面

Google Cloud Console

API 與服務資訊主頁

Google Cloud 憑證管理

Google Cloud Billing

Google 官方說明文件

管理 API Key

API Key 安全性最佳做法

為 API Key 加入使用限制

監控 Google API 使用量

處理遭入侵的 Google Cloud 憑證

Google Cloud 帳單問題處理

聯絡 Google Cloud Billing 支援


結語:API Key 異常要先止損,再追查原因

判斷 Google API Key 是否被盜用,不能只看金鑰是否出現在網站程式中,而要綜合檢查:

  • API 請求量是否異常
  • 費用是否突然增加
  • 是否出現不認識的 API
  • 請求來源是否符合預期
  • 金鑰是否設定使用限制
  • 是否曾被公開到 GitHub或文件
  • 專案中是否有不認識的憑證

一旦懷疑金鑰已外洩,應先保存紀錄、建立新金鑰、替換正式系統,再刪除舊金鑰。不要只修改程式碼或刪除公開貼文,因為舊金鑰仍可能已被其他人保存。


需要規劃網站 API 串接、流量追蹤或數位廣告嗎?

如果您的網站使用 Google Maps、Google API、GA4、Google Ads 或其他 Google Cloud 服務,卻不確定網站流量、廣告轉換與 API 使用量之間的關係,可以從網站架構、數據追蹤與行銷流程重新盤點。

 數位果子科技有限公司 提供:

  • 網站與 API 串接需求規劃
  • 網路行銷策略規劃
  •  SEO  關鍵字與內容布局
  • Google Ads 關鍵字廣告投放
  • Facebook、Instagram 社群廣告投放
  • GA4、Google Search Console 與轉換數據整合
  • AI 內容產製與行銷自動化規劃

我們的服務重點為網站、數位行銷、SEO內容與廣告投放,不提供 Google 帳號救援、Google Cloud 帳務申訴或官方客服代理服務。若涉及 API 異常費用或退款,仍應透過 Google Cloud 官方 Billing 支援管道提出。

數位果子科技有限公司
合作專線:0970-357-535
LINE:cherng65

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *