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

Google API Key 如果被公開在網站原始碼、GitHub、程式截圖、聊天記錄或設定檔中,其他人可能拿它呼叫 Google API,消耗專案配額,甚至產生非預期費用。
發現 API Key 外洩後,不應只把公開頁面的金鑰文字刪掉。因為金鑰可能已被搜尋引擎、程式碼掃描工具、瀏覽器快取或第三方人員複製。
Google 對疑似外洩憑證的建議處理方式,是建立新的 API Key、套用與舊金鑰相符的限制、將系統改用新金鑰,再刪除遭外洩的舊金鑰。若新舊金鑰限制不一致,網站或應用程式可能發生中斷。
Google 官方外洩憑證處理說明:



讓更多人搜尋到你的產品?現在有機會免費行銷 20 天!
現在越來越多品牌開始透過 內容行銷,讓產品被 Google 搜尋到。
我們現在開放 20 天免費內容行銷體驗,透過搜尋曝光與內容推廣,幫助你的產品被更多人看見。
發現的情況 | 優先處理方式 | 是否需要更換金鑰 |
|---|---|---|
API Key 出現在公開網站原始碼 | 建立新金鑰並限制網域,完成替換後刪除舊金鑰 | 建議需要 |
API Key 上傳到公開 GitHub | 立即輪替金鑰並清除程式碼歷史紀錄 | 需要 |
收到 Google 外洩警告 | 確認憑證類型、輪替並檢查使用量 | 需要 |
API 使用量突然增加 | 限制或刪除舊金鑰,檢查 API 指標及帳單 | 建議需要 |
尚未發現異常費用 | 仍應輪替及限制金鑰 | 建議需要 |
金鑰完全沒有任何限制 | 立即增加限制或更換金鑰 | 強烈建議 |
不確定系統是否仍在使用 | 先建立新金鑰、逐項替換及測試,再刪除舊金鑰 | 需要 |
服務帳戶 JSON 金鑰外洩 | 停用或刪除該服務帳戶金鑰並重新產生 | 需要 |
OAuth 用戶端密碼外洩 | 重新設定或輪替 OAuth 憑證 | 需要 |
只是不小心顯示一次 | 仍視為已外洩處理 | 建議需要 |
很多人把所有 Google 憑證都稱為 API Key,但實際上可能是不同類型。
常見格式通常以:
AIza...
開頭。
常用於:
標準 API Key 主要用來將 API 要求與 Google Cloud 專案建立關聯,以便管理配額與費用;標準 API Key 本身通常不代表特定使用者身分。
通常是下載的 JSON 檔案,可能包含:
private_keyprivate_key_idclient_emailproject_id服務帳戶金鑰的風險通常比一般 API Key 更高,因為它可能讓持有者以服務帳戶身分存取雲端資源。
服務帳戶金鑰外洩時,應優先停用、輪替或刪除,並檢查該服務帳戶擁有哪些 IAM 權限。Google 建議在刪除服務帳戶金鑰前,可先停用並確認系統不再需要,再執行刪除。
OAuth 憑證可能包含:
常用於:
OAuth Client Secret 外洩的處理方式與一般 API Key 不完全相同,不能只到 API Key 清單刪除。
Firebase 網頁設定中的 API Key 有時會出現在前端程式碼中,但這不代表可以完全不設防。
仍應搭配:
不要單憑「Firebase API Key 本來就能放前端」就忽略資料庫規則及帳單風險。
建議依照以下順序處理:
發現金鑰公開時,可以先記錄:
保存證據後,再立即進行金鑰輪替。
這些資料有助於後續判斷:
不要為了保存證據而讓金鑰繼續有效太久。可使用截圖與匯出紀錄,不需要等待完整調查後才開始處理。
Google 官方建議不要直接在程式碼中嵌入 API Key,並應對金鑰設定限制,以降低憑證外洩後的影響。
如果外洩金鑰仍被正式網站、App、招生系統或報名系統使用,立即刪除後可能造成:
因此,較安全的輪替程序是:
Google 對遭入侵 API Key 的官方處理指引也是先建立新金鑰、確認限制一致、部署至所有使用位置,再刪除舊金鑰。
但如果已確認金鑰正在遭到大量濫用,且費用仍快速增加,應優先阻止繼續使用。此時可以接受部分服務暫時中斷,先刪除或嚴格限制舊金鑰,再進行系統修復。
一般標準 API Key 在 Google Cloud Console 中,最常見的處理方式是:
因此,文章中常說的「停用 API Key」,實務上可能代表幾種不同操作:
刪除後,使用該金鑰的要求將無法正常通過。
適合:
例如把原本完全沒有限制的金鑰,改成只允許:
這可以快速縮小外洩金鑰可被使用的範圍,但不能取代金鑰輪替。因為外洩金鑰本身已不再是秘密。
可到「API和服務」中停用遭濫用的API。
但這會影響整個專案,不只是單一金鑰,因此可能讓其他正常系統一併停止。
可以降低每日或每分鐘配額,限制持續濫用的規模。
但Google提醒,配額執行可能存在延遲,不應把配額視為完全精準的費用上限。
如果同一把金鑰同時用於多個網站與系統,應逐一盤點,不能只修改目前看到的網站。
刪除 API Key 後,新的 API 要求通常無法再使用該金鑰。
但是帳單畫面不一定立刻停止增加,可能有以下原因:
因此,刪除後應持續檢查至少以下三個位置:
不能只看到帳單仍增加,就判定刪除沒有生效;也不能只看到API用量下降,就認為其他雲端費用已全部停止。
Google Cloud Console:
Google 官方指出,查看 API 指標最簡單的方式,是使用 Google Cloud Console 的 API Dashboard;可以查看所有 API 的概況,也可以深入查看單一 API。
常見異常包括:
依API支援程度,可以從Cloud Logging檢查:
API Keys服務會產生管理活動相關的Cloud Audit Logs,可用於查看API Key的建立、修改或刪除等管理操作。
但不是每項API都會在日誌中完整呈現原始使用者IP或所有要求細節,實際內容要依服務文件判斷。
不一定。
可能原因包括:
因此,即使費用為零,已公開的API Key仍應輪替。
可以向Google Cloud Billing支援反映帳務問題,但是否能調整費用,需要由Google依帳戶、使用紀錄與事件情況審查,不能保證退款。
Google Cloud帳務問題處理入口:
提出案件前準備:
描述時應具體說明:
不要只寫「帳單太高」或「我沒有使用」。
Google API Key的應用程式限制,用來限制哪些網站、伺服器或App可以使用金鑰。
Google官方指出,一把API Key一次只能使用一種類型的應用程式限制。
適合:
Google官方要求網站限制應包含通訊協定,例如https://,不能只填入網域名稱。
常見錯誤:
example.comwww適合:
常見錯誤:
通常需要設定:
正式版、測試版及不同簽署憑證可能需要分開處理。
通常使用:
要確認正式App與測試App的識別資訊是否不同。
應用程式限制控制「誰可以使用」,API限制控制「可以使用哪些Google服務」。
例如一把只供Google地圖使用的金鑰,就不應同時允許:
Google官方建議將API限制縮小到實際需要的最少服務,以降低金鑰外洩後的風險。
不要把同一把金鑰同時用於:
較好的方式是依照系統與環境分開:
這樣某一把外洩時,不需要一次更換所有系統。
Google Cloud預算可依實際支出或預測支出觸發電子郵件通知,也可搭配Pub/Sub進行自動化處理。
這是非常重要的觀念。
預算預設功能主要是「通知」,不是信用卡刷卡上限,也不會在達到金額後自動停止所有服務。
若自行設定達到預算後停用帳單,可能會終止專案內所有Google Cloud服務,包括免費服務,造成正式網站或系統全面中斷。
因此,自動停用帳單應由熟悉系統架構的人員評估,不適合在不了解影響時直接啟用。
除了費用預算,還可調整API配額。
常見配額包括:
設定前先了解正常尖峰用量,避免限制過低造成:
Google提醒,配額限制可能存在執行延遲,因此不能把配額當成精確的帳單上限。
較好的做法是同時使用:
不夠。
如果API Key曾上傳到公開GitHub,即使刪除目前版本,仍可能存在於:
因此正確處理方式是:
只清除Git歷史,不能讓已被複製的舊金鑰失效。
某些服務,例如Google Maps JavaScript API,需要在瀏覽器端使用API Key。這類金鑰可能會被使用者看到,因此安全重點不是「完全隱藏」,而是:
後端金鑰不應直接寫在公開程式碼中,可放在:
Google官方建議不要將API Key直接嵌入程式碼,應存放在環境變數或原始碼目錄以外的檔案中。
Google建議避免將API Key透過網址查詢參數傳送,因為網址可能出現在日誌、瀏覽紀錄或掃描結果中;服務支援時,應考慮使用x-goog-api-key標頭或官方用戶端程式庫。
一般標準API Key外洩,不等同Google帳號密碼外洩,通常不能直接登入Gmail或Google Cloud Console。
但是仍可能造成:
如果外洩的是服務帳戶JSON、OAuth權杖、重新整理權杖或Google帳號密碼,風險就可能遠高於一般API Key。
因此,先確認外洩憑證類型非常重要。
API Key常見外洩位置包括:
前端地圖金鑰可被看到不一定代表系統遭入侵,但必須確認:
若金鑰曾完全無限制,建議建立新金鑰並完成輪替。
應立即:
可先:
優先阻止損失:
不要只刪除GitHub檔案。應:
已外洩的金鑰可能早已被複製,應完成輪替或刪除。
可能造成正式網站、App及報名系統中斷。
新金鑰仍可能再次被濫用。
任何一個網站外洩,都可能影響全部服務。
預算通常只會通知,不會自動停止費用。
應同時查看API使用量、專案、服務與SKU,才能找出費用來源。
兩者風險不同,處理方式也不同。
若專案仍有正式系統、資料或其他服務,直接刪除可能造成重大中斷及資料損失。
SSL憑證用來驗證網站身分,並建立加密連線。
API Key外洩不代表SSL憑證外洩;更換API Key也不會自動更新SSL。
HTTPS保護資料在使用者與網站之間傳輸,但無法防止API Key被寫進公開JavaScript、GitHub或設定檔。
網站有HTTPS,不代表API Key一定安全。
API Key外洩通常不會直接造成Google搜尋排名下降。
但如果Google地圖、招生表單或網站功能因配額用完而失效,可能間接影響:
一般API Key不一定能直接取得個資,但若搭配設定錯誤的資料庫、Firebase規則或後端API,可能擴大資料外洩風險。
招生系統應特別檢查:
API Key安全只是整體系統安全的一部分,還應檢查:
若已經遭大量濫用,可以優先刪除或嚴格限制。但一般情況建議先建立新金鑰、完成系統替換與測試,再刪除舊金鑰,避免服務中斷。
限制可以降低風險,但已公開的金鑰不再是秘密。建議仍進行金鑰輪替。
刪除後的新請求通常無法使用該金鑰,但刪除前已產生的用量可能延遲顯示。也要確認是否有其他金鑰、專案或付費資源。
關閉API可阻止新的相關呼叫,但帳務報表可能存在延遲,而且同一專案可能仍有其他付費服務。
預設不會。Google Cloud預算主要用於追蹤與通知,不是硬性消費上限。
不能保證。Google提醒配額執行可能有延遲,因此要預留緩衝並搭配其他監控。
前端使用的金鑰可能被瀏覽器看到,因此必須設定HTTP Referrer網站限制及API限制,不能依賴隱藏程式碼。
一般標準API Key通常不能直接登入Gmail,但可能造成API濫用、配額耗盡及額外費用。若外洩的是OAuth權杖、服務帳戶金鑰或帳號密碼,風險會更高。
私人儲存庫風險較低,但仍不建議直接把正式金鑰寫入程式碼。應使用環境變數、GitHub Secrets或Secret Manager。
技術上可能可以,但不建議不同客戶、環境及系統共用。分開管理更容易限制、監控與輪替。
Google可能偵測部分外洩憑證並發出警告或採取保護措施,但企業不能依賴自動偵測。發現外洩後仍應主動輪替、限制及檢查費用。
Google Cloud帳單申訴、費用裁決及憑證安全警告,仍應由專案擁有者透過Google Cloud官方管道處理。數位果子科技有限公司不代替Google決定費用退款或申訴結果。
數位果子科技有限公司主要提供:
企業、學校或補習班若擔心API Key綁定在離職人員帳號、網站程式碼公開、Google地圖費用異常,或不知道哪些系統正在使用Google API,可先進行網站、API與數位資產權限盤點。
數位果子科技有限公司
合作專線:0970-357-535
LINE:cherng65