編輯者註:此篇文章出自 Mike PeggーGoogle Maps Platform 開發人員關係團隊的領導人,同時也是地圖長期的開發者(您可能會記得他來自 Google Maps Mania Blog)。Mike 和他的團隊發布了一系列的文章,關於使用 Google Maps Platform 最佳做法三部曲。
Google 知道開發者投入了大量時間和精力來創造使用者喜愛的體驗,Google 的目的是希望確保開發者擁有需要的工具,能夠將 Google 對世界的了解帶到開發者所打造的內容中。部分原因是為了幫助開發者保持 Google Maps Platform 整合的效能和安全性。三部曲系列中的第一部是說明開發者應該採取哪些措施,來控制和防止任何可能對 Google Maps Platform 的專案有任何不必要或無法預期的使用。今天的主題是:限制您的 API 密鑰。
除了 Maps URLs 以外,所有 Google Maps Platform API 和 SDK 都要求您在所有呼叫中寄送 API 金鑰。API 金鑰是在 Google Cloud 控制台中產生,並且是唯一用來驗證您在 Google Maps Platform 呼叫時的辨認標示,並確保能向正確的帳戶收費。您的 API 金鑰是我們驗證您存取 Google Maps Platform API 和 SDK 權限的主要方式。
為什麼需要限制我的 API 金鑰?
限制 API 金鑰有助於確保您的 Google Maps Platform 帳戶的安全。就像您的房子或汽車的鑰匙一樣,重要的是要保護它們,確保它們只能由您想要的人以及您想要的方式使用。我們強烈建議您在 Google Cloud 控制台中產生 API 金鑰時,對其加以限制。如果有需要,您隨時可以更改限制。
什麼是 API 金鑰限制?
API 金鑰限制是應用於 API 金鑰的設定,限制哪些應用程序、API 和 SDK 可以與該金鑰一起使用。舉例來說,您可以指定一個 API 金鑰只能用於從具有應用程式套件名稱的 Android 應用程式進行呼叫,或者從具有與您後端服務運行的伺服器匹配的 IP 位址之伺服器進行 Geocoding API 的呼叫。
想像這就像您對密碼的看法,對多個網站使用同一組密碼,意謂著被盜取的密碼能讓小偷盜取許多不同的東西。API 金鑰限制可以讓您限制金鑰的用途,如果您的金鑰遭到破壞,就能侷限您暴露的資訊——就如同在多個網站使用不同的的密碼一樣。
API 金鑰限制有哪些類型?
API 金鑰限制有兩種類型:API 限制和應用程式限制,應用程式限制將 API 金鑰的使用限制在特定網站、網路伺服器或應用程式。Google Maps Platform 提供四種類型的應用程式限制:
- HTTP 參照網址:限制在使用一個或多個 URL,以及用於網站和網路應用程式中使用的金鑰。此類限制允許您對網站中的特定網域、頁面或頁面集所設置的限制。
- IP 位址:限制使用一個或多個 IP 位址,可用於保護使用於伺服器端請求的金鑰,例如來自網路伺服器的呼叫和 cron job 排程。
- Android 應用程式限制:限制使用具有特定套件名稱的 Android 應用程式的呼叫。
- iOS 應用程式限制:限制使用具有特別的 bundle identifier 的 iOS 應用程式的呼叫。
API 限制將 API 金鑰的使用限制在一個或多個 API 或 SDK。例如,如果您的手機應用程式僅需要使用 Maps SDK for Android 和 Places SDK for Android,,您可以將 API 金鑰限制僅限於使用這兩個 SDK。您可以設置 API 金鑰有權訪問任意數量的 API 和 SDK,但我們強烈建議您將限制在那些需要的部分即可。
應用 API 金鑰限制的最佳做法是什麼?
以下是一些簡單的指南,您可以使用這些指南來確定應該使用哪些 API 金鑰限制以及如何在 Google Maps Platform 整合中使用它們:
- 每個來源使用不同的 API 金鑰,並限制每個 API 金鑰所具備的應用程式限制。例如,為您的 Android 應用程式和網路應用程式分別創建的 API 金鑰,並個別使用 Android 應用程式和 HTTP 參照位址的應用程式限制來限制它們。
- 對您所有的 API 金鑰套用一個應用程式限制及一個或多個 API 限制。透過限制哪些應用程式可以使用金鑰及該金鑰可以使用哪些 API 或 SDK,提供最大的安全性。
- 切勿對客戶端(手機應用程式、網路應用程式)和伺服器端應用程式使用相同的 API 金鑰。
如何限制我的 API 金鑰,確保 Google 收費正確?
限制 API 金鑰是快速且簡單的,您可以隨時從 Google Cloud 控制台的 「API 和服務」選單中的「憑證」標籤中執行此操作。但正如先前所提到的,我們建議您在生成每一個金鑰時都套用一些限制。想了解如何限制 API 金鑰,請按照文件中的演練進行操作或觀看推薦影片。
Google 一直對開發人員和企業使用 Google Maps Platform 所創造的應用感到驚艷,Google 希望盡其所能讓您取得成功。限制您的 API 金鑰是一種簡單的方法,可以確保帳戶的安全,並在金鑰遭到破壞時,限制其未經授權的使用。
有關更多最佳做法,請參考優化指南,另外也歡迎在 StackOverflow tag上發問。 有關 Google Maps Platform 的更多資訊,歡迎聯繫我們。
文章編譯自及首圖來源《Google Maps Platform best practices: Restricting API keys 》