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

Google API Key 不小心出現在網站程式碼、GitHub、公開文件或聊天群組中,是否代表 Google 帳號也會一起被盜?
一般情況下,單純外洩一組標準 Google API Key,通常不會讓他人直接登入您的 Google 帳號、Gmail 或 Google Cloud Console。
標準 API Key 的主要作用,是將 API 請求與特定 Google Cloud 專案建立關聯,以便計算用量、配額及費用。Google 官方說明,標準 API Key 本身不會驗證使用者或服務帳戶主體,因此它不像 Google 帳號密碼、OAuth 權杖或服務帳戶私密金鑰那樣,可以直接代表某個身分登入。
不過,這不代表 API Key 外洩沒有危險。
攻擊者可能利用外洩金鑰:
此外,Google Cloud 現在也有可綁定服務帳戶身分的授權金鑰。這類金鑰與一般標準 API Key 的安全風險不同;若遭竊,可能以該服務帳戶身分存取其有權限使用的資源。



讓更多人搜尋到你的產品?現在有機會免費行銷 20 天!
現在越來越多品牌開始透過 內容行銷,讓產品被 Google 搜尋到。
我們現在開放 20 天免費內容行銷體驗,透過搜尋曝光與內容推廣,幫助你的產品被更多人看見。
外洩的內容 | 能否直接登入 Google 帳號 | 主要風險 | 建議處理 |
|---|---|---|---|
標準 Google API Key | 通常不能 | API 盜用、配額耗盡、帳單增加 | 立即限制或輪替金鑰 |
網站前端 Maps API Key | 通常不能 | 被其他網站冒用 | 設定網域與 API 限制 |
授權 API Key | 可能存取服務帳戶資源 | 以服務帳戶身分呼叫資源 | 立即撤銷並檢查 IAM |
服務帳戶 JSON 私密金鑰 | 不能登入 Gmail,但風險很高 | 冒用服務帳戶、存取雲端資源 | 立即停用、刪除與輪替 |
OAuth 存取權杖 | 可能存取已授權資料 | Gmail、Drive或其他資料遭存取 | 撤銷權杖並檢查應用程式 |
Google 帳號密碼 | 可能 | 帳號、Gmail與Cloud Console遭登入 | 改密碼並啟用兩步驟驗證 |
密碼加兩步驟驗證碼 | 很可能 | 完整帳號接管 | 立即進行帳號安全處理 |
瀏覽器工作階段 Cookie | 可能 | 繞過重新登入 | 登出裝置並撤銷工作階段 |
Google 帳號登入需要能夠證明使用者身分的憑證,例如:
標準 API Key 則主要用來識別「哪一個專案正在呼叫 API」,不會識別 Google 帳號本人。Google 官方說明,標準 API Key 不會驗證主體,因此沒有主體身分時,系統不能透過 IAM 判斷呼叫者是否有權執行需要身分授權的操作。
因此,攻擊者只有一組標準 API Key 時,通常不能使用它:
但仍可能呼叫該金鑰允許使用的 API,並將流量與費用計入您的專案。
這是最常見的風險。
如果 API Key 沒有設定網站、IP、Android App、iOS App或 API 服務限制,其他人可能從自己的程式中使用該金鑰發送請求。
可能遭到大量呼叫的服務包括:
Google 官方建議為 API Key 加入應用程式與 API 限制,以縮小金鑰遭到入侵時的影響。
即使某項 API 尚未產生費用,攻擊者仍可能耗盡:
當配額被耗盡後,正常網站或 App 可能出現:
因此,API Key 外洩不只是帳單問題,也可能造成服務中斷。
部分 Google API 接受 API Key 作為識別專案的方式。取得金鑰的人可能呼叫金鑰被允許存取的 API,並取得該 API 本來就會回傳的資料。並非所有 Google Cloud API 都接受 API Key,也不是所有需要身分授權的操作都能靠標準 API Key 完成。
例如可能取得:
至於私人 Gmail、Drive 或 Cloud Storage 資料,通常還需要 OAuth、服務帳戶或其他具備身分的憑證,而不是只有一組標準 API Key。
若金鑰沒有設定 API 限制,攻擊者可能嘗試將同一把金鑰用於專案內其他已啟用且接受 API Key 的服務。
Google 官方建議限制金鑰只能呼叫必要 API,避免未受限制的金鑰被用於意料之外的服務。
例如網站原本只需要 Maps JavaScript API,就不應讓同一把金鑰同時存取所有可用 API。
Google Cloud 的 API Key 分為標準 API Key與授權金鑰。Google 官方說明:
如果外洩的是綁定服務帳戶的授權金鑰,攻擊者可能以該服務帳戶身分存取資源,實際影響取決於服務帳戶擁有的 IAM 權限。
例如服務帳戶若被授予過度寬鬆權限,可能涉及:
這種情況的風險遠高於一般標準 API Key。
服務帳戶 JSON 檔案通常包含:
project_id
private_key_id
private_key
client_email
client_id
其中的私密金鑰可用來代表服務帳戶進行驗證。Google 官方警告,服務帳戶金鑰若管理不當會構成資安風險,並建議盡可能使用更安全的替代方式。
外洩後,攻擊者不一定能登入您的 Gmail,但可能取得該服務帳戶被授權存取的 Google Cloud 資源。
若懷疑服務帳戶金鑰遭到入侵,Google 官方建議立即輪替。
有時候 GitHub 儲存庫或公開設定檔不只包含 API Key,還可能同時包含:
此時帳號或系統被入侵的風險,通常不是來自標準 API Key 本身,而是同時外洩的其他高權限憑證。
因此,發現 API Key 公開時,不應只搜尋該金鑰,也要檢查同一份程式碼、文件及部署紀錄中是否還有其他秘密資訊。
有些人是在發現陌生 API Key、陌生 Cloud 專案或帳單後,才懷疑 API Key 外洩。
但實際順序也可能相反:
此時 API Key 是帳號遭入侵後建立的工具,而不是最初的入侵原因。
若發現以下情況,就應同時檢查 Google 帳號安全:
若能確認:
通常不一定要因為 API Key 外洩而立刻修改 Google 帳號密碼。
但仍應:
若 API Key 出現在公開 GitHub、遭入侵的電腦、可疑瀏覽器或不明人員手中,而且同一環境還保存帳號或其他憑證,建議同步:
先確認外洩的是:
Google Cloud 目前區分標準 API Key與可代表服務帳戶驗證的授權金鑰,兩者的風險不能混為一談。
檢查:
依照以下方式分組:
依專案
依服務
依 SKU
依日期
確認異常費用是否只來自 API,還是有其他 Google Cloud 資源被建立。
確認是否出現:
如果只有標準 API Key 外洩,通常不應直接造成 IAM 成員被新增。若看到權限遭修改,應懷疑還有其他憑證或帳號遭到入侵。
檢查:
若看到不認識的登入裝置或安全設定變更,應立即處理 Google 帳號,而不能只更換 API Key。
Google 官方對可能遭到入侵的 API Key 建議包括:
搜尋公開程式碼及設定檔中的:
API_KEY
GOOGLE_APPLICATION_CREDENTIALS
private_key
client_secret
refresh_token
password
DATABASE_URL
SECRET_KEY
如果發現服務帳戶 JSON、OAuth權杖或密碼,也必須分別撤銷及輪替。
依使用環境選擇:
Google 官方建議限制可使用金鑰的網站、IP位址與應用程式,以降低遭到竊取後的影響。
只允許金鑰呼叫真正需要的服務。
例如:
官網地圖金鑰
只允許 Maps JavaScript API
不要讓同一把金鑰存取所有已啟用 API。
Google 官方建議不要將 API Key 直接放入可公開取得的程式碼,並指出以 URL 查詢參數傳遞金鑰,可能使金鑰暴露在網址掃描及紀錄中。若服務支援,應優先使用 x-goog-api-key 標頭或官方用戶端程式庫。
後端金鑰可放在:
建議拆分:
這樣其中一把遭到外洩時,不會一次影響全部系統。
應同時設定:
即使 API Key 無法直接登入帳號,外洩仍可能造成大量帳單,因此不能忽略監控。
Google 官方建議在懷疑服務帳戶金鑰遭到入侵時立即輪替,並盡可能避免使用長期服務帳戶金鑰。
只有一般標準 API Key 時,通常不能直接讀取私人 Gmail。Gmail私人資料通常需要使用者授權、OAuth權杖或其他具備身分的憑證。
但若同時外洩 OAuth權杖、Google帳號工作階段或密碼,就可能存取 Gmail。
一般標準 API Key 不具備修改 Google帳號密碼的能力。
如果密碼被修改,通常代表帳號登入憑證、工作階段或復原方式遭到控制,而不是只有標準 API Key 外洩。
API Key 通常不能直接顯示付款信用卡完整資料。
但攻擊者可能利用金鑰產生 API 用量,將費用計入與專案連結的付款帳戶。
不一定。
部分前端 API,例如 Google Maps JavaScript API,本來就需要讓瀏覽器取得金鑰。這類情況的重點是設定:
但後端使用的秘密憑證不應公開到前端。
只有標準 API Key 外洩且帳號沒有任何異常時,通常不一定需要。
但若無法確定是否還有其他憑證外洩,或看到陌生登入、IAM變更及安全設定異動,就應立即修改密碼並檢查帳號安全。
刪除金鑰只能停止該金鑰後續被使用。
仍應檢查:
不完全相同。
服務帳戶是非人類使用者,不是一般 Gmail 帳號。攻擊者取得其私密金鑰後,可能以服務帳戶身分存取被授權的 Google Cloud 資源,但不代表可直接登入您的個人 Gmail。
風險大小取決於該服務帳戶的 IAM 權限。Google 官方明確指出,服務帳戶代表非人類身分,並建議嚴格保護其憑證。
以下網址請使用 WordPress 一般文字超連結、按鈕或直接顯示網址,不要使用「嵌入內容」區塊。
Google Cloud Console
https://console.cloud.google.com/
API 憑證管理
https://console.cloud.google.com/apis/credentials
API與服務資訊主頁
https://console.cloud.google.com/apis/dashboard
IAM權限管理
https://console.cloud.google.com/iam-admin/iam
Google Cloud帳單
https://console.cloud.google.com/billing
Google帳號安全性
https://myaccount.google.com/security
管理 API Key
https://cloud.google.com/docs/authentication/api-keys
API Key安全管理最佳做法
https://cloud.google.com/docs/authentication/api-keys-best-practices
使用 API Key存取 API
https://cloud.google.com/docs/authentication/api-keys-use
API Keys總覽
https://cloud.google.com/api-keys/docs/overview
處理遭入侵的 Google Cloud憑證
https://cloud.google.com/docs/security/compromised-credentials
回應憑證濫用及警示
https://cloud.google.com/docs/security/respond-to-abuse-misuse
服務帳戶安全最佳做法
https://cloud.google.com/iam/docs/best-practices-service-accounts
服務帳戶金鑰輪替
https://cloud.google.com/iam/docs/key-rotation
單純外洩一把標準 Google API Key,通常不會讓攻擊者直接登入 Gmail、Google帳號或 Google Cloud Console。
但仍可能造成:
真正需要高度警戒的是:
發現 API Key 外洩後,建議立即完成:
網站使用 Google Maps、Google API、GA4或 Google Ads 時,除了完成 API 串接,也應建立清楚的金鑰權限、流量、配額、費用及轉換追蹤機制。
數位果子科技有限公司 提供:
本公司服務重點為網站建置、網路行銷、SEO內容規劃及廣告投放,不代理 Google帳號救援、Google Cloud帳單申訴或官方客服。涉及帳號入侵或 API異常費用時,仍應透過 Google官方安全及 Billing支援管道處理。
數位果子科技有限公司
合作專線:0970-357-535
LINE:cherng65