只有提供正確驗證憑證的使用者可以呼叫 API,這樣可以防止有人未經授權使用 Google 地圖平台產品。上述憑證採用 API 金鑰的形式,API 金鑰是不重複的英數字元字串,可將您的 Google 帳單帳戶與專案建立關聯,以及與特定 API 或 SDK 建立關聯。
本指南說明如何建立、限制及使用 Google 地圖平台的 API 金鑰。
事前準備
您必須擁有已連結帳單帳戶的專案,才能使用 Roads API 已啟用 Roads API。請參閱這篇文章,進一步瞭解如何在 Cloud 控制台完成相關設定。
建立 API 金鑰
API 金鑰是一組專屬 ID,用於驗證與您專案有關的使用權限及帳單處理請求。您的專案至少要有一個相關聯的 API 金鑰。
建立 API 金鑰的方法如下:
控制台
-
前往「Google Maps Platform」(Google 地圖平台) >「Credentials」(憑證) 頁面。
-
在「Credentials」(憑證) 頁面上,點選「Create credentials」(建立憑證) >「API key」(API 金鑰)。
「API key created」(建立的 API 金鑰) 對話方塊會顯示您新建立的 API 金鑰。 -
按一下「Close」(關閉)。
新建立的 API 金鑰會出現在「Credentials」(憑證) 頁面的「API keys」(API 金鑰) 下方。
(別忘了先為 API 金鑰設定限制,然後才在正式環境中使用)
Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
進一步瞭解 Google Cloud SDK、Cloud SDK 安裝和下列指令:
限制 API 金鑰
Google 強烈建議您設定限制,只允許將 API 金鑰用於應用程式需要的 API。限制 API 金鑰可避免不必要的請求使用 API 金鑰,有助提升應用程式的安全性。詳情請參閱「API 安全性最佳做法」。
限制 API 金鑰的方法如下:
控制台
-
前往「Google Maps Platform」(Google 地圖平台) >「Credentials」(憑證) 頁面。
- 選取要設定限制的 API 金鑰,畫面隨即顯示 API 金鑰屬性頁面。
- 在「Key restrictions」(金鑰限制) 下方,設定下列限制:
- 應用程式限制:
- 如要接受由您提供的網路伺服器 IP 位址清單中所列的要求,請選取 IP 位址 (網路伺服器和 Cron 工作等) 應用程式限制。指定一或多個 IPv4 或 IPv6 位址。 或在子網路中部署 CIDR 標記法IP 位址必須與 Google 地圖平台伺服器會觀察這個事件,如果您使用 電視網 位址翻譯 (NAT) 這個 ID 通常會對應至電腦的「公開」IP 位址。
- API 限制:
- 按一下 [限制金鑰]。
- 從「選取 API」下拉式選單中選取「Roads API」。 如果選單未列出 Roads API,則您需要 啟用。
- 如要完成變更,請按一下 [儲存]。
Cloud SDK
列出現有金鑰。
gcloud services api-keys list --project="PROJECT"
清除現有金鑰的目前限制。
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --clear-restrictions
設定現有金鑰的新限制。
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --api-target="roads.googleapis.com" --allowed-ips="IP_ADDRESS"
進一步瞭解 Google Cloud SDK、Cloud SDK 安裝和下列指令:
將 API 金鑰加進要求中
每個 Roads API 要求都必須包含 API 金鑰。在以下範例中
然後將 YOUR_API_KEY
替換成您的 API 金鑰。
https://roads.googleapis.com/v1/snapToRoads?path=-35.27801,149.12958|-35.28032,149.12907|-35.28099,149.12929|-35.28144,149.12984|-35.28194,149.13003|-35.28282,149.12956|-35.28302,149.12881|-35.28473,149.12836
&interpolate=true
&key=YOUR_API_KEY
使用 API 金鑰的要求必須透過 HTTPS 傳送。