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

發現 Google API Key 被盜用後,應該如何立即停用?
對一般 Google Cloud API Key 而言,最直接的止損方式通常是進入 Google Cloud Console 的「憑證」頁面,找到外洩金鑰並將它刪除。Google 官方指出,API Key 不會自行過期;若遭竊後沒有撤銷或輪替,可能持續被使用。因此,已確認遭到濫用的金鑰不應只改名稱、刪除公開文章或等待帳單通知,而應立即限制、輪替或刪除。
不過,直接刪除金鑰可能讓網站地圖、地址搜尋、App 或後端系統立刻停止運作。因此,實際操作前要先依情況判斷:



讓更多人搜尋到你的產品?現在有機會免費行銷 20 天!
現在越來越多品牌開始透過 內容行銷,讓產品被 Google 搜尋到。
我們現在開放 20 天免費內容行銷體驗,透過搜尋曝光與內容推廣,幫助你的產品被更多人看見。
目前情況 | 建議動作 | 是否可能中斷服務 | 優先程度 |
|---|---|---|---|
費用持續快速增加 | 立即刪除舊 API Key | 高 | 最高 |
已出現陌生網域或 IP 流量 | 建立新金鑰後刪除舊金鑰 | 中 | 最高 |
API Key 出現在公開 GitHub | 立即輪替並刪除舊金鑰 | 中 | 最高 |
收到 Google 憑證外洩通知 | 查流量、換新、刪除舊金鑰 | 中 | 最高 |
無法立即更新正式網站 | 先限制網域、IP與 API | 低 | 高 |
尚不確定是哪一把金鑰 | 逐一比對流量與使用位置 | 低 | 高 |
只是網站前端看得到金鑰 | 檢查網域與 API 限制 | 低 | 中 |
測試用金鑰已不再使用 | 直接刪除 | 可能無 | 中 |
外洩的是服務帳戶 JSON | 停用金鑰、換新後刪除 | 高 | 最高 |
一般 Google Cloud API Key 的管理流程,主要是:
Google 官方的 API Key 輪替說明也是建立新金鑰、將新金鑰部署到應用程式,最後刪除舊金鑰。
因此,使用者口中的「停用 API Key」,在一般操作上通常代表以下其中一種方式:
如果已經確認金鑰被第三方取得,最終仍應完成輪替並刪除舊金鑰,而不是只加入限制後永久沿用。
這是費用正在增加時最快的止損方法。
前往:
Google Cloud Console
https://console.cloud.google.com/
請使用擁有該 Google Cloud 專案權限的帳號登入。
登入後,先確認頁面上方選擇的是正確專案。公司若有正式站、測試站、App與其他系統,可能同時有多個名稱相近的專案。
前往:
Google Cloud API 憑證管理
https://console.cloud.google.com/apis/credentials
或依序點選:
Google Cloud Console
→ API 和服務
→ 憑證
在這裡可以看到該專案中的:
不要誤刪 OAuth 用戶端或服務帳戶,應先確認外洩的是哪一種憑證。
可依下列資訊辨識:
Google Cloud 管理介面中的 Key ID 是用來識別金鑰的管理資訊,並不是可直接用來呼叫 API 的完整金鑰字串。
如果金鑰都叫做「API Key 1」「API Key 2」,可能很難辨認。此時不要隨便刪除,可以先查看每把金鑰的限制與已知使用位置。
刪除之前,建議先截圖或記錄:
保留這些資料,有助於後續向 Google Cloud Billing 支援說明事件。
不要將完整 API Key 再貼到公開文件、客服討論區或網站文章中。
點選需要處理的 API Key,進入詳細設定頁面後選擇「刪除」。
刪除完成後,使用該金鑰的新請求將無法再正常通過驗證。Google 官方說明,刪除 API Key 會將金鑰標記為已刪除;目前刪除的金鑰可在30天內復原,之後會從專案中清除。
不過,不要把可復原機制當成日常備份方式。如果金鑰已確認外洩,即使能復原,也不應再次投入正式環境使用。
前往:
API 與服務資訊主頁
https://console.cloud.google.com/apis/dashboard
檢查:
帳單和使用量報表可能不是即時更新,因此刪除後仍可能看到先前已發生、但較晚寫入報表的用量。
如果流量仍然持續,可能代表:
如果網站或系統不能中斷,應使用金鑰輪替流程。
Google 官方建議的基本方式是:建立替代金鑰、套用必要限制、更新應用程式,確認新金鑰可用後,再刪除舊金鑰。
選擇:
建立憑證
→ API 金鑰
建立後請立即修改名稱,例如:
正式官網-Google Maps-2026年7月
後端地址查詢-Routes API-2026年7月
Android正式版-2026年7月
清楚的命名可以避免日後再次無法辨認金鑰用途。
不要直接把完全不受限制的新金鑰放入正式環境。
Google 官方指出,API Key 預設可能沒有使用限制,未受限制的金鑰容易遭到未授權使用;正式環境應加入應用程式限制與 API 限制。
依照使用環境選擇:
設定「網站」或 HTTP 參照網址限制,例如:
https://example.com/*
https://www.example.com/*
有子網域時,需依實際架構加入,例如:
https://booking.example.com/*
https://member.example.com/*
設定伺服器固定 IP,例如:
203.0.113.10
若主機 IP 會變動,應先向主機商確認固定 IP。
限制:
限制特定 Bundle ID。
Google Cloud API Keys 支援依網站參照網址、IP、Android應用程式及 iOS 應用程式設定來源限制。
選擇「限制金鑰」,只允許真正需要的 API,例如:
不要讓一把網站地圖金鑰同時呼叫所有已啟用的 API。
加入限制可以縮小外洩後的影響範圍,但不能讓已被第三方保存的舊金鑰自動失效。
常見需要更換的位置包括:
.env 環境變數建議製作一份替換清單,記錄:
系統 | 使用位置 | 是否已更換 | 測試結果 |
|---|---|---|---|
正式官網 | WordPress外掛 | 是 | 正常 |
測試網站 | .env | 是 | 正常 |
後端排程 | 主機環境變數 | 否 | 待處理 |
Android App | App設定 | 是 | 待發布 |
確認:
常見錯誤訊息包括:
API_KEY_INVALID
REQUEST_DENIED
RefererNotAllowedMapError
ApiNotActivatedMapError
IpRefererBlocked
如果出現錯誤,多半與以下原因有關:
www 網域確認核心功能已切換到新金鑰後,立即刪除舊金鑰。
不要將外洩金鑰長期保留為「備用」,因為 API Key 本身不會因為長時間未使用而自動過期。
如果暫時找不到所有使用位置,又擔心直接刪除造成正式服務中斷,可以先對舊金鑰套用嚴格限制。
只允許自己的網域,例如:
https://example.com/*
https://www.example.com/*
移除:
只允許公司正式伺服器的固定 IP。
如果金鑰曾在 GitHub 或後端程式中公開,即使加上 IP限制,也建議完成系統切換後刪除舊金鑰。
將金鑰限制為只能呼叫必要服務。
例如網站只需要顯示地圖,就不要同時允許:
限制舊金鑰只能作為暫時止損方法。
如果金鑰已經:
最終仍應重新建立並刪除舊金鑰。
如果無法立即找到金鑰,但知道是哪項 API 持續產生費用,可以暫時停用該 API。
操作路徑:
Google Cloud Console
→ API 和服務
→ 已啟用的 API 和服務
→ 選擇異常 API
→ 停用
例如:
停用後,該專案中依賴這項 API 的正常網站與 App 也可能停止運作。
因此,這種方法適合:
不要停用整個專案中所有 API,除非已確認影響範圍。
即使已經刪除外洩金鑰,也應檢查相關 API 的配額。
可設定:
配額不等於預算警示。
預算警示主要負責寄送通知,不一定會在達到金額時自動關閉 API。
建議依照正常流量設定合理緩衝,例如平常每日使用2,000次,可以依尖峰需求設定5,000次或10,000次,而不是保留極高上限。
設定太低可能使正常使用者收到配額超限錯誤,因此應對照過去30天的流量後再調整。
找出:
依序查看:
帳單
→ 報表
→ 依專案分組
→ 依服務分組
→ 依 SKU 分組
記錄:
在憑證頁面逐一檢查:
刪除用途不明且沒有任何限制的舊金鑰前,仍應確認是否有正式系統依賴。
搜尋:
.env確認是否有完整金鑰被公開。
Google 官方建議不要將 API Key 直接寫入原始碼,而應使用環境變數、祕密管理工具或放在原始碼目錄之外的設定檔。
刪除 API Key 後,該金鑰不應再能成功呼叫受保護的 Google API。
但帳單頁面可能仍繼續出現費用,常見原因包括:
因此,刪除後要持續觀察:
Google API Keys API 官方文件目前說明,刪除的 API Key 可以在刪除後30天內復原;超過期間後會被清除。
不過,能否在管理介面中直接復原,可能受到權限與介面版本影響。
如果誤刪:
如果刪除的是已遭盜用的金鑰,則不建議復原後重新使用。
服務帳戶金鑰和一般 API Key 不一樣。
一般 API Key 通常是一串字元;服務帳戶金鑰則常以 JSON 檔案形式出現,其中可能包含:
private_keyclient_emailprivate_key_idproject_id若外洩的是服務帳戶 JSON,風險通常更高,因為攻擊者可能取得服務帳戶所擁有的 IAM 權限。
Google 官方建議,懷疑服務帳戶金鑰遭到入侵時應立即輪替;流程通常是建立新金鑰、更新系統、停用舊金鑰、確認服務正常後再刪除。
操作位置:
Google Cloud Console
→ IAM與管理
→ 服務帳戶
→ 選擇服務帳戶
→ 金鑰
處理步驟:
Google 官方說明,刪除服務帳戶金鑰後將無法還原,並會永久阻止該金鑰繼續用於驗證。
不可以。
修改顯示名稱只會改變管理介面中的標籤,不會改變完整金鑰字串,也不會阻止第三方使用。
如果只是網站前端正常可見,而且一直都有正確限制、沒有異常流量,可以不一定更換。
但若已經確認:
就應完成輪替並刪除舊金鑰。
可能會。
使用該金鑰的功能可能出現:
若費用沒有快速增加,建議先建立新金鑰並完成替換。
若費用持續暴增,則應優先止損。
不建議作為第一個處理方式。
關閉或解除付款可能影響同一帳單帳戶下的其他正式服務,而且已經產生的費用不會自動消失。
應先:
不會。
刪除金鑰只能阻止後續使用,不會自動取消刪除前已完成的請求。
如果費用來自未授權使用,應保留證據並聯絡 Google Cloud Billing 支援。是否減免或退款,仍由 Google 依個案審核。
不一定。
預算通常用於通知與追蹤,並不是保證在金額達到上限後立即停止所有 API。
應同時設定:
常見原因包括:
Google 官方說明,管理 API Key 通常需要 API Keys Admin 角色;設定特定 API 限制時,可能還需要 Service Usage Viewer。
請聯絡公司 Google Cloud 專案擁有者或組織管理員處理。
以下網址請使用 WordPress 一般文字超連結、按鈕連結或直接顯示網址,不要使用「嵌入內容」區塊。
Google Cloud Console
https://console.cloud.google.com/
API與服務資訊主頁
https://console.cloud.google.com/apis/dashboard
API憑證管理
https://console.cloud.google.com/apis/credentials
Google Cloud帳單
https://console.cloud.google.com/billing
Google Cloud預算與警示
https://console.cloud.google.com/billing/budgets
管理 API Key
https://cloud.google.com/docs/authentication/api-keys
API Key 安全管理最佳做法
https://cloud.google.com/docs/authentication/api-keys-best-practices
建立與刪除 API Key
https://cloud.google.com/api-keys/docs/create-manage-api-keys
為 API Key 加入限制
https://cloud.google.com/api-keys/docs/add-restrictions-api-keys
處理遭入侵的 Google Cloud 憑證
https://cloud.google.com/docs/security/compromised-credentials
服務帳戶金鑰停用與啟用
https://cloud.google.com/iam/docs/keys-disable-enable
建立與刪除服務帳戶金鑰
https://cloud.google.com/iam/docs/keys-create-delete
Google Cloud Billing支援
https://cloud.google.com/support/docs/get-billing-support
停用被盜用的 Google API Key,應依風險採取不同處理方式。
如果費用仍在快速增加,最優先的動作是:
如果正式系統不能中斷,則應先建立新金鑰、設定來源與 API 限制、完成替換,確認功能正常後再刪除舊金鑰。
只刪除 GitHub 程式碼、修改金鑰名稱或關閉通知,都無法真正讓已外洩的 API Key 失效。
網站使用 Google Maps、Google API、GA4或 Google Ads 時,除了完成串接,也應建立清楚的憑證管理、配額限制、流量監控與行銷轉換追蹤機制。
數位果子科技有限公司 提供:
本公司服務重點為網站建置、數位行銷、SEO內容與廣告投放,不代理 Google Cloud 帳單退款、帳戶救援或 Google 官方客服。若已產生異常 API 費用,仍應透過 Google Cloud Billing 官方支援管道提出。
數位果子科技有限公司
合作專線:0970-357-535
LINE:cherng65