API Gateway 中 REST API 的用量計畫和 API 金鑰 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

API Gateway 中 REST API 的用量計畫和 API 金鑰

在您建立、測試和部署 API 之後,您可以使用 API Gateway 用量計劃讓它們可做為產品優惠供給客戶使用。您可以設定用量計劃和 API 金鑰,以便客戶存取選取的 API,並根據定義的限制和配額來調節傳送給這些 API 的請求量。您可在 API 或 API 方法層級進行設定這些內容。

什麼是用量計劃和 API 金鑰?

用量計劃會指定誰能存取一個或多個已部署 API 階段和方法,也可以設定目標請求率來開始調節請求量。計劃會使用 API 金鑰來識別 API 用戶端,以及每個金鑰的相關 API 階段可存取者。

API 金鑰是英數字串值,您會將其發布到應用程式開發人員客戶,以授與您 API 的存取權。您可以將 Lambda 授權方IAM 角色Amazon Cognito 與 API 金鑰搭配使用,來控制對 API 的存取。API Gateway 可以代表您產生 API 金鑰,或從 CSV 檔案匯入它們。您可以在 API Gateway 中產生 API 金鑰,或從外部來源將它匯入 API Gateway。如需詳細資訊,請參閱使用 API Gateway 主控台設定 API 金鑰

API 金鑰具有名稱和數值。(術語「API 金鑰」與「API 金鑰值」經常可以交換使用。) 名稱不能超過 1024 個字元。金鑰值是介於 20 與 128 個字元之間的英數字串,例如,apikey1234abcdefghij0123456789

重要

API 金鑰值必須是唯一的。如果您嘗試建立兩個名稱不同但數值相同的 API 金鑰,API Gateway 會將它們視為相同的 API 金鑰。

API 金鑰可以關聯到多個用量計劃。用量計劃可以關聯到多個階段。不過,特定 API 金鑰只能與每個 API 階段的一個用量計劃相關聯。

調節限制即為開始進行請求調節應的目標點。您可在 API 或 API 方法層級進行設定。

配額限制即為使用特定 API 金鑰在指定時間間隔內可以提交的目標請求量上限。您可以設定個別的 API 方法根據用量計劃組態來要求 API 金鑰授權。

調節和配額限制適用於在用量計劃中跨所有 API 階段彙總之個別 API 金鑰的請求。

注意

用量計劃調節和配額並非硬性限制,會依最佳作法來套用。在某些情況下,用戶端可能超出設定的配額。請勿依靠用量計劃配額或調節來控制成本或封鎖對 API 的存取。請考慮使用 AWS Budgets 來監控成本,使用 AWS WAF 來管理 API 請求量。

在 API Gateway 中設定用量計畫和 API 金鑰的步驟

下列任務概述設定用量計畫和 API 金鑰的必要步驟。如需最佳實務做法,請參閱「API 金鑰和用量計劃的最佳實務」。

設定用量計畫和 API 金鑰
  1. 建立 API 並設定每個 API 方法的方法請求,以要求 API 金鑰。然後將您的 API 部署至階段。

    若要在用量計劃中包含 API 方法,您必須設定個別的 API 方法要求 API 金鑰。

    如需有關如何設定方法以要求 API 金鑰的詳細資訊,請參閱 方法中需要 API 金鑰

  2. 產生或匯入 API 金鑰來發布到將使用您 API 的應用程式開發人員 (您的客戶)。您的用量計畫需要 API 金鑰。

    如需有關如何產生或匯入 API 金鑰的詳細資訊,請參閱 建立 API 金鑰

  3. 建立具有所需限流和配額限制的用量計畫,然後為 API 階段和 API 金鑰與用量計畫建立關聯。

    如需有關如何建立用量計畫的詳細資訊,請參閱 建立用量計劃

API 發起人必須在請求 API 的 x-api-key 標頭中提供已指派的 API 金鑰。

如需建立用量計劃並與新階段和 API 金鑰建立關聯的完整 AWS CloudFormation 範本,請參閱 使用 建立和設定 API 金鑰和用量計劃 AWS CloudFormation

API 金鑰和用量計劃的最佳實務

以下是使用 API 金鑰和用量計劃時建議遵循的最佳實務。

重要
  • 不要使用 API 金鑰進行身分驗證或授權來控制 API 的存取權。然而,若用量計劃中具有多個 API,則持有該用量計劃中某 API 有效 API 金鑰的使用者便可存取該用量計劃中的所有 API。請改用 IAM 角色、Lambda 授權方Amazon Cognito 使用者集區來控制 API 的存取權。

  • 使用 API Gateway 產生的 API 金鑰。API 金鑰不應包含機密資訊;用戶端通常會在可被記錄的標頭中傳輸這些資訊。

  • 如果您是使用開發人員入口網站來發布 API,請注意,特定用量計畫中的所有 API 都是可訂閱的,即使您尚未讓客戶可以看到它們也一樣。

  • 在某些情況下,用戶端可能超出設定的配額。請勿依靠用量計劃來控制成本。請考慮使用 AWS Budgets 來監控成本,使用 AWS WAF 來管理 API 請求量。

  • 將 API 金鑰新增至用量計畫後,更新作業可能需要幾分鐘時間才能完成。